]> git.wh0rd.org Git - nano.git/commitdiff
simplify the word detection code
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 13 Jun 2005 02:48:52 +0000 (02:48 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 13 Jun 2005 02:48:52 +0000 (02:48 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2641 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/chars.c
src/proto.h

index afe72d5b74840086ee5f2951a291c399f1117a00..6ec79fbb56fa91b3d8df3c9d293e084f7219a25a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -67,8 +67,8 @@ CVS code -
          shortcut_init() and do_next_word(). (DLR)
        - Detect words more accurately by taking punctuation into
          account, and convert all word-detecting functions to use the
-         same wrapper function for ease of maintenance.  New functions
-         is_punct_mbchar() and is_word_mbchar(); changes to
+         same wrapper function for ease of maintenance.  Changes to
+         is_alnum_mbchar() (renamed is_word_mbchar()); changes to
          do_next_word(), do_prev_word(), is_whole_word(),
          do_statusbar_next_word(), and do_statusbar_prev_word(). (DLR)
 - chars.c:
index 57e1a71ccc65fbbc46c370f28704fbc4d8991655..f35dc3a2e426c69fd5250e6c6fcf08c30557212e 100644 (file)
@@ -46,27 +46,6 @@ bool is_byte(int c)
     return ((unsigned int)c == (unsigned char)c);
 }
 
-/* This function is equivalent to isalnum() for multibyte characters. */
-bool is_alnum_mbchar(const char *c)
-{
-    assert(c != NULL);
-
-#ifdef NANO_WIDE
-    if (!ISSET(NO_UTF8)) {
-       wchar_t wc;
-       int c_mb_len = mbtowc(&wc, c, MB_CUR_MAX);
-
-       if (c_mb_len <= 0) {
-           mbtowc(NULL, NULL, 0);
-           wc = (unsigned char)*c;
-       }
-
-       return iswalnum(wc);
-    } else
-#endif
-       return isalnum((unsigned char)*c);
-}
-
 #ifndef HAVE_ISBLANK
 /* This function is equivalent to isblank(). */
 bool nisblank(int c)
@@ -146,8 +125,9 @@ bool is_cntrl_mbchar(const char *c)
        return is_cntrl_char((unsigned char)*c);
 }
 
-/* This function is equivalent to ispunct() for multibyte characters. */
-bool is_punct_mbchar(const char *c)
+/* Return TRUE for a multibyte character found in a word (currently only
+ * an alphanumeric or punctuation character) and FALSE otherwise. */
+bool is_word_mbchar(const char *c)
 {
     assert(c != NULL);
 
@@ -161,18 +141,10 @@ bool is_punct_mbchar(const char *c)
            wc = (unsigned char)*c;
        }
 
-       return iswpunct(wc);
+       return iswalnum(wc) || iswpunct(wc);
     } else
 #endif
-       return ispunct((unsigned char)*c);
-}
-
-/* This function returns TRUE for a multibyte character found in a word
- * (currently only an alphanumeric or punctuation character) and FALSE
- * otherwise. */
-bool is_word_mbchar(const char *c)
-{
-    return is_alnum_mbchar(c) || is_punct_mbchar(c);
+       return isalnum((unsigned char)*c) || ispunct((unsigned char)*c);
 }
 
 /* c is a control character.  It displays as ^@, ^?, or ^[ch], where ch
index 7ce99ec4c58d4dc3f900ce8450e472dd2e09945f..2dbbbca5f79eb9b8c4dc53cb38a162f14d833183 100644 (file)
@@ -160,7 +160,6 @@ extern char *homedir;
 
 /* Public functions in chars.c. */
 bool is_byte(int c);
-bool is_alnum_mbchar(const char *c);
 #ifndef HAVE_ISBLANK
 bool nisblank(int c);
 #endif
@@ -173,7 +172,6 @@ bool is_cntrl_char(int c);
 bool is_cntrl_wchar(wint_t wc);
 #endif
 bool is_cntrl_mbchar(const char *c);
-bool is_punct_mbchar(const char *c);
 bool is_word_mbchar(const char *c);
 char control_rep(char c);
 #ifdef NANO_WIDE