Hi!

----

Attached is a small patch
("ksh93_libcmd_wc_add_C_for_multibyte001.diff.txt") which adds the "-C"
switch to ksh93/libcmd's "wc" builtin command to be fully compatible
with the Solaris /usr/bin/wc command. It would be nice if this gets
included in the next alpha version of ksh93r+ ...

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)
-------------- next part --------------
Index: src/lib/libcmd/common/wc.c
===================================================================
--- src/lib/libcmd/common/wc.c  (revision 394)
+++ src/lib/libcmd/common/wc.c  (working copy)
@@ -23,7 +23,7 @@
  * David Korn
  * AT&T Bell Laboratories
  *
- * wc [-c] [-m] [-w] [-l] [file] ...
+ * wc [-c] [-C] [-m] [-w] [-l] [file] ...
  *
  * count the number of bytes, words, and lines in a file
  */
@@ -43,14 +43,16 @@
        "of the file name.]"
 "[+?By default, \bwc\b writes all three counts.  Options can specified "
        "so that only certain counts are written.  The options \b-c\b "
-       "and \b-m\b are mutually exclusive.]"
+       "and \b-C\b/\b-m\b are mutually exclusive.]"
 "[+?If no \afile\a is given, or if the \afile\a is \b-\b, \bwc\b "
         "reads from standard input and no filename is written to standard "
        "output.  The start of the file is defined as the current offset.]"
 "[l:lines?Writes the line counts.]"
 "[w:words?Writes the word counts.]"
 "[ [c:bytes|chars:chars?Writes the byte counts.]"
-"[m:multibyte-chars?Writes the character counts.] ]"
+"  [C:multibyte-chars?Writes the character counts.]"
+"  [m:multibyte-chars?Writes the character counts.]"
+" ]"
 "\n"
 "\n[file ...]\n"
 "\n"
@@ -58,7 +60,7 @@
         "[+0?All files processed successfully.]"
         "[+>0?One or more files failed to open or could not be read.]"
 "}"
-"[+SEE ALSO?\bcat\b(1), \bisspace\b(3)]"
+"[+SEE ALSO?\bcat\b(1), \bisspace\b(3), \biswspace\b(3)]"
 ;
 
 
@@ -99,14 +101,15 @@
                mode |= WC_WORDS;
                break;
        case 'c':
+       case 'C':
        case 'm':
                if(mode&WC_CHARS)
                {
-                       if((n=='m') ^ ((mode&WC_MBYTE)!=0))
-                               error(2, "c and m are mutually exclusive");
+                       if(((n=='C')||(n=='m')) ^ ((mode&WC_MBYTE)!=0))
+                               error(2, "c and C/m are mutually exclusive");
                }
                mode |= WC_CHARS;
-               if(n=='m')
+               if((n=='C')||(n=='m'))
                        mode |= WC_MBYTE;
                break;
        case 'l':

Reply via email to