Use rune.h instead of runetype.h.
authorJeroen Ruigrok/asmodai <asmodai@dragonflybsd.org>
Fri, 29 Oct 2004 06:03:21 +0000 (06:03 +0000)
committerJeroen Ruigrok/asmodai <asmodai@dragonflybsd.org>
Fri, 29 Oct 2004 06:03:21 +0000 (06:03 +0000)
Add swidth definitions and lex code to mklocale.
Update manual page with character set encoding information.
Remove deprecated keyword.

Taken from: FreeBSD
Submitted by: Andreas Hauser

usr.bin/mklocale/lex.l
usr.bin/mklocale/mklocale.1
usr.bin/mklocale/yacc.y

index 68e3295..663d0bd 100644 (file)
@@ -36,7 +36,7 @@
  *
  * @(#)lex.l   8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/mklocale/lex.l,v 1.5 2000/02/08 07:43:26 obrien Exp $
- * $DragonFly: src/usr.bin/mklocale/lex.l,v 1.2 2003/06/17 04:29:29 dillon Exp $
+ * $DragonFly: src/usr.bin/mklocale/lex.l,v 1.3 2004/10/29 06:03:21 asmodai Exp $
  */
 
 #include <ctype.h>
@@ -82,7 +82,6 @@ W     [\t\n\r ]
 MAPLOWER                       { return(MAPLOWER); }
 MAPUPPER                       { return(MAPUPPER); }
 TODIGIT                                { return(DIGITMAP); }
-INVALID                                { return(INVALID); }
 
 ALPHA                          { yylval.i = _CTYPE_A|_CTYPE_R|_CTYPE_G;
                                  return(LIST); }
@@ -112,6 +111,10 @@ SPECIAL                            { yylval.i = _CTYPE_T|_CTYPE_R|_CTYPE_G;
                                  return(LIST); }
 PHONOGRAM                      { yylval.i = _CTYPE_Q|_CTYPE_R|_CTYPE_G;
                                  return(LIST); }
+SWIDTH0                                { yylval.i = _CTYPE_SW0; return(LIST); }
+SWIDTH1                                { yylval.i = _CTYPE_SW1; return(LIST); }
+SWIDTH2                                { yylval.i = _CTYPE_SW2; return(LIST); }
+SWIDTH3                                { yylval.i = _CTYPE_SW3; return(LIST); }
 
 VARIABLE[\t ]                  { static char vbuf[1024];
                                  char *v = vbuf;
@@ -159,6 +162,7 @@ ENCODING                    { return(ENCODING); }
 %%
 
 #if    !defined(yywrap)
+int
 yywrap()
 {
        return(1);
index 7918972..f0ee423 100644 (file)
@@ -34,9 +34,9 @@
 .\"
 .\"    @(#)mklocale.1  8.2 (Berkeley) 4/18/94
 .\" $FreeBSD: src/usr.bin/mklocale/mklocale.1,v 1.7.2.5 2003/02/24 23:04:39 trhodes Exp $
-.\" $DragonFly: src/usr.bin/mklocale/mklocale.1,v 1.2 2003/06/17 04:29:29 dillon Exp $
+.\" $DragonFly: src/usr.bin/mklocale/mklocale.1,v 1.3 2004/10/29 06:03:21 asmodai Exp $
 .\"
-.Dd April 18, 1994
+.Dd August 21, 2004
 .Dt MKLOCALE 1
 .Os
 .Sh NAME
@@ -151,6 +151,34 @@ encoding as used by several
 vendors of
 .Ux
 systems.
+.It Dv GB18030
+PRC national standard for encoding of Chinese text.
+.It Dv GB2312
+Older PRC national standard for encoding Chinese text.
+.It Dv GBK
+A widely used encoding method for Chinese text,
+backwards compatible with GB\ 2312-1980.
+.It Dv MSKanji
+The method of encoding Japanese used by Microsoft,
+loosely based on JIS.
+Also known as
+.Dq "Shift JIS"
+and
+.Dq SJIS .
+.It Dv NONE
+No translation and the default.
+.It Dv UTF2
+(obsolete)
+.Dq "Universal character set Transformation Format"
+adopted from
+.Tn "Plan 9 from Bell Labs" .
+.It Dv UTF-8
+The
+.Dv UTF-8
+transformation format of
+.Tn ISO
+10646
+as defined by RFC 2279.
 .El
 .It Dv VARIABLE
 This keyword must be followed by a single tab or space character,
@@ -161,10 +189,6 @@ encoding requires variable data.
 See
 .Xr euc 4
 for further details.
-.It Dv INVALID
-A single
-.Dv RUNE
-follows and is used as the invalid rune for this locale.
 .El
 .Pp
 The following keywords may appear multiple times and have the following
@@ -249,14 +273,29 @@ Defines runes which are ideograms, printable and graphic.
 Defines runes which are special characters, printable and graphic.
 .It Dv PHONOGRAM
 Defines runes which are phonograms, printable and graphic.
+.It Dv SWIDTH0
+Defines runes with display width 0.
+.It Dv SWIDTH1
+Defines runes with display width 1.
+.It Dv SWIDTH2
+Defines runes with display width 2.
+.It Dv SWIDTH3
+Defines runes with display width 3.
 .El
+.Pp
+If no display width explicitly defined, width 1 assumed
+for printable runes by default.
 .Sh SEE ALSO
 .Xr colldef 1 ,
-.Xr mbrune 3 ,
-.Xr rune 3 ,
 .Xr setlocale 3 ,
-.Xr euc 4 ,
-.Xr utf2 4
+.Xr wcwidth 3 ,
+.Xr big5 5 ,
+.Xr euc 5 ,
+.Xr gb18030 5 ,
+.Xr gb2312 5 ,
+.Xr gbk 5 ,
+.Xr mskanji 5 ,
+.Xr utf8 5
 .Sh BUGS
 The
 .Nm
index d31a8b3..2274930 100644 (file)
@@ -36,7 +36,7 @@
  *
  * @(#)yacc.y  8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/mklocale/yacc.y,v 1.6.2.3 2003/06/03 21:15:48 ache Exp $
- * $DragonFly: src/usr.bin/mklocale/yacc.y,v 1.3 2004/07/22 14:30:07 hmp Exp $
+ * $DragonFly: src/usr.bin/mklocale/yacc.y,v 1.4 2004/10/29 06:03:21 asmodai Exp $
  */
 
 #include <sys/types.h>
@@ -45,7 +45,7 @@
 
 #include <ctype.h>
 #include <err.h>
-#include <rune.h>
+#include <runetype.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -94,7 +94,6 @@ void add_map(rune_map *, rune_list *, unsigned long);
 %token <i>     LIST
 %token <str>   VARIABLE
 %token         ENCODING
-%token         INVALID
 %token <str>   STRING
 
 %type  <list>  list
@@ -117,6 +116,9 @@ entry       :       ENCODING STRING
                      strcmp($2, "UTF2") &&
                      strcmp($2, "UTF-8") &&
                      strcmp($2, "EUC") &&
+                     strcmp($2, "GBK") &&
+                     strcmp($2, "GB18030") &&
+                     strcmp($2, "GB2312") &&
                      strcmp($2, "BIG5") &&
                      strcmp($2, "MSKanji"))
                        warnx("ENCODING %s is not supported by libc", $2);
@@ -126,10 +128,6 @@ entry      :       ENCODING STRING
                  new_locale.variable = malloc(new_locale.variable_len);
                  strcpy((char *)new_locale.variable, $1);
                }
-       |       INVALID RUNE
-               { warnx("the INVALID keyword is deprecated");
-                 new_locale.invalid_rune = $2;
-               }
        |       LIST list
                { set_map(&types, $2, $1); }
        |       MAPLOWER map
@@ -260,7 +258,6 @@ main(int ac, char *av[])
        mapupper.map[x] = x;
        maplower.map[x] = x;
     }
-    new_locale.invalid_rune = _INVALID_RUNE;
     memcpy(new_locale.magic, _RUNE_MAGIC_1, sizeof(new_locale.magic));
 
     yyparse();
@@ -605,8 +602,6 @@ dump_tables()
        exit(1);
     }
 
-    new_locale.invalid_rune = htonl(new_locale.invalid_rune);
-
     /*
      * Fill in our tables.  Do this in network order so that
      * diverse machines have a chance of sharing data.