Thread View: gnu.utils.bug
1 messages
1 total messages
Started by Root Boy Jim
Wed, 16 Aug 1989 15:47
Diff enhancements
Author: Root Boy Jim
Date: Wed, 16 Aug 1989 15:47
Date: Wed, 16 Aug 1989 15:47
317 lines
8889 bytes
8889 bytes
This is not really a bug, but a request for an enhancement. At USENIX,
I talked with Keith Bostic about this and I have good reason to believe
that he will add it. I have sent him the diffs for 4.3 as well.
The problem with diff is that it has no way just to tell you that
source files differ; it insists on telling you what the differences
are. The GNU project has added the -a option to tell diff that all
files are to be treated as text; my -q option tells diff to treat
them all as binary. The message produced is "Source files %s and %s differ",
which may be grep'ed for in the output.
Here are the diffs, and two runs showing the output produced.
========================================================================
*** analyze.c.orig Fri Feb 24 12:42:16 1989
--- analyze.c Wed Aug 16 11:13:56 1989
***************
*** 23,28 ****
--- 23,30 ----
#include "diff.h"
+ extern int quick; /*RBJ*/
+
extern int no_discards;
static int *xvec, *yvec; /* Vectors being compared. */
***************
*** 660,672 ****
compare the two files as binary. This can happen
only when the first chunk is read. */
! if (binary)
{
int differs = (filevec[0].buffered_chars != filevec[1].buffered_chars
|| bcmp (filevec[0].buffer, filevec[1].buffer,
filevec[1].buffered_chars));
if (differs)
! message ("Binary files %s and %s differ\n",
filevec[0].name, filevec[1].name);
for (i = 0; i < 2; ++i)
--- 662,676 ----
compare the two files as binary. This can happen
only when the first chunk is read. */
! if (binary || quick) /*RBJ*/
{
int differs = (filevec[0].buffered_chars != filevec[1].buffered_chars
|| bcmp (filevec[0].buffer, filevec[1].buffer,
filevec[1].buffered_chars));
if (differs)
! message (binary ?
! "Binary files %s and %s differ\n" :
! "Source files %s and %s differ\n",
filevec[0].name, filevec[1].name);
for (i = 0; i < 2; ++i)
*** diff.c.orig Wed Apr 26 15:38:27 1989
--- diff.c Wed Aug 16 11:10:11 1989
***************
*** 24,30 ****
--- 24,33 ----
#include "regex.h"
#include "diff.h"
+ /* RBJ nonzero for -q */
+ int quick;
+
/* Nonzero for -r: if comparing two directories,
compare their common subdirectories recursively. */
***************
*** 105,111 ****
/* Decode the options. */
! while ((c = getopt (argc, argv, "0123456789abBcC:defF:hHiI:lnNprsS:tTw"))
!= EOF)
{
switch (c)
--- 108,114 ----
/* Decode the options. */
! while ((c = getopt (argc, argv, "0123456789abBcC:defF:hHiI:lnNqprsS:tTw"))
!= EOF)
{
switch (c)
***************
*** 235,240 ****
--- 238,248 ----
specify_style (OUTPUT_CONTEXT);
function_regexp = "^[_a-zA-Z]";
break;
+
+ case 'q': /*RBJ*/
+ /* When comparing directorys, no source diffs */
+ quick = 1;
+ break;
case 'r':
/* When comparing directories,
========================================================================
/p/x/gnu/diff.sun [rbj@dsys 44] diff -rc ../diff .
diff -rc ../diff/Makefile ./Makefile
*** ../diff/Makefile Fri Feb 24 12:40:43 1989
--- ./Makefile Wed Aug 16 11:01:06 1989
***************
*** 23,29 ****
# Also, gcc supports -O and -g together.
CC=gcc -O
CFLAGS = -g
! INSTALL = install
# On system V, enable these three lines:
# CFLAGS = -g -DUSG
--- 23,29 ----
# Also, gcc supports -O and -g together.
CC=gcc -O
CFLAGS = -g
! INSTALL = install -c
# On system V, enable these three lines:
# CFLAGS = -g -DUSG
***************
*** 53,59 ****
context.o diff.o: regex.h
diff3.o: diff3.c
! $(CC) -c $(CFLAGS) -DDIFF_PROGRAM=\"$(bindir)/diff\" diff3.c
clean:
rm -f *.o diff diff3 diff.tar diff.tar.Z
--- 53,59 ----
context.o diff.o: regex.h
diff3.o: diff3.c
! $(CC) -c $(CFLAGS) -DDIFF_PROGRAM=\"$(bindir)/gdiff\" diff3.c
clean:
rm -f *.o diff diff3 diff.tar diff.tar.Z
***************
*** 60,74 ****
install: install-diff install-diff3
! install-diff: $(prefix)$(bindir)/diff
! $(prefix)$(bindir)/diff: diff
! $(INSTALL) diff $(prefix)$(bindir)/diff
! install-diff3: $(prefix)$(bindir)/diff3
! $(prefix)$(bindir)/diff3: diff3
! $(INSTALL) diff3 $(prefix)$(bindir)/diff3
diff.tar: $(tapefiles)
mkdir tmp
--- 60,74 ----
install: install-diff install-diff3
! install-diff: $(prefix)$(bindir)/gdiff
! $(prefix)$(bindir)/gdiff: diff
! $(INSTALL) diff $(prefix)$(bindir)/gdiff
! install-diff3: $(prefix)$(bindir)/gdiff3
! $(prefix)$(bindir)/gdiff3: diff3
! $(INSTALL) diff3 $(prefix)$(bindir)/gdiff3
diff.tar: $(tapefiles)
mkdir tmp
Only in .: Makefile.orig
Only in .: Makefile.~1~
Only in .: TAGS
diff -rc ../diff/analyze.c ./analyze.c
*** ../diff/analyze.c Fri Feb 24 12:42:16 1989
--- ./analyze.c Wed Aug 16 11:13:56 1989
***************
*** 23,28 ****
--- 23,30 ----
#include "diff.h"
+ extern int quick; /*RBJ*/
+
extern int no_discards;
static int *xvec, *yvec; /* Vectors being compared. */
***************
*** 660,672 ****
compare the two files as binary. This can happen
only when the first chunk is read. */
! if (binary)
{
int differs = (filevec[0].buffered_chars != filevec[1].buffered_chars
|| bcmp (filevec[0].buffer, filevec[1].buffer,
filevec[1].buffered_chars));
if (differs)
! message ("Binary files %s and %s differ\n",
filevec[0].name, filevec[1].name);
for (i = 0; i < 2; ++i)
--- 662,676 ----
compare the two files as binary. This can happen
only when the first chunk is read. */
! if (binary || quick) /*RBJ*/
{
int differs = (filevec[0].buffered_chars != filevec[1].buffered_chars
|| bcmp (filevec[0].buffer, filevec[1].buffer,
filevec[1].buffered_chars));
if (differs)
! message (binary ?
! "Binary files %s and %s differ\n" :
! "Source files %s and %s differ\n",
filevec[0].name, filevec[1].name);
for (i = 0; i < 2; ++i)
Only in .: analyze.c.orig
Only in .: analyze.c.~1~
Only in .: analyze.o
Only in .: context.o
Only in .: diff
diff -rc ../diff/diff.c ./diff.c
*** ../diff/diff.c Wed Apr 26 15:38:27 1989
--- ./diff.c Wed Aug 16 11:10:11 1989
***************
*** 24,30 ****
--- 24,33 ----
#include "regex.h"
#include "diff.h"
+ /* RBJ nonzero for -q */
+ int quick;
+
/* Nonzero for -r: if comparing two directories,
compare their common subdirectories recursively. */
***************
*** 105,111 ****
/* Decode the options. */
! while ((c = getopt (argc, argv, "0123456789abBcC:defF:hHiI:lnNprsS:tTw"))
!= EOF)
{
switch (c)
--- 108,114 ----
/* Decode the options. */
! while ((c = getopt (argc, argv, "0123456789abBcC:defF:hHiI:lnNqprsS:tTw"))
!= EOF)
{
switch (c)
***************
*** 235,240 ****
--- 238,248 ----
specify_style (OUTPUT_CONTEXT);
function_regexp = "^[_a-zA-Z]";
break;
+
+ case 'q': /*RBJ*/
+ /* When comparing directorys, no source diffs */
+ quick = 1;
+ break;
case 'r':
/* When comparing directories,
Only in .: diff.c.orig
Only in .: diff.c.~1~
Only in .: diff.o
Only in .: diff3
Only in .: diff3.o
Only in .: diffs
Only in .: dir.o
Only in .: ed.o
Only in .: io.o
Only in .: normal.o
Only in .: regex.o
Only in .: util.o
/p/x/gnu/diff.sun [rbj@dsys 45]diff -rcq ../diff .
Source files ../diff/Makefile and ./Makefile differ
Only in .: Makefile.orig
Only in .: Makefile.~1~
Only in .: TAGS
Source files ../diff/analyze.c and ./analyze.c differ
Only in .: analyze.c.orig
Only in .: analyze.c.~1~
Only in .: analyze.o
Only in .: context.o
Only in .: diff
Source files ../diff/diff.c and ./diff.c differ
Only in .: diff.c.orig
Only in .: diff.c.~1~
Only in .: diff.o
Only in .: diff3
Only in .: diff3.o
Only in .: diffs
Only in .: dir.o
Only in .: ed.o
Only in .: io.o
Only in .: normal.o
Only in .: regex.o
Only in .: util.o
/p/x/gnu/diff.sun [rbj@dsys 46]
Root Boy Jim
Have GNU, Will Travel.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads