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':