]> git.wh0rd.org Git - nano.git/commitdiff
rework the credits handling to display Florian König's name properly
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 28 Jun 2005 07:26:11 +0000 (07:26 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Tue, 28 Jun 2005 07:26:11 +0000 (07:26 +0000)
whether we're in a UTF-8 locale or not.  This requires a minor hack, but
it's better than requiring a massive function that we only use once

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2784 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/chars.c
src/proto.h
src/winio.c

index 894b22ec6b8f8e1573b2697b2ef022ed4f6396a7..dddcfe69656fd36d80ee4d204d83486b5885e016 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -127,6 +127,11 @@ CVS code -
          totlines a size_t, and change related variables to match.
          (DLR, initial problem with parse_line_column() found by Mike
          Frysinger)
+       - Rework the credits handling to display Florian König's name
+         properly whether we're in a UTF-8 locale or not.  This
+         requires a minor hack, but it's better than requiring a
+         massive function that we only use once.  Changes to
+         do_credits(); removal of make_valid_mbstring(). (DLR)
 - chars.c:
   make_mbstring()
        - Change erroneous ENABLE_EXTRA #ifdef to NANO_EXTRA to fix a
index b09ba9e1837817ad9e13e54fc9aac261a0a20daa..c9f82c89447c9521b172be5822059baab9170d35 100644 (file)
@@ -861,54 +861,3 @@ bool is_valid_mbstring(const char *s)
        TRUE;
 }
 #endif /* ENABLE_NANORC */
-
-#ifdef NANO_EXTRA
-/* Convert the string s to a valid multibyte string with the same wide
- * character values as s.  Return the (dynamically allocated) multibyte
- * string. */
-char *make_valid_mbstring(const char *s)
-{
-    assert(s != NULL);
-
-#ifdef NANO_WIDE
-    if (ISSET(USE_UTF8)) {
-       char *chr_mb = charalloc(MB_CUR_MAX);
-       char *s_mb = charalloc((MB_CUR_MAX * strlen(s)) + 1);
-       size_t s_mb_len = 0;
-
-       while (*s != '\0') {
-           int chr_mb_len, i;
-           bool bad_chr;
-
-           chr_mb_len = parse_mbchar(s, chr_mb, &bad_chr, NULL);
-
-           if (bad_chr) {
-               char *bad_chr_mb;
-               int bad_chr_mb_len;
-
-               bad_chr_mb = make_mbchar((unsigned char)*chr_mb,
-                   &bad_chr_mb_len);
-
-               for (i = 0; i < bad_chr_mb_len; i++)
-                   s_mb[s_mb_len + i] = bad_chr_mb[i];
-               s_mb_len += bad_chr_mb_len;
-
-               free(bad_chr_mb);
-           } else {
-               for (i = 0; i < chr_mb_len; i++)
-                   s_mb[s_mb_len + i] = chr_mb[i];
-               s_mb_len += chr_mb_len;
-           }
-
-           s += chr_mb_len;
-       }
-
-       free(chr_mb);
-       null_at(&s_mb, s_mb_len);
-
-       return s_mb;
-     } else
-#endif
-       return mallocstrcpy(NULL, s);
-}
-#endif /* NANO_EXTRA */
index a82b73089be9332ed75a14165fb33fcec6f364a9..961e95c850b0b553798fa4043422ff0f58b76030 100644 (file)
@@ -224,9 +224,6 @@ char *mbstrchr(const char *s, char *c);
 #ifdef ENABLE_NANORC
 bool is_valid_mbstring(const char *s);
 #endif
-#ifdef NANO_EXTRA
-char *make_valid_mbstring(const char *s);
-#endif
 
 /* Public functions in color.c. */
 #ifdef ENABLE_COLOR
index 8fce798b788938e70c40193fe40a59dc60c95a6e..336f5792806c18637d7ad73adf108406fd057c6e 100644 (file)
@@ -4094,7 +4094,7 @@ void do_credits(void)
        "David Benbennick",
        "Ken Tyler",
        "Sven Guckes",
-       "Florian K\xF6nig",
+       NULL,                           /* credits[14], handled below. */
        "Pauli Virtanen",
        "Daniele Medri",
        "Clement Laforet",
@@ -4146,6 +4146,14 @@ void do_credits(void)
        N_("Thank you for using nano!")
     };
 
+    /* credits[14]: Use a minor hack to make sure this name is displayed
+     * properly, since we can't dynamically assign it above. */
+    credits[14] =
+#ifdef NANO_WIDE
+        ISSET(USE_UTF8) ? "Florian K\xC3\xB6nig" :
+#endif
+       "Florian K\xF6nig";
+
     curs_set(0);
     nodelay(edit, TRUE);
     scrollok(edit, TRUE);
@@ -4163,25 +4171,20 @@ void do_credits(void)
            break;
 
        if (crpos < CREDIT_LEN) {
-           char *what;
+           const char *what;
            size_t start_x;
 
-           /* Make sure every credit is a valid multibyte string, since
-            * we can't dynamically set the credits to their multibyte
-            * equivalents when we need to.  Sigh... */
            if (credits[crpos] == NULL) {
                assert(0 <= xlpos && xlpos < XLCREDIT_LEN);
 
-               what = mallocstrcpy(NULL, _(xlcredits[xlpos]));
+               what = _(xlcredits[xlpos]);
                xlpos++;
            } else
-               what = make_valid_mbstring(credits[crpos]);
+               what = credits[crpos];
 
            start_x = COLS / 2 - strlenpt(what) / 2 - 1;
            mvwaddstr(edit, editwinrows - 1 - (editwinrows % 2),
                start_x, what);
-
-           free(what);
        }
 
        napms(700);