Hi,

Patch uses a global variable 'canonicalize' as part of its
implementation of the --ignore-whitespace flag.

In glibc there is a function canonicalize():
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html#index-canonicalize

Attached is a patch to rename the global variable so that it will not
conflict.

Original bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1422463

Tim.
*/
diff -up patch-2.7.5/src/common.h.canonicalize patch-2.7.5/src/common.h
--- patch-2.7.5/src/common.h.canonicalize	2015-02-28 16:02:30.000000000 +0000
+++ patch-2.7.5/src/common.h	2017-02-22 09:05:49.506719583 +0000
@@ -111,7 +111,7 @@ XTERN bool reverse;
 XTERN enum { DEFAULT_VERBOSITY, SILENT, VERBOSE } verbosity;
 XTERN bool skip_rest_of_patch;
 XTERN int strippath;
-XTERN bool canonicalize;
+XTERN bool canonicalize_ws;
 XTERN int patch_get;
 XTERN bool set_time;
 XTERN bool set_utc;
diff -up patch-2.7.5/src/merge.c.canonicalize patch-2.7.5/src/merge.c
--- patch-2.7.5/src/merge.c.canonicalize	2017-02-22 09:06:00.069693079 +0000
+++ patch-2.7.5/src/merge.c	2017-02-22 09:06:12.730661314 +0000
@@ -541,7 +541,7 @@ context_matches_file (lin old, lin where
 
   line = ifetch (where, false, &size);
   return size &&
-	 (canonicalize ?
+	 (canonicalize_ws ?
 	  similar (pfetch (old), pch_line_len (old), line, size) :
 	  (size == pch_line_len (old) &&
 	   memcmp (line, pfetch (old), size) == 0));
diff -up patch-2.7.5/src/patch.c.canonicalize patch-2.7.5/src/patch.c
--- patch-2.7.5/src/patch.c.canonicalize	2015-03-07 00:34:20.000000000 +0000
+++ patch-2.7.5/src/patch.c	2017-02-22 09:05:49.507719581 +0000
@@ -921,7 +921,7 @@ get_some_switches (void)
 		patchname = xstrdup (optarg);
 		break;
 	    case 'l':
-		canonicalize = true;
+		canonicalize_ws = true;
 		break;
 #ifdef ENABLE_MERGE
 	    case 'm':
@@ -1684,7 +1684,7 @@ patch_match (lin base, lin offset, lin p
 
     for (iline=base+offset+prefix_fuzz; pline <= pat_lines; pline++,iline++) {
 	p = ifetch (iline, offset >= 0, &size);
-	if (canonicalize) {
+	if (canonicalize_ws) {
 	    if (!similar(p, size,
 			 pfetch(pline),
 			 pch_line_len(pline) ))
diff -up patch-2.7.5/src/pch.c.canonicalize patch-2.7.5/src/pch.c
--- patch-2.7.5/src/pch.c.canonicalize	2015-03-07 00:34:20.000000000 +0000
+++ patch-2.7.5/src/pch.c	2017-02-22 09:05:49.507719581 +0000
@@ -1409,7 +1409,7 @@ another_hunk (enum diff difftype, bool r
 	      change_line:
 		s = buf + 1;
 		chars_read--;
-		if (*s == '\n' && canonicalize) {
+		if (*s == '\n' && canonicalize_ws) {
 		    strcpy (s, " \n");
 		    chars_read = 2;
 		}
@@ -1477,7 +1477,7 @@ another_hunk (enum diff difftype, bool r
 	    case ' ':
 		s = buf + 1;
 		chars_read--;
-		if (*s == '\n' && canonicalize) {
+		if (*s == '\n' && canonicalize_ws) {
 		    strcpy (s, "\n");
 		    chars_read = 2;
 		}

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to