2008-01-17 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Thu, 17 Jan 2008 22:42:58 +0000 (22:42 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Thu, 17 Jan 2008 22:42:58 +0000 (22:42 +0000)
* gpgconf-comp.c (change_options_program): Strip duplicated
utf8-strings entries for gnupg backend.  Don't create them either.

tools/ChangeLog
tools/gpgconf-comp.c

index 460da71..ec31d3b 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-17  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgconf-comp.c (change_options_program): Strip duplicated
+       utf8-strings entries for gnupg backend.  Don't create them either.
+
 2007-12-10  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgconf-comp.c (gc_component_list_options): Fix up expert level
 2007-12-10  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgconf-comp.c (gc_component_list_options): Fix up expert level
index d004c4d..4cd38b5 100644 (file)
@@ -2467,6 +2467,8 @@ change_options_program (gc_component_t component, gc_backend_t backend,
   char *src_filename;
   char *dest_filename;
   char *orig_filename;
   char *src_filename;
   char *dest_filename;
   char *orig_filename;
+  /* Special hack for gpg, see below.  */
+  int utf8strings_seen = 0;
 
   /* FIXME.  Throughout the function, do better error reporting.  */
   dest_filename = xstrdup (get_config_pathname (component, backend));
 
   /* FIXME.  Throughout the function, do better error reporting.  */
   dest_filename = xstrdup (get_config_pathname (component, backend));
@@ -2526,6 +2528,15 @@ change_options_program (gc_component_t component, gc_backend_t backend,
              else
                break;
            }
              else
                break;
            }
+         else if (backend == GC_BACKEND_GPG && in_marker
+                  && ! strcmp ("utf8-strings\n", line))
+           {
+             /* Strip duplicated entries.  */
+             if (utf8strings_seen)
+               disable = 1;
+             else
+               utf8strings_seen = 1;
+           }
 
          start = line;
          while (*start == ' ' || *start == '\t')
 
          start = line;
          while (*start == ' ' || *start == '\t')
@@ -2591,7 +2602,7 @@ change_options_program (gc_component_t component, gc_backend_t backend,
      followed by the rest of the original file.  */
 
   /* We have to turn on UTF8 strings for GnuPG.  */
      followed by the rest of the original file.  */
 
   /* We have to turn on UTF8 strings for GnuPG.  */
-  if (backend == GC_BACKEND_GPG)
+  if (backend == GC_BACKEND_GPG && ! utf8strings_seen)
     fprintf (src_file, "utf8-strings\n");
 
   option = gc_component[component].options;
     fprintf (src_file, "utf8-strings\n");
 
   option = gc_component[component].options;