Issue warning when combining files of distinct encodings
authorJohn Darrington <john@darrington.wattle.id.au>
Tue, 7 Apr 2009 05:00:08 +0000 (13:00 +0800)
committerJohn Darrington <john@darrington.wattle.id.au>
Tue, 7 Apr 2009 05:00:08 +0000 (13:00 +0800)
src/language/data-io/combine-files.c

index ccbe7679d15a6331c93c7f4054ac168cae9f3c00..1a82ef3f1bf61bfcc6ce1e9a2559237f37fcc37d 100644 (file)
@@ -488,12 +488,29 @@ merge_dictionary (struct dictionary *const m, struct comb_file *f)
   struct dictionary *d = f->dict;
   const char *d_docs, *m_docs;
   int i;
+  const char *file_encoding;
 
   if (dict_get_label (m) == NULL)
     dict_set_label (m, dict_get_label (d));
 
   d_docs = dict_get_documents (d);
   m_docs = dict_get_documents (m);
+
+
+  /* If the input files have different encodings, then
+   */
+  file_encoding = dict_get_encoding (f->dict);
+  if ( file_encoding != NULL)
+    {
+      if ( dict_get_encoding (m) == NULL)
+       dict_set_encoding (m, file_encoding);
+      else if ( 0 != strcmp (file_encoding, dict_get_encoding (m)))
+       {
+         msg (MW,
+              _("Combining files with incompatible encodings. String data may not be represented correctly."));
+       }
+    }
+
   if (d_docs != NULL)
     {
       if (m_docs == NULL)