]> git.wh0rd.org Git - nano.git/commitdiff
when reading a file in, make sure each line is a valid multibyte string
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 8 Jun 2005 19:50:02 +0000 (19:50 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 8 Jun 2005 19:50:02 +0000 (19:50 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2612 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/chars.c
src/files.c
src/rcfile.c
src/winio.c

index d29abe6f891c79ac8c1ecb1d557e64a910afe37d..4dc2009ce1223f0fd8840dc0ee74a6c97da38807 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -54,6 +54,9 @@ CVS code -
          and NANO_APPEND_KEY are.  Changes to shortcut_init(), usage(),
          main(), search_init(), nanorc.sample, nano.1, nanorc.5,
          nano.texi, etc. (DLR)
+       - When reading a file in, make sure each line is a valid
+         multibyte string.  Changes to make_mbstring(), read_line(),
+         and do_credits(). (DLR)
 - chars.c:
   make_mbstring()
        - Change erroneous ENABLE_EXTRA #ifdef to NANO_EXTRA to fix a
index 549ea0da6baea8d1536a20242a26f6b8d11b5d72..5c808fc8a7274ee5f526dbc696d2ae9114a9c272 100644 (file)
@@ -301,7 +301,7 @@ char *make_mbchar(int chr, int *chr_mb_len)
     return chr_mb;
 }
 
-#if defined(ENABLE_NANORC) || defined(NANO_EXTRA)
+#if !defined(NANO_SMALL) || defined(ENABLE_NANORC) || defined(NANO_EXTRA)
 /* Convert the string str to a valid multibyte string with the same wide
  * character values as str.  Return the (dynamically allocated)
  * multibyte string. */
index cdb417deea0d46e50da171612400de1cb8b0cfe9..d162fdf4af5090adda9b75d56648804c3998f125 100644 (file)
@@ -77,10 +77,16 @@ filestruct *read_line(char *buf, filestruct *prevnode, bool
     fileptr->data = mallocstrcpy(NULL, buf);
 
 #ifndef NANO_SMALL
-    /* If it's a DOS file (CR LF), and file conversion isn't disabled,
-     * strip out the CR part. */
-    if (!ISSET(NO_CONVERT) && len > 0 && buf[len - 1] == '\r')
-       fileptr->data[len - 1] = '\0';
+    if (!ISSET(NO_CONVERT)) {
+       /* If it's a DOS file (CR LF), and file conversion isn't
+        * disabled, strip the CR part from fileptr->data. */
+       if (len > 0 && buf[len - 1] == '\r')
+           fileptr->data[len - 1] = '\0';
+
+       /* Make sure fileptr->data is a valid multibyte string. */
+       fileptr->data = mallocstrassn(fileptr->data,
+               make_mbstring(fileptr->data));
+    }
 #endif
 
     if (*first_line_ins || fileage == NULL) {
index 84c3ef85a29ccb782fc7bcf8d8daf1305759dd04..5f7fc2ab48758dd1f9a954ee6272527ef86ab438 100644 (file)
@@ -557,6 +557,9 @@ void parse_rcfile(FILE *rcstream)
                        if (*option == '"')
                            option++;
                        ptr = parse_argument(ptr);
+
+                       /* Make sure option is a valid multibyte
+                        * string. */
                        option = make_mbstring(option);
 #ifdef DEBUG
                        fprintf(stderr, "option = \"%s\"\n", option);
index a792eef55dc169a992e2a067fc99b415591610cc..335cabe59013c2ec8749d6da23af5163eb6e5521 100644 (file)
@@ -4036,7 +4036,7 @@ void do_credits(void)
        "David Benbennick",
        "Ken Tyler",
        "Sven Guckes",
-       "Florian Kรถnig",
+       "Florian K\xF6nig",
        "Pauli Virtanen",
        "Daniele Medri",
        "Clement Laforet",