18889 lines
360 KiB
Diff
18889 lines
360 KiB
Diff
Submitted By: Archaic (archaic -aT- linuxfromscratch -DoT- org)
|
||
Date: 2006-03-07
|
||
Initial Package Version: 1.18.1.1
|
||
Origin: http://ftp.debian.org/debian/pool/main/g/groff/groff_1.18.1.1-11.diff.gz
|
||
Upstream Status: This is a debian-specific patch
|
||
Description: Adds the ascii8 and nippon devices to groff for man-db.
|
||
|
||
--- groff-1.18.1.1.orig/README.jp
|
||
+++ groff-1.18.1.1/README.jp
|
||
@@ -0,0 +1,142 @@
|
||
+
|
||
+ 日本語対応版 groff-1.12 (jgroff-0.101)
|
||
+
|
||
+
|
||
+ 北川 信亨 (Kitagawa Toshiyuki)
|
||
+ tm-kita@kh.rim.or.jp
|
||
+
|
||
+ 柳原 良亮 (Yanagihara Yoshiaki)
|
||
+ yochi@debian.or.jp
|
||
+
|
||
+ GNUのroffフォーマッタgroff(version 1.12)の日本語対応を行ないました。
|
||
+ 上位互換となっていますので、日本語を含まないroffデータはオリジナルど
|
||
+おりの動作になります。日本語化に関する修正部分についての著作権はGNU
|
||
+General Public License Version 2 に従います(詳細はCOPYINGを御覧ください)。
|
||
+
|
||
+ 日本語groff(jgroff)の現バージョンは0.101(最終β版)です。このバージョン
|
||
+では以下のモジュールが日本語化されています。
|
||
+
|
||
+ groff ... groffドライバ
|
||
+ gtroff ... groff本体
|
||
+ grotty ... 端末用ポストプロセッサ
|
||
+ grops ... PostScript用ポストプロセッサ
|
||
+ grohtml ... HTML用ポストプロセッサ(Thanks HANATAKA Shinya
|
||
+ <hanataka@abyss.rim.or.jp>)
|
||
+ grodvi ... DVI用ポストプロセッサ (NTT JTeX or ASCII日本語TeX)
|
||
+ gxditview ... Xウィンドウ用ポストプロセッサ
|
||
+ gtbl ... tblマクロ用プリプロセッサ
|
||
+ gpic ... picマクロ用プリプロセッサ
|
||
+ geqn ... eqnマクロ用プリプロセッサ
|
||
+ xtotroff ... Xのフォントからgroff用フォントファイルを作成す
|
||
+ るツール
|
||
+
|
||
+# lj4ポストプロセッサ、bib関連のコマンドは日本語未対応です。
|
||
+
|
||
+
|
||
+◎ インストール
|
||
+
|
||
+ 以下の環境でmake出来ることを確認しています。
|
||
+
|
||
+ ☆ FreeBSD 2.1.0-RELEASE
|
||
+ XFree86-3.1.2, gcc 2.6.3
|
||
+
|
||
+ ☆ Debian GNU/Linux 2.2
|
||
+
|
||
+ ☆ NEC EWS/4800/310
|
||
+ SVR4.2 Release9.1 Rev.B, X11R5, gcc 2.6.0
|
||
+
|
||
+ (1) オリジナルと同様configureを実行した後、make & installして下さい。
|
||
+ 詳しくはINSTALLを参照してください。
|
||
+
|
||
+ *) grodviはNTT JTeX形式またはASCII日本語TeX形式のDVIファイルをサポー
|
||
+ トしています。groffが出力するDVIファイルをASCII日本語TeX形式に
|
||
+ したい場合はconfigure --JTeX=ASCIIとしてください。
|
||
+ --JTeXオプションを指定しなかった場合はNTT JTeX形式になります。
|
||
+
|
||
+ (2) groffのmakeの後、gxditview(groffのXウィンドウ用ポストプロセッサ)
|
||
+ をmakeします。トップディレクトリ直下のxditviewへcdして、
|
||
+
|
||
+ % xmkmf
|
||
+ % make depend
|
||
+ % make all
|
||
+ % make install install.man
|
||
+
|
||
+ で、インストール完了です。
|
||
+
|
||
+
|
||
+◎ 使い方
|
||
+
|
||
+ groffの-Tオプションに-Tnippon(端末表示)を追加した以外はオリジナルのま
|
||
+まです。
|
||
+以下は使用例。
|
||
+
|
||
+ (1) groff -Tnippon -man groff.jman
|
||
+
|
||
+ 日本語を含むroffファイル(groff.jman)をmanマクロを使ってフォーマットし、
|
||
+端末に表示します。
|
||
+
|
||
+ (2) groff -Tps -man groff.jman
|
||
+
|
||
+ 日本語を含むroffファイルをフォーマットし、PostScriptに変換します。
|
||
+
|
||
+ (3) groff -TX100 -man groff.jman
|
||
+
|
||
+ 日本語を含むroffファイルをフォーマットし、Xウィンドウに表示します。
|
||
+
|
||
+ (4) groff -Tdvi -man groff.jman
|
||
+
|
||
+ 日本語を含むroffファイルをフォーマットし、DVIファイルを出力します。
|
||
+
|
||
+
|
||
+◎ 日本語化について
|
||
+
|
||
+・ 日本語文字コードは日本語EUC(のコードセット1)のみサポートしています。
|
||
+
|
||
+・ 日本語フォントについては、カレントフォントがボールド体の時はゴシッ
|
||
+ ク体に、それ以外のフォント(ローマン、イタリック、イタリックボールド
|
||
+ 等)がカレントフォントの時は明朝体に、自動的に切り替わります。日本語
|
||
+ フォントを直接指定することは出来ません。
|
||
+
|
||
+ (注) フォントファイル名が'B'で終っているフォント(B、TB、HNBなど)を
|
||
+ ボールドフォントとしています。
|
||
+
|
||
+・ 行頭、および行末禁則に対応しています。それぞれの禁則文字は、
|
||
+
|
||
+ 行頭禁則文字: 、 。,.・:;?!)〕]}」』】
|
||
+ ぁぃぅぇぉっゃゅょァィゥェォッャュョ
|
||
+ . ? ! " ' ) ] * , : ; > }
|
||
+ 行末禁則文字: ( 〔[{「『【
|
||
+
|
||
+ を定義しています。
|
||
+
|
||
+・ -Tpsを指定した場合、EUC文字とASCII文字の間には、幅の狭い空白が自動
|
||
+ 的に挿入されます。この空白の幅はdevps/DESCのwcharkernで指定します。
|
||
+ unit単位です。0を指定すると空白は挿入されなくなります。
|
||
+
|
||
+・ -Tpsを指定した場合、EUC文字はASCII文字に対して少し下げて出力されま
|
||
+ す(そのままだとASCII文字が落ち込んで見えるため)。この下げ幅は
|
||
+ devps/DESCのlowerwcharで指定します。unit単位です。0を指定すると字下
|
||
+ げは行なわれません。
|
||
+
|
||
+・ オリジナルでは改行コードは無条件にスペース文字に変換されますが、EUC
|
||
+ 文字で囲まれた改行コードはスペースに変換せず無視するようにしました。
|
||
+
|
||
+・ EUCのスペース文字(0xa1a1)はASCIIのスペース文字として処理されます。
|
||
+
|
||
+
|
||
+◎ 謝辞
|
||
+
|
||
+grodviのASCII日本語TeX対応は、宇都宮大学の横田さんが行なってくださいま
|
||
+した。grohtmlの日本語(EUC)対応は、花嵩信哉さんが行ってくれました。
|
||
+また、多くの方からバグに関する報告、修正イメージを送って頂きました。
|
||
+御協力くださった皆様にはとても感謝しております。有難うございました。
|
||
+
|
||
+
|
||
+◎ お願い
|
||
+
|
||
+現バージョンではlj4ポストプロセッサ、bib関連のコマンド群が日本語化され
|
||
+ておりません。これらの日本語化を行ってくださる方を募集致しております。
|
||
+ぜひ御協力ください。また、日本語対応groffに関して御意見、御希望等を
|
||
+是非お聞かせください。今後の参考にさせて頂きます(もちろんバグ報告も
|
||
+歓迎です!)。
|
||
+以上はE-Mailにて、tm-kita@kh.rim.or.jp宛にお送りください。
|
||
--- groff-1.18.1.1.orig/src/include/config.hin
|
||
+++ groff-1.18.1.1/src/include/config.hin
|
||
@@ -1,84 +1,96 @@
|
||
-/* src/include/config.hin. Generated automatically from configure.ac by autoheader. */
|
||
+/* src/include/config.hin. Generated from configure.ac by autoheader. */
|
||
|
||
/* Define if your C++ doesn't understand `delete []'. */
|
||
#undef ARRAY_DELETE_NEEDS_SIZE
|
||
|
||
+/* Define if you want to use multibyte extension. */
|
||
+#undef ENABLE_MULTIBYTE
|
||
+
|
||
/* Define if you have a C++ <limits.h>. */
|
||
#undef HAVE_CC_LIMITS_H
|
||
|
||
/* Define if you have a C++ <osfcn.h>. */
|
||
#undef HAVE_CC_OSFCN_H
|
||
|
||
-/* Define if you have the <dirent.h> header file. */
|
||
+/* Define to 1 if you have the <dirent.h> header file. */
|
||
#undef HAVE_DIRENT_H
|
||
|
||
-/* Define if you have the `fmod' function. */
|
||
+/* Define to 1 if you have the `fmod' function. */
|
||
#undef HAVE_FMOD
|
||
|
||
-/* Define if you have the `getcwd' function. */
|
||
+/* Define to 1 if you have the `getcwd' function. */
|
||
#undef HAVE_GETCWD
|
||
|
||
-/* Define if you have the `getpagesize' function. */
|
||
+/* Define to 1 if you have the `getpagesize' function. */
|
||
#undef HAVE_GETPAGESIZE
|
||
|
||
-/* Define if you have the `gettimeofday' function. */
|
||
+/* Define to 1 if you have the `gettimeofday' function. */
|
||
#undef HAVE_GETTIMEOFDAY
|
||
|
||
-/* Define if you have the <limits.h> header file. */
|
||
+/* Define to 1 if you have the <inttypes.h> header file. */
|
||
+#undef HAVE_INTTYPES_H
|
||
+
|
||
+/* Define to 1 if you have the `isatty' function. */
|
||
+#undef HAVE_ISATTY
|
||
+
|
||
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
||
+#undef HAVE_LANGINFO_CODESET
|
||
+
|
||
+/* Define to 1 if you have the <limits.h> header file. */
|
||
#undef HAVE_LIMITS_H
|
||
|
||
-/* Define if you have the <math.h> header file. */
|
||
+/* Define to 1 if you have the <math.h> header file. */
|
||
#undef HAVE_MATH_H
|
||
|
||
+/* Define to 1 if you have the <memory.h> header file. */
|
||
+#undef HAVE_MEMORY_H
|
||
+
|
||
/* Define if you have mkstemp(). */
|
||
#undef HAVE_MKSTEMP
|
||
|
||
-/* Define if you have a working `mmap' system call. */
|
||
+/* Define to 1 if you have a working `mmap' system call. */
|
||
#undef HAVE_MMAP
|
||
|
||
-/* Define if you have the `putenv' function. */
|
||
+/* Define to 1 if you have the `putenv' function. */
|
||
#undef HAVE_PUTENV
|
||
|
||
-/* Define if you have the `rename' function. */
|
||
+/* Define to 1 if you have the `rename' function. */
|
||
#undef HAVE_RENAME
|
||
|
||
-/* Define if you have the `snprintf' function. */
|
||
+/* Define to 1 if you have the `snprintf' function. */
|
||
#undef HAVE_SNPRINTF
|
||
|
||
-/* Define if you have the `isatty' function. */
|
||
-#undef HAVE_ISATTY
|
||
-
|
||
-/* Define if you have the <stdint.h> header file. */
|
||
+/* Define to 1 if you have the <stdint.h> header file. */
|
||
#undef HAVE_STDINT_H
|
||
|
||
-/* Define if you have the <stdlib.h> header file. */
|
||
+/* Define to 1 if you have the <stdlib.h> header file. */
|
||
#undef HAVE_STDLIB_H
|
||
|
||
-/* Define if you have the `strcasecmp' function. */
|
||
+/* Define to 1 if you have the `strcasecmp' function. */
|
||
#undef HAVE_STRCASECMP
|
||
|
||
-/* Define if you have the `strerror' function. */
|
||
+/* Define to 1 if you have the `strerror' function. */
|
||
#undef HAVE_STRERROR
|
||
|
||
-/* Define if you have the <strings.h> header file. */
|
||
+/* Define to 1 if you have the <strings.h> header file. */
|
||
#undef HAVE_STRINGS_H
|
||
|
||
-/* Define if you have the <string.h> header file. */
|
||
+/* Define to 1 if you have the <string.h> header file. */
|
||
#undef HAVE_STRING_H
|
||
|
||
-/* Define if you have the `strncasecmp' function. */
|
||
+/* Define to 1 if you have the `strncasecmp' function. */
|
||
#undef HAVE_STRNCASECMP
|
||
|
||
-/* Define if you have the `strsep' function. */
|
||
+/* Define to 1 if you have the `strsep' function. */
|
||
#undef HAVE_STRSEP
|
||
|
||
-/* Define if you have the `strtol' function. */
|
||
+/* Define to 1 if you have the `strtol' function. */
|
||
#undef HAVE_STRTOL
|
||
|
||
/* Define if <math.h> defines struct exception. */
|
||
#undef HAVE_STRUCT_EXCEPTION
|
||
|
||
-/* Define if you have the <sys/dir.h> header file. */
|
||
+/* Define to 1 if you have the <sys/dir.h> header file. */
|
||
#undef HAVE_SYS_DIR_H
|
||
|
||
/* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
|
||
@@ -87,10 +99,16 @@
|
||
/* Define if you have sysnerr in <errno.h> or <stdio.h>. */
|
||
#undef HAVE_SYS_NERR
|
||
|
||
-/* Define if you have the <sys/time.h> header file. */
|
||
+/* Define to 1 if you have the <sys/stat.h> header file. */
|
||
+#undef HAVE_SYS_STAT_H
|
||
+
|
||
+/* Define to 1 if you have the <sys/time.h> header file. */
|
||
#undef HAVE_SYS_TIME_H
|
||
|
||
-/* Define if you have the <unistd.h> header file. */
|
||
+/* Define to 1 if you have the <sys/types.h> header file. */
|
||
+#undef HAVE_SYS_TYPES_H
|
||
+
|
||
+/* Define to 1 if you have the <unistd.h> header file. */
|
||
#undef HAVE_UNISTD_H
|
||
|
||
/* Define if the host's encoding is EBCDIC. */
|
||
@@ -120,6 +138,21 @@
|
||
/* Define if your C++ doesn't declare strncasecmp(). */
|
||
#undef NEED_DECLARATION_STRNCASECMP
|
||
|
||
+/* Define to the address where bug reports for this package should be sent. */
|
||
+#undef PACKAGE_BUGREPORT
|
||
+
|
||
+/* Define to the full name of this package. */
|
||
+#undef PACKAGE_NAME
|
||
+
|
||
+/* Define to the full name and version of this package. */
|
||
+#undef PACKAGE_STRING
|
||
+
|
||
+/* Define to the one symbol short name of this package. */
|
||
+#undef PACKAGE_TARNAME
|
||
+
|
||
+/* Define to the version of this package. */
|
||
+#undef PACKAGE_VERSION
|
||
+
|
||
/* Define if the printer's page size is A4. */
|
||
#undef PAGEA4
|
||
|
||
@@ -129,7 +162,10 @@
|
||
/* Define if srand() returns void not int. */
|
||
#undef RET_TYPE_SRAND_IS_VOID
|
||
|
||
-/* Define if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
|
||
+/* Define to 1 if you have the ANSI C header files. */
|
||
+#undef STDC_HEADERS
|
||
+
|
||
+/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
|
||
#undef SYS_SIGLIST_DECLARED
|
||
|
||
/* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
|
||
--- groff-1.18.1.1.orig/src/include/encoding.h
|
||
+++ groff-1.18.1.1/src/include/encoding.h
|
||
@@ -0,0 +1,175 @@
|
||
+// -*- C++ -*-
|
||
+/* Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+This file is part of groff.
|
||
+
|
||
+groff is free software; you can redistribute it and/or modify it under
|
||
+the terms of the GNU General Public License as published by the Free
|
||
+Software Foundation; either version 2, or (at your option) any later
|
||
+version.
|
||
+
|
||
+groff is distributed in the hope that it will be useful, but WITHOUT ANY
|
||
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||
+for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with this program; if not, write to the Free Software
|
||
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||
+
|
||
+#ifndef ENCODING_H
|
||
+#define ENCODING_H
|
||
+
|
||
+#include <config.h>
|
||
+
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+typedef int wchar; // negative is used for charcode & index
|
||
+#else
|
||
+typedef char wchar;
|
||
+#endif
|
||
+
|
||
+#include <stdio.h>
|
||
+
|
||
+#ifdef __cplusplus
|
||
+class encoding_istream {
|
||
+public:
|
||
+ encoding_istream() {};
|
||
+ virtual ~encoding_istream() {};
|
||
+ virtual int getbyte() = 0;
|
||
+ virtual int peekbyte() = 0;
|
||
+ virtual void ungetbyte(int ch) = 0;
|
||
+};
|
||
+
|
||
+class encoding_istream_str: public encoding_istream {
|
||
+private:
|
||
+ const unsigned char *s;
|
||
+ int *i;
|
||
+ encoding_istream_str() {};
|
||
+public:
|
||
+ encoding_istream_str(const unsigned char *s0, int *i0) : s(s0), i(i0) {};
|
||
+ ~encoding_istream_str() {};
|
||
+ inline int getbyte() { return s[(*i)++]; };
|
||
+ inline int peekbyte() { return s[(*i)]; };
|
||
+ inline void ungetbyte(int ch) { --(*i); };
|
||
+};
|
||
+
|
||
+class encoding_istream_fp: public encoding_istream {
|
||
+private:
|
||
+ FILE *fp;
|
||
+public:
|
||
+ encoding_istream_fp(FILE *fp0) : fp(fp0) {};
|
||
+ ~encoding_istream_fp() {};
|
||
+ inline int getbyte() { return fgetc(fp); };
|
||
+ inline int peekbyte() { int ch = fgetc(fp); ungetc(ch, fp); return ch; };
|
||
+ inline void ungetbyte(int ch) { ungetc(ch, fp); };
|
||
+};
|
||
+
|
||
+class encoding_ostream {
|
||
+public:
|
||
+ encoding_ostream() {};
|
||
+ virtual ~encoding_ostream() {};
|
||
+ virtual void putbyte(unsigned char ch) = 0;
|
||
+};
|
||
+
|
||
+class encoding_ostream_str: public encoding_ostream {
|
||
+private:
|
||
+ unsigned char *s;
|
||
+ int *i;
|
||
+ int len;
|
||
+ encoding_ostream_str() {};
|
||
+public:
|
||
+ encoding_ostream_str(unsigned char *s0, int *i0, int max) : s(s0), i(i0), len(max) {};
|
||
+ ~encoding_ostream_str() {};
|
||
+ inline void putbyte(unsigned char ch) {
|
||
+ if (*i < len)
|
||
+ s[(*i)++] = ch;
|
||
+ }
|
||
+};
|
||
+
|
||
+class encoding_ostream_fp: public encoding_ostream {
|
||
+private:
|
||
+ FILE *fp;
|
||
+ const char *format;
|
||
+public:
|
||
+ encoding_ostream_fp(FILE *ofp, const char *fmt = "%c") : fp(ofp), format(fmt) {};
|
||
+ ~encoding_ostream_fp() {};
|
||
+ inline void putbyte(unsigned char ch) {
|
||
+ fprintf(fp, format, ch);
|
||
+ }
|
||
+};
|
||
+
|
||
+class encoding_handler {
|
||
+public:
|
||
+ encoding_handler() {};
|
||
+ virtual ~encoding_handler() {};
|
||
+
|
||
+ // name of this encoding_handler
|
||
+ virtual const char *name() { return ""; };
|
||
+
|
||
+ // check if this byte is byte in multibyte character in this encoding?
|
||
+ virtual int is_wchar_byte(unsigned char c) { return 0; };
|
||
+
|
||
+ // make new wchar from c0 (beginning of multibytes) and rest from `in'
|
||
+ virtual wchar make_wchar(unsigned char c0, encoding_istream& in) {
|
||
+ return wchar(c0);
|
||
+ }
|
||
+ // make new wchar from c0 (beginning of multibytes) and rest from `fp'
|
||
+ virtual wchar make_wchar(unsigned char c0, FILE *fp) {
|
||
+ encoding_istream_fp in(fp);
|
||
+ return make_wchar(c0, in);
|
||
+ }
|
||
+ // make new wchar from c0 (beginning of multibtyes) and rest from
|
||
+ // s[*i], *i will be changed to point the byte of next character.
|
||
+ virtual wchar make_wchar(unsigned char c0, const unsigned char *s, int *i) {
|
||
+ encoding_istream_str in(s, i);
|
||
+ return make_wchar(c0, in);
|
||
+ }
|
||
+
|
||
+ // put wchar to outputstream
|
||
+ // returns number of bytes written
|
||
+ virtual int put_wchar(wchar wc, encoding_ostream& eos) {
|
||
+ eos.putbyte((unsigned char)wc);
|
||
+ return 1;
|
||
+ }
|
||
+ // put wchar to `fp' using `fmt'
|
||
+ // returns number of bytes written
|
||
+ virtual int put_wchar(wchar wc, FILE *fp, const char *fmt = "%c") {
|
||
+ encoding_ostream_fp out(fp, fmt);
|
||
+ return put_wchar(wc, out);
|
||
+ }
|
||
+ // put wchar to s[*i] (until maxlen)
|
||
+ // *i will be changed to point the byte of next character.
|
||
+ virtual int put_wchar(wchar wc, unsigned char *s, int *i, int maxlen) {
|
||
+ encoding_ostream_str out(s, i, maxlen);
|
||
+ return put_wchar(wc, out);
|
||
+ }
|
||
+
|
||
+ // maximum number of bytes of multibyte character in this encoding
|
||
+ virtual int max_wchar_len() { return 1; };
|
||
+
|
||
+};
|
||
+
|
||
+encoding_handler* select_input_encoding_handler(const char* encoding_name);
|
||
+encoding_handler* select_output_encoding_handler(const char* encoding_name);
|
||
+extern encoding_handler* input_encoding;
|
||
+extern encoding_handler* output_encoding;
|
||
+void init_encoding_handler();
|
||
+
|
||
+// check if wc is wchar?
|
||
+int is_wchar_code(wchar wc);
|
||
+
|
||
+// check if wc is wchar & can be represented in single byte?
|
||
+int is_wchar_singlebyte(wchar wc);
|
||
+
|
||
+// get singlebyte representation of wchar (if is_wchar_singlebyte(wc))
|
||
+unsigned char wchar_singlebyte(wchar wc);
|
||
+
|
||
+// get actual wide character code
|
||
+int wchar_code(wchar wc);
|
||
+
|
||
+// make wchar from wide character code
|
||
+int make_wchar(int w);
|
||
+
|
||
+#endif
|
||
+
|
||
+#endif /* ENCODING_H */
|
||
--- groff-1.18.1.1.orig/src/include/lib.h
|
||
+++ groff-1.18.1.1/src/include/lib.h
|
||
@@ -88,8 +88,15 @@
|
||
|
||
extern char invalid_char_table[];
|
||
|
||
+#include "encoding.h" /* XXX: ukai */
|
||
+
|
||
inline int invalid_input_char(int c)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (input_encoding->is_wchar_byte(c))
|
||
+ return 0;
|
||
+ else
|
||
+#endif
|
||
return c >= 0 && invalid_char_table[c];
|
||
}
|
||
|
||
--- groff-1.18.1.1.orig/src/include/device.h
|
||
+++ groff-1.18.1.1/src/include/device.h
|
||
@@ -18,4 +18,9 @@
|
||
with groff; see the file COPYING. If not, write to the Free Software
|
||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||
|
||
+#ifndef _DEVICE_H
|
||
+#define _DEVICE_H
|
||
+
|
||
extern const char *device;
|
||
+
|
||
+#endif /* _DEVICE_H */
|
||
--- groff-1.18.1.1.orig/src/include/config.h
|
||
+++ groff-1.18.1.1/src/include/config.h
|
||
@@ -0,0 +1,187 @@
|
||
+/* src/include/config.h. Generated by configure. */
|
||
+/* src/include/config.hin. Generated from configure.ac by autoheader. */
|
||
+
|
||
+/* Define if your C++ doesn't understand `delete []'. */
|
||
+/* #undef ARRAY_DELETE_NEEDS_SIZE */
|
||
+
|
||
+/* Define if you want to use multibyte extension. */
|
||
+#define ENABLE_MULTIBYTE 1
|
||
+
|
||
+/* Define if you have a C++ <limits.h>. */
|
||
+#define HAVE_CC_LIMITS_H 1
|
||
+
|
||
+/* Define if you have a C++ <osfcn.h>. */
|
||
+/* #undef HAVE_CC_OSFCN_H */
|
||
+
|
||
+/* Define to 1 if you have the <dirent.h> header file. */
|
||
+#define HAVE_DIRENT_H 1
|
||
+
|
||
+/* Define to 1 if you have the `fmod' function. */
|
||
+#define HAVE_FMOD 1
|
||
+
|
||
+/* Define to 1 if you have the `getcwd' function. */
|
||
+#define HAVE_GETCWD 1
|
||
+
|
||
+/* Define to 1 if you have the `getpagesize' function. */
|
||
+#define HAVE_GETPAGESIZE 1
|
||
+
|
||
+/* Define to 1 if you have the `gettimeofday' function. */
|
||
+#define HAVE_GETTIMEOFDAY 1
|
||
+
|
||
+/* Define to 1 if you have the <inttypes.h> header file. */
|
||
+#define HAVE_INTTYPES_H 1
|
||
+
|
||
+/* Define to 1 if you have the `isatty' function. */
|
||
+#define HAVE_ISATTY 1
|
||
+
|
||
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
||
+#define HAVE_LANGINFO_CODESET 1
|
||
+
|
||
+/* Define to 1 if you have the <limits.h> header file. */
|
||
+#define HAVE_LIMITS_H 1
|
||
+
|
||
+/* Define to 1 if you have the <math.h> header file. */
|
||
+#define HAVE_MATH_H 1
|
||
+
|
||
+/* Define to 1 if you have the <memory.h> header file. */
|
||
+#define HAVE_MEMORY_H 1
|
||
+
|
||
+/* Define if you have mkstemp(). */
|
||
+#define HAVE_MKSTEMP 1
|
||
+
|
||
+/* Define to 1 if you have a working `mmap' system call. */
|
||
+#define HAVE_MMAP 1
|
||
+
|
||
+/* Define to 1 if you have the `putenv' function. */
|
||
+#define HAVE_PUTENV 1
|
||
+
|
||
+/* Define to 1 if you have the `rename' function. */
|
||
+#define HAVE_RENAME 1
|
||
+
|
||
+/* Define to 1 if you have the `snprintf' function. */
|
||
+#define HAVE_SNPRINTF 1
|
||
+
|
||
+/* Define to 1 if you have the <stdint.h> header file. */
|
||
+#define HAVE_STDINT_H 1
|
||
+
|
||
+/* Define to 1 if you have the <stdlib.h> header file. */
|
||
+#define HAVE_STDLIB_H 1
|
||
+
|
||
+/* Define to 1 if you have the `strcasecmp' function. */
|
||
+#define HAVE_STRCASECMP 1
|
||
+
|
||
+/* Define to 1 if you have the `strerror' function. */
|
||
+#define HAVE_STRERROR 1
|
||
+
|
||
+/* Define to 1 if you have the <strings.h> header file. */
|
||
+#define HAVE_STRINGS_H 1
|
||
+
|
||
+/* Define to 1 if you have the <string.h> header file. */
|
||
+#define HAVE_STRING_H 1
|
||
+
|
||
+/* Define to 1 if you have the `strncasecmp' function. */
|
||
+#define HAVE_STRNCASECMP 1
|
||
+
|
||
+/* Define to 1 if you have the `strsep' function. */
|
||
+#define HAVE_STRSEP 1
|
||
+
|
||
+/* Define to 1 if you have the `strtol' function. */
|
||
+#define HAVE_STRTOL 1
|
||
+
|
||
+/* Define if <math.h> defines struct exception. */
|
||
+#define HAVE_STRUCT_EXCEPTION 1
|
||
+
|
||
+/* Define to 1 if you have the <sys/dir.h> header file. */
|
||
+#define HAVE_SYS_DIR_H 1
|
||
+
|
||
+/* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
|
||
+#define HAVE_SYS_ERRLIST 1
|
||
+
|
||
+/* Define if you have sysnerr in <errno.h> or <stdio.h>. */
|
||
+#define HAVE_SYS_NERR 1
|
||
+
|
||
+/* Define to 1 if you have the <sys/stat.h> header file. */
|
||
+#define HAVE_SYS_STAT_H 1
|
||
+
|
||
+/* Define to 1 if you have the <sys/time.h> header file. */
|
||
+#define HAVE_SYS_TIME_H 1
|
||
+
|
||
+/* Define to 1 if you have the <sys/types.h> header file. */
|
||
+#define HAVE_SYS_TYPES_H 1
|
||
+
|
||
+/* Define to 1 if you have the <unistd.h> header file. */
|
||
+#define HAVE_UNISTD_H 1
|
||
+
|
||
+/* Define if the host's encoding is EBCDIC. */
|
||
+/* #undef IS_EBCDIC_HOST */
|
||
+
|
||
+/* Define if localtime() takes a long * not a time_t *. */
|
||
+/* #undef LONG_FOR_TIME_T */
|
||
+
|
||
+/* Define if your C++ doesn't declare gettimeofday(). */
|
||
+/* #undef NEED_DECLARATION_GETTIMEOFDAY */
|
||
+
|
||
+/* Define if your C++ doesn't declare hypot(). */
|
||
+/* #undef NEED_DECLARATION_HYPOT */
|
||
+
|
||
+/* Define if your C++ doesn't declare pclose(). */
|
||
+/* #undef NEED_DECLARATION_PCLOSE */
|
||
+
|
||
+/* Define if your C++ doesn't declare popen(). */
|
||
+/* #undef NEED_DECLARATION_POPEN */
|
||
+
|
||
+/* Define if your C++ doesn't declare putenv(). */
|
||
+/* #undef NEED_DECLARATION_PUTENV */
|
||
+
|
||
+/* Define if your C++ doesn't declare strcasecmp(). */
|
||
+/* #undef NEED_DECLARATION_STRCASECMP */
|
||
+
|
||
+/* Define if your C++ doesn't declare strncasecmp(). */
|
||
+/* #undef NEED_DECLARATION_STRNCASECMP */
|
||
+
|
||
+/* Define to the address where bug reports for this package should be sent. */
|
||
+#define PACKAGE_BUGREPORT ""
|
||
+
|
||
+/* Define to the full name of this package. */
|
||
+#define PACKAGE_NAME ""
|
||
+
|
||
+/* Define to the full name and version of this package. */
|
||
+#define PACKAGE_STRING ""
|
||
+
|
||
+/* Define to the one symbol short name of this package. */
|
||
+#define PACKAGE_TARNAME ""
|
||
+
|
||
+/* Define to the version of this package. */
|
||
+#define PACKAGE_VERSION ""
|
||
+
|
||
+/* Define if the printer's page size is A4. */
|
||
+#define PAGEA4 1
|
||
+
|
||
+/* Define as the return type of signal handlers (`int' or `void'). */
|
||
+#define RETSIGTYPE void
|
||
+
|
||
+/* Define if srand() returns void not int. */
|
||
+#define RET_TYPE_SRAND_IS_VOID 1
|
||
+
|
||
+/* Define to 1 if you have the ANSI C header files. */
|
||
+#define STDC_HEADERS 1
|
||
+
|
||
+/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
|
||
+#define SYS_SIGLIST_DECLARED 1
|
||
+
|
||
+/* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
|
||
+/* #undef TRADITIONAL_CPP */
|
||
+
|
||
+/* Define if the 0200 bit of the status returned by wait() indicates whether a
|
||
+ core image was produced for a process that was terminated by a signal. */
|
||
+/* #undef WCOREFLAG */
|
||
+
|
||
+/* Define if -D_POSIX_SOURCE is necessary. */
|
||
+/* #undef _POSIX_SOURCE */
|
||
+
|
||
+/* Define if you have ISC 3.x or 4.x. */
|
||
+/* #undef _SYSV3 */
|
||
+
|
||
+/* Define uintmax_t to `unsigned long' or `unsigned long long' if <inttypes.h>
|
||
+ does not exist. */
|
||
+/* #undef uintmax_t */
|
||
--- groff-1.18.1.1.orig/src/include/printer.h
|
||
+++ groff-1.18.1.1/src/include/printer.h
|
||
@@ -38,6 +38,8 @@
|
||
|
||
#include "color.h"
|
||
|
||
+#include "encoding.h"
|
||
+
|
||
struct environment {
|
||
int fontno;
|
||
int size;
|
||
@@ -63,6 +65,9 @@
|
||
printer();
|
||
virtual ~printer();
|
||
void load_font(int i, const char *name);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ void set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp = 0);
|
||
+#endif
|
||
void set_ascii_char(unsigned char c, const environment *env,
|
||
int *widthp = 0);
|
||
void set_special_char(const char *nm, const environment *env,
|
||
--- groff-1.18.1.1.orig/src/include/font.h
|
||
+++ groff-1.18.1.1/src/include/font.h
|
||
@@ -18,11 +18,17 @@
|
||
with groff; see the file COPYING. If not, write to the Free Software
|
||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||
|
||
+#include "encoding.h"
|
||
+
|
||
typedef void (*FONT_COMMAND_HANDLER)(const char *, const char *,
|
||
const char *, int);
|
||
|
||
struct font_kern_list;
|
||
struct font_char_metric;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+struct fontset_list;
|
||
+struct font_wchar_metric;
|
||
+#endif
|
||
struct font_widths_cache;
|
||
|
||
class font {
|
||
@@ -53,6 +59,9 @@
|
||
const char *get_special_device_encoding(int index);
|
||
const char *get_name();
|
||
const char *get_internal_name();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ const char *get_subfont_name(int index);
|
||
+#endif
|
||
|
||
static int scan_papersize(const char *, const char **, double *, double *);
|
||
|
||
@@ -62,6 +71,9 @@
|
||
static int load_desc();
|
||
static int name_to_index(const char *);
|
||
static int number_to_index(int);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ static int wchar_index(wchar);
|
||
+#endif
|
||
static FONT_COMMAND_HANDLER
|
||
set_unknown_desc_command_handler(FONT_COMMAND_HANDLER);
|
||
|
||
@@ -76,6 +88,11 @@
|
||
static int spare2;
|
||
static int sizescale;
|
||
static int tcommand;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ // XXX: should be in charinfo or font_wchar_metric?
|
||
+ static int lowerwchar;
|
||
+ static int wcharkern;
|
||
+#endif
|
||
static int pass_filenames;
|
||
static int use_charnames_in_special;
|
||
|
||
@@ -83,13 +100,27 @@
|
||
static const char **style_table;
|
||
static const char *family;
|
||
static int *sizes;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ // fontsets - sub font list
|
||
+ static fontset_list *fontsets;
|
||
+ // get fontset for `wc' in current font `fname'
|
||
+ static int get_fontset_font(const char *fname, wchar wc);
|
||
+ // is the fontno's font load on demand?
|
||
+ static int is_on_demand(int fontno);
|
||
+#endif
|
||
private:
|
||
unsigned ligatures;
|
||
font_kern_list **kern_hash_table;
|
||
int space_width;
|
||
- short *ch_index;
|
||
+ short *ch_index; /* XXX: this is used unless font_wchar_metric. */
|
||
int nindices;
|
||
font_char_metric *ch;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ // font metric for wchar
|
||
+ font_wchar_metric *wch;
|
||
+ // get font metric for wchar indexed by c
|
||
+ font_wchar_metric *get_font_wchar_metric(int c);
|
||
+#endif
|
||
int ch_used;
|
||
int ch_size;
|
||
int special;
|
||
--- groff-1.18.1.1.orig/src/include/driver.h
|
||
+++ groff-1.18.1.1/src/include/driver.h
|
||
@@ -27,6 +27,7 @@
|
||
#include <errno.h>
|
||
#include <assert.h>
|
||
#include <math.h>
|
||
+#include "encoding.h" // XXX: ukai
|
||
#include "errarg.h"
|
||
#include "error.h"
|
||
#include "font.h"
|
||
--- groff-1.18.1.1.orig/src/libs/libdriver/input.cc
|
||
+++ groff-1.18.1.1/src/libs/libdriver/input.cc
|
||
@@ -250,6 +250,7 @@
|
||
|
||
#include "driver.h"
|
||
#include "device.h"
|
||
+#include "encoding.h"
|
||
|
||
#include <stdlib.h>
|
||
#include <errno.h>
|
||
@@ -1439,6 +1440,19 @@
|
||
char *subcmd_str = get_string_arg();
|
||
char subcmd = subcmd_str[0];
|
||
switch (subcmd) {
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ case 'e': // x encoding: select encoding
|
||
+ {
|
||
+ char *str_arg = get_string_arg();
|
||
+ if (str_arg == 0)
|
||
+ warning("empty argument for `x encoding' command");
|
||
+ else {
|
||
+ select_input_encoding_handler(str_arg);
|
||
+ delete str_arg;
|
||
+ }
|
||
+ break;
|
||
+ }
|
||
+#endif
|
||
case 'f': // x font: mount font
|
||
{
|
||
IntArg n = get_integer_arg();
|
||
@@ -1517,7 +1531,7 @@
|
||
return stopped;
|
||
}
|
||
|
||
-
|
||
+////////////////////////////////////////////////////////////////
|
||
/**********************************************************************
|
||
exported part (by driver.h)
|
||
**********************************************************************/
|
||
@@ -1625,6 +1639,18 @@
|
||
if (str_arg[0] != 'i')
|
||
fatal("the third command must be `x init'");
|
||
delete str_arg;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ Char c = get_char();
|
||
+ while (is_space_or_tab(c) && c != Char('\n') && c != Char(EOF))
|
||
+ c = get_char();
|
||
+ unget_char(c);
|
||
+ if (c != Char('\n') && c != Char(EOF)) {
|
||
+ const char *tmp_encoding = get_string_arg();
|
||
+ if (tmp_encoding && *tmp_encoding)
|
||
+ select_input_encoding_handler(tmp_encoding);
|
||
+ delete tmp_encoding;
|
||
+ }
|
||
+#endif
|
||
skip_line_x();
|
||
}
|
||
|
||
@@ -1763,6 +1789,18 @@
|
||
size_t i = 0;
|
||
while ((c = str_arg[i++]) != '\0') {
|
||
EnvInt w;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (input_encoding->is_wchar_byte(c)) {
|
||
+ int i0 = i - 1;
|
||
+ wchar wc = input_encoding->make_wchar(c, (const unsigned char *)str_arg, (int *)&i);
|
||
+ if (is_wchar_code(wc)) {
|
||
+ /* XXX: singlebyte check? */
|
||
+ pr->set_wchar_char(wc, str_arg, i0, i - i0, current_env, &w);
|
||
+ } else {
|
||
+ pr->set_ascii_char((unsigned char) c, current_env, &w);
|
||
+ }
|
||
+ } else
|
||
+#endif
|
||
pr->set_ascii_char((unsigned char) c, current_env, &w);
|
||
current_env->hpos += w;
|
||
}
|
||
--- groff-1.18.1.1.orig/src/libs/libdriver/printer.cc
|
||
+++ groff-1.18.1.1/src/libs/libdriver/printer.cc
|
||
@@ -27,6 +27,7 @@
|
||
*/
|
||
|
||
#include "driver.h"
|
||
+#include "encoding.h"
|
||
|
||
printer *pr = 0;
|
||
|
||
@@ -138,6 +139,24 @@
|
||
}
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+void printer::set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp)
|
||
+{
|
||
+ unsigned char *buf = new unsigned char[len+1];
|
||
+ memset(buf, 0, len+1);
|
||
+ memcpy(buf, s+i0, len);
|
||
+ font *f;
|
||
+ int w;
|
||
+ int i = set_char_and_width((const char *)buf, env, &w, &f);
|
||
+ if (i != -1) {
|
||
+ set_char(c, f, env, w, (const char *)buf);
|
||
+ if (widthp)
|
||
+ *widthp = w;
|
||
+ }
|
||
+ delete [] buf;
|
||
+}
|
||
+#endif
|
||
+
|
||
void printer::set_special_char(const char *nm, const environment *env,
|
||
int *widthp)
|
||
{
|
||
--- groff-1.18.1.1.orig/src/libs/libgroff/fontfile.cc
|
||
+++ groff-1.18.1.1/src/libs/libgroff/fontfile.cc
|
||
@@ -24,6 +24,7 @@
|
||
#include <assert.h>
|
||
#include <stdlib.h>
|
||
#include <errno.h>
|
||
+#include "encoding.h" // XXX: ukai
|
||
#include "font.h"
|
||
#include "searchpath.h"
|
||
#include "device.h"
|
||
@@ -36,6 +37,10 @@
|
||
int font::res = 0;
|
||
int font::hor = 1;
|
||
int font::vert = 1;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+int font::lowerwchar = 0;
|
||
+int font::wcharkern = 0;
|
||
+#endif
|
||
int font::unitwidth = 0;
|
||
int font::paperwidth = 0;
|
||
int font::paperlength = 0;
|
||
--- groff-1.18.1.1.orig/src/libs/libgroff/font.cc
|
||
+++ groff-1.18.1.1/src/libs/libgroff/font.cc
|
||
@@ -25,6 +25,7 @@
|
||
#include <assert.h>
|
||
#include <math.h>
|
||
#include <stdlib.h>
|
||
+#include "encoding.h" // XXX: ukai
|
||
#include "errarg.h"
|
||
#include "error.h"
|
||
#include "cset.h"
|
||
@@ -43,8 +44,39 @@
|
||
int italic_correction;
|
||
int subscript_correction;
|
||
char *special_device_coding;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ char *subfont_name;
|
||
+#endif
|
||
};
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+struct fontset_list {
|
||
+ struct fontset_list *next;
|
||
+ char *primary_font_name;
|
||
+ int fontset_font;
|
||
+ wchar start_code;
|
||
+ wchar end_code;
|
||
+ int on_demand;
|
||
+};
|
||
+
|
||
+fontset_list *font::fontsets = NULL;
|
||
+
|
||
+struct font_wchar_metric {
|
||
+ struct font_wchar_metric *next;
|
||
+ char type;
|
||
+ int start_code;
|
||
+ int end_code;
|
||
+ int width;
|
||
+ int height;
|
||
+ int depth;
|
||
+ int pre_math_space;
|
||
+ int italic_correction;
|
||
+ int subscript_correction;
|
||
+ char *special_device_coding;
|
||
+ char *subfont_name;
|
||
+};
|
||
+#endif
|
||
+
|
||
struct font_kern_list {
|
||
int i1;
|
||
int i2;
|
||
@@ -149,7 +181,11 @@
|
||
|
||
font::font(const char *s)
|
||
: ligatures(0), kern_hash_table(0), space_width(0), ch_index(0), nindices(0),
|
||
- ch(0), ch_used(0), ch_size(0), special(0), widths_cache(0)
|
||
+ ch(0),
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wch(0),
|
||
+#endif
|
||
+ ch_used(0), ch_size(0), special(0), widths_cache(0)
|
||
{
|
||
name = new char[strlen(s) + 1];
|
||
strcpy(name, s);
|
||
@@ -183,6 +219,17 @@
|
||
widths_cache = widths_cache->next;
|
||
delete tem;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ struct font_wchar_metric *wcp, *nwcp;
|
||
+ for (wcp = wch; wcp != NULL; wcp = nwcp) {
|
||
+ nwcp = wcp->next;
|
||
+ if (wcp->special_device_coding)
|
||
+ delete [] wcp->special_device_coding;
|
||
+ if (wcp->subfont_name)
|
||
+ delete [] wcp->subfont_name;
|
||
+ delete wcp;
|
||
+ }
|
||
+#endif
|
||
}
|
||
|
||
static int scale_round(int n, int x, int y)
|
||
@@ -244,6 +291,11 @@
|
||
|
||
int font::contains(int c)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL)
|
||
+ return 1;
|
||
+#endif
|
||
return c >= 0 && c < nindices && ch_index[c] >= 0;
|
||
}
|
||
|
||
@@ -266,8 +318,31 @@
|
||
a_delete width;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+struct font_wchar_metric *
|
||
+font::get_font_wchar_metric(int c)
|
||
+{
|
||
+ /* XXX: c is font index, not char code... */
|
||
+ /* XXX: we assume wchar_code == font index code for wchars */
|
||
+ /* XXX: does really code conflicts with index? */
|
||
+ struct font_wchar_metric *wcp;
|
||
+ for (wcp = wch; wcp != NULL; wcp = wcp->next) {
|
||
+ if (wcp->start_code <= wchar_code(c) && wchar_code(c) <= wcp->end_code) {
|
||
+ return wcp;
|
||
+ }
|
||
+ }
|
||
+ return NULL;
|
||
+}
|
||
+#endif
|
||
+
|
||
int font::get_width(int c, int point_size)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return scale(wcp->width, point_size);
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices);
|
||
int i = ch_index[c];
|
||
assert(i >= 0);
|
||
@@ -299,30 +374,60 @@
|
||
|
||
int font::get_height(int c, int point_size)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return scale(wcp->height, point_size);
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return scale(ch[ch_index[c]].height, point_size);
|
||
}
|
||
|
||
int font::get_depth(int c, int point_size)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return scale(wcp->depth, point_size);
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return scale(ch[ch_index[c]].depth, point_size);
|
||
}
|
||
|
||
int font::get_italic_correction(int c, int point_size)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return scale(wcp->italic_correction, point_size);
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return scale(ch[ch_index[c]].italic_correction, point_size);
|
||
}
|
||
|
||
int font::get_left_italic_correction(int c, int point_size)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return scale(wcp->pre_math_space, point_size);
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return scale(ch[ch_index[c]].pre_math_space, point_size);
|
||
}
|
||
|
||
int font::get_subscript_correction(int c, int point_size)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return scale(wcp->subscript_correction, point_size);
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return scale(ch[ch_index[c]].subscript_correction, point_size);
|
||
}
|
||
@@ -371,12 +476,24 @@
|
||
|
||
int font::get_character_type(int c)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return wcp->type;
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return ch[ch_index[c]].type;
|
||
}
|
||
|
||
int font::get_code(int c)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL) {
|
||
+ return c;
|
||
+ }
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return ch[ch_index[c]].code;
|
||
}
|
||
@@ -393,10 +510,26 @@
|
||
|
||
const char *font::get_special_device_encoding(int c)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL)
|
||
+ return wcp->special_device_coding;
|
||
+#endif
|
||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
return( ch[ch_index[c]].special_device_coding );
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+const char *font::get_subfont_name(int c)
|
||
+{
|
||
+ font_wchar_metric *wcp = get_font_wchar_metric(c);
|
||
+ if (wcp != NULL)
|
||
+ return wcp->subfont_name;
|
||
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
||
+ return ch[ch_index[c]].subfont_name;
|
||
+}
|
||
+#endif
|
||
+
|
||
void font::alloc_ch_index(int index)
|
||
{
|
||
if (nindices == 0) {
|
||
@@ -554,9 +687,11 @@
|
||
return 0;
|
||
}
|
||
|
||
+
|
||
// If the font can't be found, then if not_found is non-NULL, it will be set
|
||
// to 1 otherwise a message will be printed.
|
||
|
||
+
|
||
int font::load(int *not_found)
|
||
{
|
||
char *path;
|
||
@@ -570,7 +705,7 @@
|
||
}
|
||
text_file t(fp, path);
|
||
t.skip_comments = 1;
|
||
- char *p;
|
||
+ char *p = NULL;
|
||
for (;;) {
|
||
if (!t.next()) {
|
||
t.error("missing charset command");
|
||
@@ -681,6 +816,9 @@
|
||
}
|
||
else if (strcmp(command, "charset") == 0) {
|
||
had_charset = 1;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int had_range = 0;
|
||
+#endif
|
||
int last_index = -1;
|
||
for (;;) {
|
||
if (!t.next()) {
|
||
@@ -695,6 +833,11 @@
|
||
command = nm;
|
||
break;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int start_code = 0;
|
||
+ int end_code = 0;
|
||
+ int nrange = sscanf(nm, "u%X..u%X", &start_code, &end_code);
|
||
+#endif
|
||
if (p[0] == '"') {
|
||
if (last_index == -1) {
|
||
t.error("first charset entry is duplicate");
|
||
@@ -711,7 +854,64 @@
|
||
}
|
||
copy_entry(index, last_index);
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ else if (nrange == 2) {
|
||
+ had_range = 1;
|
||
+ font_wchar_metric *wcp = new font_wchar_metric;
|
||
+ wcp->start_code = start_code;
|
||
+ wcp->end_code = end_code;
|
||
+ wcp->height = 0;
|
||
+ wcp->depth = 0;
|
||
+ wcp->pre_math_space = 0;
|
||
+ wcp->italic_correction = 0;
|
||
+ wcp->subscript_correction = 0;
|
||
+ int nparms = sscanf(p, "%d,%d,%d,%d,%d,%d",
|
||
+ &wcp->width, &wcp->height, &wcp->depth,
|
||
+ &wcp->italic_correction,
|
||
+ &wcp->pre_math_space,
|
||
+ &wcp->subscript_correction);
|
||
+ if (nparms < 1) {
|
||
+ t.error("bad width for `%1'", nm);
|
||
+ return 0;
|
||
+ }
|
||
+ p = strtok(0, WS);
|
||
+ if (p == 0) {
|
||
+ t.error("missing character type for `%1'", nm);
|
||
+ return 0;
|
||
+ }
|
||
+ int type;
|
||
+ if (sscanf(p, "%d", &type) != 1) {
|
||
+ t.error("bad character type for `%1'", nm);
|
||
+ return 0;
|
||
+ }
|
||
+ if (type < 0 || type > 255) {
|
||
+ t.error("character type `%1' out of range", type);
|
||
+ return 0;
|
||
+ }
|
||
+ wcp->type = type;
|
||
+
|
||
+ p = strtok(0, WS);
|
||
+ if ((p == 0) || (strcmp(p, "--") == 0)) {
|
||
+ wcp->subfont_name = NULL;
|
||
+ } else {
|
||
+ wcp->subfont_name = new char[strlen(p) + 1];
|
||
+ strcpy(wcp->subfont_name, p);
|
||
+ }
|
||
+
|
||
+ p = strtok(0, WS);
|
||
+ if ((p == NULL) || (strcmp(p, "--") == 0)) {
|
||
+ wcp->special_device_coding = NULL;
|
||
+ } else {
|
||
+ wcp->special_device_coding = new char[strlen(p) + 1];
|
||
+ strcpy(wcp->special_device_coding, p);
|
||
+ }
|
||
+ wcp->next = wch;
|
||
+ wch = wcp;
|
||
+ p = NULL;
|
||
+ }
|
||
+#endif
|
||
else {
|
||
+
|
||
font_char_metric metric;
|
||
metric.height = 0;
|
||
metric.depth = 0;
|
||
@@ -747,6 +947,16 @@
|
||
t.error("missing code for `%1'", nm);
|
||
return 0;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ char *subp = strchr(p, ':');
|
||
+ if (subp) {
|
||
+ *subp++ = '\0';
|
||
+ metric.subfont_name = new char[strlen(subp) + 1];
|
||
+ strcpy(metric.subfont_name, subp);
|
||
+ } else {
|
||
+ metric.subfont_name = NULL;
|
||
+ }
|
||
+#endif
|
||
char *ptr;
|
||
metric.code = (int)strtol(p, &ptr, 0);
|
||
if (metric.code == 0 && ptr == p) {
|
||
@@ -777,7 +987,11 @@
|
||
}
|
||
}
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (!had_range && last_index == -1) {
|
||
+#else
|
||
if (last_index == -1) {
|
||
+#endif
|
||
t.error("I didn't seem to find any characters");
|
||
return 0;
|
||
}
|
||
@@ -811,6 +1025,11 @@
|
||
{ "biggestfont", &font::biggestfont },
|
||
{ "spare2", &font::spare2 },
|
||
{ "sizescale", &font::sizescale }
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ ,
|
||
+ { "lowerwchar", &font::lowerwchar },
|
||
+ { "wcharkern", &font::wcharkern }
|
||
+#endif
|
||
};
|
||
|
||
int font::load_desc()
|
||
@@ -981,6 +1200,67 @@
|
||
tcommand = 1;
|
||
else if (strcmp("use_charnames_in_special", p) == 0)
|
||
use_charnames_in_special = 1;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ else if (strcmp("fontset", p) == 0) {
|
||
+ /* fontset <primary-fontname> <fontname> <code>..<code> [ondemand] */
|
||
+ p = strtok(0, WS);
|
||
+ if (p == NULL) {
|
||
+ t.error("no primary font for fontset");
|
||
+ return 0;
|
||
+ }
|
||
+ char *pfont = NULL;
|
||
+ if (strcmp(p, "-") != 0) {
|
||
+ pfont = new char[strlen(p)+1];
|
||
+ strcpy(pfont, p);
|
||
+ }
|
||
+ p = strtok(0, WS);
|
||
+ if (p == NULL) {
|
||
+ t.error("no fontset font for `%1'",
|
||
+ pfont ? pfont : "-");
|
||
+ return 0;
|
||
+ }
|
||
+ int fontset_font = 0;
|
||
+ for (int i = 0; i < nfonts; i++) {
|
||
+ if (strcmp(p, font_name_table[i]) == 0) {
|
||
+ fontset_font = i;
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+ if (fontset_font == nfonts) {
|
||
+ t.error("fontset font `%1' for font `%2' not defined",
|
||
+ p, pfont ? pfont : "-");
|
||
+ return 0;
|
||
+ }
|
||
+ p = strtok(0, WS);
|
||
+ if (p == NULL) {
|
||
+ t.error("no range for fontset font `%1' for font `%2'",
|
||
+ font_name_table[fontset_font],
|
||
+ pfont ? pfont : "-");
|
||
+ return 0;
|
||
+ }
|
||
+ wchar start_code = 0;
|
||
+ wchar end_code = 0;
|
||
+ int nparms = sscanf(p, "%x..%x", &start_code, &end_code);
|
||
+ if (nparms != 2) {
|
||
+ t.error("invalid range format `%1'", p);
|
||
+ return 0;
|
||
+ }
|
||
+ p = strtok(0, WS);
|
||
+ int on_demand = 0;
|
||
+ if (p != NULL && strcmp(p, "ondemand") == 0) {
|
||
+ on_demand = 1;
|
||
+ }
|
||
+ /* XXX */
|
||
+ fontset_list *fl = new fontset_list;
|
||
+ fl->primary_font_name = pfont;
|
||
+ fl->fontset_font = fontset_font;
|
||
+ fl->start_code = start_code;
|
||
+ fl->end_code = end_code;
|
||
+ fl->on_demand = on_demand;
|
||
+ fl->next = fontsets;
|
||
+ fontsets = fl;
|
||
+ }
|
||
+#endif
|
||
else if (strcmp("charset", p) == 0)
|
||
break;
|
||
else if (unknown_desc_command_handler) {
|
||
@@ -1020,6 +1300,39 @@
|
||
return 1;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+int
|
||
+font::get_fontset_font(const char *fname, wchar wc) {
|
||
+ fontset_list *fl;
|
||
+ int avail_fontno = -1;
|
||
+ wc = wchar_code(wc);
|
||
+ for (fl = fontsets; fl != NULL; fl = fl->next) {
|
||
+ if (fl->primary_font_name == NULL) {
|
||
+ if (fl->start_code <= wc && wc <= fl->end_code) {
|
||
+ avail_fontno = fl->fontset_font;
|
||
+ }
|
||
+ }
|
||
+ else if (fname && strcmp(fl->primary_font_name, fname) == 0) {
|
||
+ if (fl->start_code <= wc && wc <= fl->end_code) {
|
||
+ return fl->fontset_font;
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+ return avail_fontno;
|
||
+}
|
||
+
|
||
+int
|
||
+font::is_on_demand(int fontno) {
|
||
+ fontset_list *fl;
|
||
+ for (fl = fontsets; fl != NULL; fl = fl->next) {
|
||
+ if (fl->fontset_font == fontno) {
|
||
+ return fl->on_demand;
|
||
+ }
|
||
+ }
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
void font::handle_unknown_font_command(const char *, const char *,
|
||
const char *, int)
|
||
{
|
||
--- groff-1.18.1.1.orig/src/libs/libgroff/searchpath.cc
|
||
+++ groff-1.18.1.1/src/libs/libgroff/searchpath.cc
|
||
@@ -19,6 +19,7 @@
|
||
with groff; see the file COPYING. If not, write to the Free Software
|
||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||
|
||
+#include "encoding.h"
|
||
#include "lib.h"
|
||
|
||
#include <stdlib.h>
|
||
--- groff-1.18.1.1.orig/src/libs/libgroff/nametoindex.cc
|
||
+++ groff-1.18.1.1/src/libs/libgroff/nametoindex.cc
|
||
@@ -24,6 +24,7 @@
|
||
#include <ctype.h>
|
||
#include <assert.h>
|
||
#include <stdlib.h>
|
||
+#include "encoding.h" // XXX: ukai
|
||
#include "errarg.h"
|
||
#include "error.h"
|
||
#include "font.h"
|
||
@@ -37,6 +38,9 @@
|
||
character_indexer();
|
||
~character_indexer();
|
||
int ascii_char_index(unsigned char);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int wchar_index(wchar);
|
||
+#endif
|
||
int named_char_index(const char *);
|
||
int numbered_char_index(int);
|
||
private:
|
||
@@ -68,6 +72,13 @@
|
||
return ascii_index[c];
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+int character_indexer::wchar_index(wchar wc)
|
||
+{
|
||
+ return wc; /* XXX: wchar code == index */
|
||
+}
|
||
+#endif
|
||
+
|
||
int character_indexer::numbered_char_index(int n)
|
||
{
|
||
if (n >= 0 && n < NSMALL) {
|
||
@@ -103,6 +114,30 @@
|
||
int font::name_to_index(const char *s)
|
||
{
|
||
assert(s != 0 && s[0] != '\0' && s[0] != ' ');
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ {
|
||
+ int i = 1;
|
||
+ wchar wc = input_encoding->make_wchar(s[0], (const unsigned char *)s, &i);
|
||
+ /* XXX
|
||
+ * if wchar can be represented in single byte (<256),
|
||
+ * it should be the same as char<wc>.
|
||
+ */
|
||
+ if (is_wchar_singlebyte(wc)) {
|
||
+ return indexer.ascii_char_index(wchar_singlebyte(wc));
|
||
+ }
|
||
+ if (is_wchar_code(wc)) {
|
||
+ return indexer.wchar_index(wc);
|
||
+ }
|
||
+ /* XXX: uA1A1 and \xa1a1 are synonyms */
|
||
+ if (s[0] == 'u') {
|
||
+ char *res;
|
||
+ long n = strtol(s + 1, &res, 16);
|
||
+ if (res != s + 1 && *res == '\0') {
|
||
+ return indexer.wchar_index(n);
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+#endif
|
||
if (s[1] == '\0')
|
||
return indexer.ascii_char_index(s[0]);
|
||
/* char128 and \200 are synonyms */
|
||
@@ -115,3 +150,9 @@
|
||
return indexer.named_char_index(s);
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+int font::wchar_index(wchar wc)
|
||
+{
|
||
+ return indexer.wchar_index(wc);
|
||
+}
|
||
+#endif
|
||
--- groff-1.18.1.1.orig/src/libs/libgroff/encoding.cc
|
||
+++ groff-1.18.1.1/src/libs/libgroff/encoding.cc
|
||
@@ -0,0 +1,441 @@
|
||
+// -*- C++ -*-
|
||
+/* Copyright (C) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+This file is part of groff.
|
||
+
|
||
+groff is free software; you can redistribute it and/or modify it under
|
||
+the terms of the GNU General Public License as published by the Free
|
||
+Software Foundation; either version 2, or (at your option) any later
|
||
+version.
|
||
+
|
||
+groff is distributed in the hope that it will be useful, but WITHOUT ANY
|
||
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||
+for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with this program; if not, write to the Free Software
|
||
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||
+
|
||
+#include "encoding.h"
|
||
+#include "device.h"
|
||
+
|
||
+#include <string.h>
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+#include <locale.h>
|
||
+#include <wchar.h>
|
||
+#ifdef HAVE_LANGINFO_CODESET
|
||
+#include <langinfo.h>
|
||
+#else
|
||
+#include <stdlib.h>
|
||
+#endif
|
||
+#endif
|
||
+
|
||
+class ascii8_handler : public encoding_handler {
|
||
+ // encoding handler for 8bit ascii
|
||
+ // no multibyte support
|
||
+public:
|
||
+ ascii8_handler() {}
|
||
+ ~ascii8_handler() {}
|
||
+
|
||
+ const char *name() { return "C"; }; /* ??? */
|
||
+
|
||
+ inline int is_wchar_byte(unsigned char c) { return 0; }
|
||
+ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
|
||
+ return wchar(c0);
|
||
+ }
|
||
+ inline int put_wchar(wchar wc, encoding_ostream& eos) {
|
||
+ eos.putbyte((unsigned char)wchar_code(wc));
|
||
+ return 1;
|
||
+ }
|
||
+ inline int max_wchar_len() { return 1; };
|
||
+
|
||
+};
|
||
+
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+class utf8_handler: public encoding_handler {
|
||
+public:
|
||
+ utf8_handler() { }
|
||
+ ~utf8_handler() { }
|
||
+
|
||
+ const char *name() { return "UTF-8"; };
|
||
+
|
||
+ inline int is_wchar_byte(unsigned char c) {
|
||
+ return (c >= 0x80);
|
||
+ }
|
||
+
|
||
+ /*
|
||
+ 0000 0000-0000 007F 0xxxxxxx
|
||
+ 0000 0080-0000 07FF 110xxxxx 10xxxxxx
|
||
+ 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
|
||
+
|
||
+ 0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||
+ 0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||
+ 0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
|
||
+ */
|
||
+
|
||
+ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
|
||
+ wchar wc = 0;
|
||
+ int count = 0;
|
||
+ if (! is_wchar_byte(c0)) {
|
||
+ return c0;
|
||
+ }
|
||
+ if ((c0 & 0xFC) == 0xFC) {
|
||
+ wc = c0 & 0x01;
|
||
+ count = 5;
|
||
+ } else if ((c0 & 0xF8) == 0xF8) {
|
||
+ wc = c0 & 0x03;
|
||
+ count = 4;
|
||
+ } else if ((c0 & 0xF0) == 0xF0) {
|
||
+ wc = c0 & 0x07;
|
||
+ count = 3;
|
||
+ } else if ((c0 & 0xE0) == 0xE0) {
|
||
+ wc = c0 & 0x0F;
|
||
+ count = 2;
|
||
+ } else if ((c0 & 0xC0) == 0xC0) {
|
||
+ wc = c0 & 0x1F;
|
||
+ count = 1;
|
||
+ }
|
||
+ for (; count > 0; count--) {
|
||
+ wc <<= 6;
|
||
+ int c1 = eis.getbyte();
|
||
+ if (! is_wchar_byte(c1)) {
|
||
+ /* illegal utf8 sequence? */
|
||
+ }
|
||
+ wc |= (c1 & 0x3F);
|
||
+ }
|
||
+ return -wc; // XXX: negative
|
||
+ }
|
||
+
|
||
+ inline int put_wchar(wchar wc, encoding_ostream& eos) {
|
||
+ int count = 0;
|
||
+ if (! is_wchar_code(wc)) {
|
||
+ eos.putbyte(wc);
|
||
+ return 1;
|
||
+ }
|
||
+ wc = -wc; // XXX: negative -> character code
|
||
+
|
||
+ if (wc < 0x800) {
|
||
+ count = 1; eos.putbyte((wc >> 6) | 0xC0);
|
||
+ } else if (wc < 0x10000) {
|
||
+ count = 2; eos.putbyte((wc >> 12) | 0xE0);
|
||
+ } else if (wc < 0x200000) {
|
||
+ count = 3; eos.putbyte((wc >> 18) | 0xF0);
|
||
+ } else if (wc < 0x4000000) {
|
||
+ count = 4; eos.putbyte((wc >> 24) | 0xf8);
|
||
+ } else if (wc <= 0x7fffffff) {
|
||
+ count = 5; eos.putbyte((wc >> 30) | 0xFC);
|
||
+ }
|
||
+ for (int i = 0; i < count; i++) {
|
||
+ eos.putbyte(((wc >> 6 * (count - i - 1)) & 0x3f) | 0x80);
|
||
+ }
|
||
+ return count;
|
||
+ }
|
||
+ inline int max_wchar_len() { return 6; }; /* XXX 3?*/
|
||
+
|
||
+};
|
||
+
|
||
+#define USE_ICONV
|
||
+#ifdef USE_ICONV
|
||
+#include <iconv.h>
|
||
+#include <errno.h>
|
||
+
|
||
+class iconv_handler : public encoding_handler {
|
||
+private:
|
||
+ iconv_t icd, ocd;
|
||
+ const char *encoding_name;
|
||
+ static iconv_handler *ih_header;
|
||
+
|
||
+public:
|
||
+ iconv_handler *next;
|
||
+
|
||
+ static iconv_handler *new_iconv_handler(const char *ename) {
|
||
+ iconv_handler *ip;
|
||
+ // if already created, use it.
|
||
+ for (ip = ih_header; ip != NULL; ip = ip->next) {
|
||
+ if (strcmp(ip->name(), ename) == 0) {
|
||
+ return ip;
|
||
+ }
|
||
+ }
|
||
+ // not found, create new one.
|
||
+ ip = new iconv_handler(ename);
|
||
+ ip->next = ih_header;
|
||
+ ih_header = ip;
|
||
+ return ip;
|
||
+ }
|
||
+ iconv_handler(const char *ename) : encoding_name(ename) {
|
||
+ // internal code is UCS-2BE
|
||
+ icd = iconv_open("UCS-2BE", encoding_name);
|
||
+ ocd = iconv_open(encoding_name, "UCS-2BE");
|
||
+ };
|
||
+ ~iconv_handler() {};
|
||
+
|
||
+ const char *name() { return encoding_name; };
|
||
+
|
||
+ inline int is_wchar_byte(unsigned char c) {
|
||
+ return (c >= 0x80); /* ??? */
|
||
+ }
|
||
+
|
||
+ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
|
||
+ wchar wc = 0;
|
||
+ char inbuf[8], outbuf[8];
|
||
+ char *inp, *outp;
|
||
+ size_t inbytesleft, outbytesleft;
|
||
+ int i = 0;
|
||
+
|
||
+ if (! is_wchar_byte(c0)) {
|
||
+ return c0;
|
||
+ }
|
||
+ for (inbuf[i++] = c0; ;inbuf[i++] = eis.getbyte()) {
|
||
+ inbytesleft = i;
|
||
+ outbytesleft = sizeof(outbuf);
|
||
+ inp = inbuf;
|
||
+ outp = outbuf;
|
||
+ size_t r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
|
||
+ if (r == (size_t)-1) {
|
||
+ if (errno == EILSEQ) {
|
||
+ /* illegal sequence? */
|
||
+ return '?';
|
||
+ } else if (errno == EINVAL) {
|
||
+ /* incomplete sequence? */
|
||
+ continue;
|
||
+ } else if (errno == E2BIG) {
|
||
+ /* no room to output? */
|
||
+ return '?';
|
||
+ }
|
||
+ }
|
||
+ /* ok */
|
||
+ /* UCS-2 is 2 bytes */
|
||
+ wc = ((outbuf[0] & 0x0ff) << 8) | (outbuf[1] & 0x0ff);
|
||
+ return -wc; // XXX: negative
|
||
+ }
|
||
+ }
|
||
+
|
||
+
|
||
+ inline int put_wchar(wchar wc, encoding_ostream& eos) {
|
||
+ char inbuf[4], outbuf[4];
|
||
+ char *inp, *outp;
|
||
+ size_t inbytesleft, outbytesleft;
|
||
+
|
||
+ if (!is_wchar_code(wc)) {
|
||
+ eos.putbyte(wc & 0x0ff);
|
||
+ return 1;
|
||
+ }
|
||
+ wc = -wc; // XXX: negative -> character code
|
||
+
|
||
+ inbuf[0] = (wc >> 8) & 0x0ff;
|
||
+ inbuf[1] = (wc >> 0) & 0x0ff;
|
||
+ inbuf[2] = 0;
|
||
+ inbytesleft = 2;
|
||
+ outbytesleft = 4;
|
||
+ inp = inbuf;
|
||
+ outp = outbuf;
|
||
+ size_t r = iconv(ocd, &inp, &inbytesleft, &outp, &outbytesleft);
|
||
+ if (r == (size_t)-1) {
|
||
+ if (errno == EILSEQ) {
|
||
+ /* illegal sequence? */;
|
||
+ } else if (errno == EINVAL) {
|
||
+ /* incomplete sequence? */;
|
||
+ } else if (errno == E2BIG) {
|
||
+ /* no room to output? */;
|
||
+ }
|
||
+ eos.putbyte('?');
|
||
+ return 1;
|
||
+ }
|
||
+ char *op = outbuf;
|
||
+ int n = 0;
|
||
+ for (; op < outp; op++, n++) {
|
||
+ eos.putbyte(*op & 0x0ff);
|
||
+ }
|
||
+ return outp - outbuf;
|
||
+ }
|
||
+ inline int max_wchar_len() { return 6; }; /* XXX */
|
||
+
|
||
+};
|
||
+#else
|
||
+class euc_handler : public encoding_handler {
|
||
+ static const int WCTABLE_OFFSET = 0xa1;
|
||
+ static const int WCTABLE_SIZE = 94;
|
||
+ static const int EUCMASK = 0x8080;
|
||
+
|
||
+public:
|
||
+ euc_handler() {}
|
||
+ ~euc_handler() {};
|
||
+
|
||
+ const char *name() { return "EUC-JP"; };
|
||
+
|
||
+ inline int is_wchar_byte(unsigned char c) {
|
||
+ return (c >= 0xa1 && c <= 0xfe);
|
||
+ }
|
||
+
|
||
+ inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
|
||
+ wchar wc;
|
||
+ if (! is_wchar_byte(c0)) {
|
||
+ return c0;
|
||
+ }
|
||
+ int c1 = eis.peekbyte();
|
||
+ if (! is_wchar_byte(c1)) {
|
||
+ eis.ungetbyte(c1);
|
||
+ return c0;
|
||
+ }
|
||
+ c1 = eis.getbyte();
|
||
+ wc = (c0 & 0xff) << 8;
|
||
+ wc |= (c1 & 0xff);
|
||
+
|
||
+ if (wc == 0xa1a1)
|
||
+ return ' ';
|
||
+ return -wc;
|
||
+ }
|
||
+
|
||
+ inline int put_wchar(wchar wc, encoding_ostream& eos) {
|
||
+ if (is_wchar_code(wc)) {
|
||
+ wc = -wc;
|
||
+ eos.putbyte((wc >> 8) & 0x0ff);
|
||
+ eos.putbyte((wc >> 0) & 0x0ff);
|
||
+ return 2;
|
||
+ } else {
|
||
+ eos.putbyte(wc & 0x0ff);
|
||
+ return 1;
|
||
+ }
|
||
+ }
|
||
+ inline int max_wchar_len() { return 2; }; /* XXX */
|
||
+};
|
||
+#endif /* USE_ICONV */
|
||
+#endif
|
||
+
|
||
+static ascii8_handler ascii8;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+static utf8_handler utf8;
|
||
+#ifdef USE_ICONV
|
||
+iconv_handler *iconv_handler::ih_header = NULL;
|
||
+#else
|
||
+static euc_handler eucjp;
|
||
+#endif
|
||
+#endif
|
||
+
|
||
+encoding_handler *input_encoding = &ascii8;
|
||
+encoding_handler *output_encoding = &ascii8;
|
||
+
|
||
+static void
|
||
+new_encoding_handler(encoding_handler **eptr, const char *encoding_name)
|
||
+{
|
||
+ if (!encoding_name) {
|
||
+ *eptr = &ascii8;
|
||
+ return;
|
||
+ }
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (strcmp(encoding_name, "UTF-8") == 0) {
|
||
+ *eptr = &utf8;
|
||
+ return;
|
||
+ }
|
||
+#ifdef USE_ICONV
|
||
+ if (strcmp(encoding_name, "C") != 0) {
|
||
+ *eptr = iconv_handler::new_iconv_handler(encoding_name);
|
||
+ return;
|
||
+ }
|
||
+#else
|
||
+ // printf("encoding request: [%s]\n", encoding_name);
|
||
+ if (strcmp(encoding_name, "EUC-JP") == 0) {
|
||
+ // printf("encoding: [EUC-JP]\n");
|
||
+ *eptr = &eucjp;
|
||
+ return;
|
||
+ }
|
||
+#endif
|
||
+#endif
|
||
+ // default
|
||
+ *eptr = &ascii8;
|
||
+ return;
|
||
+}
|
||
+
|
||
+encoding_handler *
|
||
+select_input_encoding_handler(const char *encoding_name)
|
||
+{
|
||
+ new_encoding_handler(&input_encoding, encoding_name);
|
||
+ return input_encoding;
|
||
+}
|
||
+
|
||
+encoding_handler *
|
||
+select_output_encoding_handler(const char *encoding_name)
|
||
+{
|
||
+ new_encoding_handler(&output_encoding, encoding_name);
|
||
+ return output_encoding;
|
||
+}
|
||
+
|
||
+void
|
||
+init_encoding_handler()
|
||
+{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ const char *locale, *charset;
|
||
+ // groff 1 defines ISO-8859-1 as the input encoding, so this is required
|
||
+ // for compatibility. groff 2 will define UTF-8 (or possibly officially
|
||
+ // allow it to be switchable?)
|
||
+ select_input_encoding_handler("ISO-8859-1");
|
||
+ select_output_encoding_handler("C");
|
||
+
|
||
+ locale = setlocale(LC_ALL, "");
|
||
+ if (locale == NULL ||
|
||
+ strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
|
||
+ return;
|
||
+ }
|
||
+ /* check LC_CTYPE is C or POSIX */
|
||
+ locale = setlocale(LC_CTYPE, NULL);
|
||
+ if (strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
|
||
+ return;
|
||
+ }
|
||
+ /* otherwise */
|
||
+#if HAVE_LANGINFO_CODESET
|
||
+ charset = nl_langinfo(CODESET);
|
||
+#else
|
||
+ charset = strchr(locale, '.');
|
||
+ if (charset)
|
||
+ ++charset;
|
||
+ else
|
||
+ charset = "";
|
||
+#endif
|
||
+ if (strncmp(locale, "ja", 2) == 0 || strncmp(locale, "zh", 2) == 0 ||
|
||
+ (strncmp(locale, "ko", 2) == 0 && strcmp(charset, "UTF-8") == 0)) {
|
||
+ select_input_encoding_handler(charset);
|
||
+ select_output_encoding_handler(charset);
|
||
+ } else if ((!device || strcmp(device, "ascii8") == 0)) {
|
||
+ select_input_encoding_handler(NULL);
|
||
+ select_output_encoding_handler(NULL);
|
||
+ }
|
||
+#endif
|
||
+ return;
|
||
+}
|
||
+
|
||
+int
|
||
+is_wchar_code(wchar wc)
|
||
+{
|
||
+ return (wc < 0);
|
||
+}
|
||
+
|
||
+int
|
||
+is_wchar_singlebyte(wchar wc)
|
||
+{
|
||
+ return ((-256 < wc) && (wc < 0));
|
||
+}
|
||
+
|
||
+unsigned char
|
||
+wchar_singlebyte(wchar wc)
|
||
+{
|
||
+ if (wc >= 0)
|
||
+ return (unsigned char)wc;
|
||
+ else
|
||
+ return (unsigned char)-wc;
|
||
+}
|
||
+
|
||
+int
|
||
+wchar_code(wchar wc)
|
||
+{
|
||
+ if (wc >= 0)
|
||
+ return wc;
|
||
+ else
|
||
+ return -wc;
|
||
+}
|
||
+
|
||
+int
|
||
+make_wchar(int w)
|
||
+{
|
||
+ return -w;
|
||
+}
|
||
--- groff-1.18.1.1.orig/src/libs/libgroff/Makefile.sub
|
||
+++ groff-1.18.1.1/src/libs/libgroff/Makefile.sub
|
||
@@ -6,6 +6,7 @@
|
||
color.$(OBJEXT) \
|
||
cset.$(OBJEXT) \
|
||
device.$(OBJEXT) \
|
||
+ encoding.$(OBJEXT) \
|
||
errarg.$(OBJEXT) \
|
||
error.$(OBJEXT) \
|
||
fatal.$(OBJEXT) \
|
||
@@ -45,6 +46,7 @@
|
||
$(srcdir)/color.cc \
|
||
$(srcdir)/cset.cc \
|
||
$(srcdir)/device.cc \
|
||
+ $(srcdir)/encoding.cc \
|
||
$(srcdir)/errarg.cc \
|
||
$(srcdir)/error.cc \
|
||
$(srcdir)/fatal.cc \
|
||
--- groff-1.18.1.1.orig/src/libs/libgroff/tmpfile.cc
|
||
+++ groff-1.18.1.1/src/libs/libgroff/tmpfile.cc
|
||
@@ -24,6 +24,7 @@
|
||
#include <errno.h>
|
||
#include <stdlib.h>
|
||
|
||
+#include "encoding.h"
|
||
#include "posix.h"
|
||
#include "errarg.h"
|
||
#include "error.h"
|
||
--- groff-1.18.1.1.orig/src/utils/tfmtodit/tfmtodit.cc
|
||
+++ groff-1.18.1.1/src/utils/tfmtodit/tfmtodit.cc
|
||
@@ -650,7 +650,7 @@
|
||
gives the groff name of the character, `i' gives its index in
|
||
the encoding, which is filled in later (-1 if it does not appear). */
|
||
|
||
-struct {
|
||
+struct S {
|
||
const char *ch;
|
||
int i;
|
||
} lig_chars[] = {
|
||
@@ -670,7 +670,7 @@
|
||
|
||
// Each possible ligature appears in this table.
|
||
|
||
-struct {
|
||
+struct S2 {
|
||
unsigned char c1, c2, res;
|
||
const char *ch;
|
||
} lig_table[] = {
|
||
--- groff-1.18.1.1.orig/src/preproc/eqn/eqn.y
|
||
+++ groff-1.18.1.1/src/preproc/eqn/eqn.y
|
||
@@ -21,6 +21,7 @@
|
||
#include <string.h>
|
||
#include <stdlib.h>
|
||
|
||
+#include "encoding.h" /* XXX */
|
||
#include "lib.h"
|
||
#include "box.h"
|
||
extern int non_empty_flag;
|
||
--- groff-1.18.1.1.orig/src/preproc/eqn/lex.cc
|
||
+++ groff-1.18.1.1/src/preproc/eqn/lex.cc
|
||
@@ -23,6 +23,7 @@
|
||
#include "eqn_tab.h"
|
||
#include "stringclass.h"
|
||
#include "ptable.h"
|
||
+#include "encoding.h"
|
||
|
||
struct definition {
|
||
char is_macro;
|
||
@@ -375,6 +376,11 @@
|
||
lex_error("invalid input character code %1", c);
|
||
else {
|
||
line += char(c);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (input_encoding->is_wchar_byte(c)) {
|
||
+ line += char(getc(fp));
|
||
+ }
|
||
+#endif
|
||
if (c == '\n')
|
||
break;
|
||
}
|
||
--- groff-1.18.1.1.orig/src/preproc/eqn/main.cc
|
||
+++ groff-1.18.1.1/src/preproc/eqn/main.cc
|
||
@@ -258,6 +258,7 @@
|
||
program_name = argv[0];
|
||
static char stderr_buf[BUFSIZ];
|
||
setbuf(stderr, stderr_buf);
|
||
+ init_encoding_handler();
|
||
int opt;
|
||
int load_startup_file = 1;
|
||
static const struct option long_options[] = {
|
||
--- groff-1.18.1.1.orig/src/preproc/eqn/text.cc
|
||
+++ groff-1.18.1.1/src/preproc/eqn/text.cc
|
||
@@ -21,13 +21,20 @@
|
||
#include "eqn.h"
|
||
#include "pbox.h"
|
||
#include "ptable.h"
|
||
+#include "encoding.h"
|
||
|
||
class char_box : public simple_box {
|
||
unsigned char c;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar wc;
|
||
+#endif
|
||
char next_is_italic;
|
||
char prev_is_italic;
|
||
public:
|
||
char_box(unsigned char);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ char_box(unsigned char, wchar);
|
||
+#endif
|
||
void debug_print();
|
||
void output();
|
||
int is_char();
|
||
@@ -165,11 +172,22 @@
|
||
}
|
||
|
||
char_box::char_box(unsigned char cc)
|
||
-: c(cc), next_is_italic(0), prev_is_italic(0)
|
||
+: c(cc),
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wc(cc),
|
||
+#endif
|
||
+ next_is_italic(0), prev_is_italic(0)
|
||
{
|
||
spacing_type = char_table[c].spacing_type;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+char_box::char_box(unsigned char cc, wchar wc)
|
||
+: c(cc), wc(wc), next_is_italic(0), prev_is_italic(0)
|
||
+{
|
||
+}
|
||
+#endif
|
||
+
|
||
void char_box::hint(unsigned flags)
|
||
{
|
||
if (flags & HINT_PREV_IS_ITALIC)
|
||
@@ -188,7 +206,11 @@
|
||
if (c == '\\')
|
||
fputs("\\e", stdout);
|
||
else
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ output_encoding->put_wchar(wc, stdout);
|
||
+#else
|
||
putchar(c);
|
||
+#endif
|
||
if (!next_is_italic)
|
||
fputs("\\/", stdout);
|
||
else
|
||
@@ -497,6 +519,14 @@
|
||
break;
|
||
default:
|
||
normal_char:
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (input_encoding->is_wchar_byte(c)) {
|
||
+ int i = 1;
|
||
+ wchar wc = input_encoding->make_wchar(c, (unsigned char *)s, &i);
|
||
+ b = new char_box('A', wc); // char_info of wc is same the 'A'.
|
||
+ s += i;
|
||
+ } else
|
||
+#endif
|
||
b = new char_box(c);
|
||
break;
|
||
}
|
||
--- groff-1.18.1.1.orig/src/preproc/eqn/box.cc
|
||
+++ groff-1.18.1.1/src/preproc/eqn/box.cc
|
||
@@ -80,7 +80,7 @@
|
||
|
||
int nroff = 0; // should we grok ndefine or tdefine?
|
||
|
||
-struct {
|
||
+struct S {
|
||
const char *name;
|
||
int *ptr;
|
||
} param_table[] = {
|
||
--- groff-1.18.1.1.orig/src/preproc/html/pre-html.cc
|
||
+++ groff-1.18.1.1/src/preproc/html/pre-html.cc
|
||
@@ -63,6 +63,10 @@
|
||
#define DEFAULT_IMAGE_RES 100 // number of pixels per inch resolution
|
||
#define IMAGE_BOARDER_PIXELS 0
|
||
#define INLINE_LEADER_CHAR '\\'
|
||
+#define A4_LENGTH 841890 // taken from devps/Makefile.sub
|
||
+#define LETTER_LENGTH 792000 // taken from devps/Makefile.sub
|
||
+#define A4_OFFSET 0
|
||
+#define LETTER_OFFSET 50 // 50/72 of an inch
|
||
|
||
#define TRANSPARENT "-background white -transparent white"
|
||
#define MIN_ALPHA_BITS 0
|
||
@@ -104,6 +108,7 @@
|
||
static char *macroset_template= NULL; // image template passed to troff by -D
|
||
static int troff_arg = 0; // troff arg index
|
||
static char *image_dir = NULL; // user specified image directory
|
||
+static char *gsPaper = NULL; // the paper size that gs must use
|
||
static int textAlphaBits = MAX_ALPHA_BITS;
|
||
static int graphicAlphaBits = MAX_ALPHA_BITS;
|
||
static char *antiAlias = NULL; // antialias arguments we pass to gs.
|
||
@@ -211,6 +216,54 @@
|
||
}
|
||
|
||
/*
|
||
+ * get_papersize - returns an integer determining the paper length from
|
||
+ * devps/DESC
|
||
+ */
|
||
+
|
||
+static int get_papersize (void)
|
||
+{
|
||
+ char *pathp;
|
||
+ FILE *f;
|
||
+ int res;
|
||
+ f = font_path.open_file("devps/DESC", &pathp);
|
||
+ if (f == 0)
|
||
+ fatal("can't open devps/DESC");
|
||
+ while (get_line(f)) {
|
||
+ int n = sscanf(linebuf, "paperlength %d", &res);
|
||
+ if (n >= 1) {
|
||
+ fclose(f);
|
||
+ return res;
|
||
+ }
|
||
+ if (!strncmp(linebuf, "papersize", 9)) {
|
||
+ double length;
|
||
+ char *p = linebuf + 9;
|
||
+ while (*p == ' ' || *p == '\t')
|
||
+ p++;
|
||
+ for (p = strtok(p, " \t"); p; p = strtok(0, " \t")) {
|
||
+ if (font::scan_papersize(p, 0, &length, 0)) {
|
||
+ fclose(f);
|
||
+ return int(length * postscriptRes + 0.5);
|
||
+ }
|
||
+ }
|
||
+ fatal("bad argument to `papersize' keyword in devps/DESC");
|
||
+ }
|
||
+ }
|
||
+ fatal("can't find `papersize' or `paperlength' keyword in devps/DESC");
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/*
|
||
+ * determine_vertical_offset - works out the default vertical offset from
|
||
+ * the page length
|
||
+ */
|
||
+
|
||
+static void determine_vertical_offset (void)
|
||
+{
|
||
+ vertical_offset = ((A4_LENGTH-get_papersize())*72)/postscriptRes;
|
||
+ gsPaper = "-sPAPERSIZE=a4";
|
||
+}
|
||
+
|
||
+/*
|
||
* html_system - a wrapper for system()
|
||
*/
|
||
|
||
@@ -1469,6 +1522,7 @@
|
||
int ok=1;
|
||
|
||
postscriptRes = get_resolution();
|
||
+ determine_vertical_offset();
|
||
i = scanArguments(argc, argv);
|
||
setupAntiAlias();
|
||
checkImageDir();
|
||
--- groff-1.18.1.1.orig/src/preproc/grn/hdb.cc
|
||
+++ groff-1.18.1.1/src/preproc/grn/hdb.cc
|
||
@@ -115,7 +115,6 @@
|
||
type = DBGetType(string); /* interpret element type */
|
||
if (type < 0) { /* no more data */
|
||
done = TRUE;
|
||
- (void) fclose(file);
|
||
} else {
|
||
#ifdef UW_FASTSCAN
|
||
(void) xscanf(file, &x, &y); /* always one point */
|
||
--- groff-1.18.1.1.orig/src/preproc/refer/command.cc
|
||
+++ groff-1.18.1.1/src/preproc/refer/command.cc
|
||
@@ -632,7 +632,7 @@
|
||
? means that the previous argument is optional, * means that the
|
||
previous argument can occur any number of times. */
|
||
|
||
-struct {
|
||
+struct S {
|
||
const char *name;
|
||
command_t func;
|
||
const char *arg_types;
|
||
--- groff-1.18.1.1.orig/src/devices/grotty/grotty.man
|
||
+++ groff-1.18.1.1/src/devices/grotty/grotty.man
|
||
@@ -50,7 +50,9 @@
|
||
command
|
||
with a
|
||
.BR \-Tascii ,
|
||
-.B \-Tlatin1
|
||
+.BR \-Tascii8 ,
|
||
+.BR \-Tlatin1 ,
|
||
+.B \-Tnippon
|
||
or
|
||
.B \-Tutf8
|
||
option on ASCII based systems, and with
|
||
@@ -235,8 +237,10 @@
|
||
.I name
|
||
is the name of the device, usually
|
||
.BR ascii ,
|
||
+.BR ascii8 ,
|
||
.BR latin1 ,
|
||
.BR utf8 ,
|
||
+.B nippon
|
||
or
|
||
.BR cp1047 .
|
||
.TP
|
||
@@ -315,10 +319,20 @@
|
||
device.
|
||
.
|
||
.TP
|
||
+.B @FONTDIR@/devascii8/DESC
|
||
+Device description file for
|
||
+.B ascii8
|
||
+device.
|
||
+.TP
|
||
.B @FONTDIR@/devlatin1/DESC
|
||
Device description file for
|
||
.B latin1
|
||
device.
|
||
+.TP
|
||
+.B @FONTDIR@/devnippon/DESC
|
||
+Device description file for
|
||
+.B nippon
|
||
+device.
|
||
.
|
||
.TP
|
||
.BI @FONTDIR@/devlatin1/ F
|
||
--- groff-1.18.1.1.orig/src/devices/grotty/tty.cc
|
||
+++ groff-1.18.1.1/src/devices/grotty/tty.cc
|
||
@@ -20,6 +20,7 @@
|
||
|
||
#include "driver.h"
|
||
#include "device.h"
|
||
+#include "encoding.h"
|
||
|
||
extern "C" const char *Version_string;
|
||
|
||
@@ -51,8 +52,18 @@
|
||
HDRAW_MODE = 0x08,
|
||
CU_MODE = 0x10,
|
||
COLOR_CHANGE = 0x20
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ , WCHAR_MODE = 0x100
|
||
+#endif
|
||
};
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+# ifdef putchar
|
||
+# undef putchar
|
||
+# endif
|
||
+#define putchar(wc) output_encoding->put_wchar((wc), stdout)
|
||
+#endif
|
||
+
|
||
// Mode to use for bold-underlining.
|
||
static unsigned char bold_underline_mode = BOLD_MODE|UNDERLINE_MODE;
|
||
|
||
@@ -89,6 +100,7 @@
|
||
static tty_font *load_tty_font(const char *);
|
||
};
|
||
|
||
+
|
||
tty_font *tty_font::load_tty_font(const char *s)
|
||
{
|
||
tty_font *f = new tty_font(s);
|
||
@@ -98,8 +110,26 @@
|
||
}
|
||
const char *num = f->get_internal_name();
|
||
long n;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (num != 0) {
|
||
+ n = strtol(num, 0, 0);
|
||
+ switch (n) {
|
||
+ case 1:
|
||
+ f->mode = int(UNDERLINE_MODE);
|
||
+ break;
|
||
+ case 2:
|
||
+ case 5:
|
||
+ f->mode = int(BOLD_MODE);
|
||
+ break;
|
||
+ case 3:
|
||
+ f->mode = int(BOLD_MODE|UNDERLINE_MODE);
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+#else
|
||
if (num != 0 && (n = strtol(num, 0, 0)) != 0)
|
||
f->mode = int(n & (BOLD_MODE|UNDERLINE_MODE));
|
||
+#endif
|
||
if (!underline_flag)
|
||
f->mode &= ~UNDERLINE_MODE;
|
||
if (!bold_flag)
|
||
@@ -135,6 +165,9 @@
|
||
short hpos;
|
||
unsigned int code;
|
||
unsigned char mode;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ short cols;
|
||
+#endif
|
||
unsigned char back_color_idx;
|
||
unsigned char fore_color_idx;
|
||
void *operator new(size_t);
|
||
@@ -184,7 +217,7 @@
|
||
void make_underline();
|
||
void make_bold(unsigned int);
|
||
unsigned char color_to_idx(color *col);
|
||
- void add_char(unsigned int, int, int, color *, color *, unsigned char);
|
||
+ void add_char(unsigned int, int, int, color *, color *, font *, unsigned char);
|
||
public:
|
||
tty_printer(const char *device);
|
||
~tty_printer();
|
||
@@ -193,7 +226,7 @@
|
||
void special(char *arg, const environment *env, char type);
|
||
void change_color(const environment *env);
|
||
void change_fill_color(const environment *env);
|
||
- void put_char(unsigned int);
|
||
+ int put_char(unsigned int);
|
||
void put_color(unsigned char, int);
|
||
void begin_page(int) { }
|
||
void end_page(int page_length);
|
||
@@ -203,6 +236,10 @@
|
||
tty_printer::tty_printer(const char *device) : cached_v(0)
|
||
{
|
||
is_utf8 = !strcmp(device, "utf8");
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (is_utf8)
|
||
+ select_output_encoding_handler("UTF-8");
|
||
+#endif
|
||
tty_colors[0].set_rgb(0, // black
|
||
0,
|
||
0);
|
||
@@ -242,8 +279,18 @@
|
||
void tty_printer::make_underline()
|
||
{
|
||
if (old_drawing_scheme) {
|
||
+#if 0 /* def ENABLE_MULTIBYTE XXX: not necessary? */
|
||
+ if ((p->mode & WCHAR_MODE)) {
|
||
+ putchar('_'); putchar('_');
|
||
+ putchar('\b'); putchar('\b');
|
||
+ } else {
|
||
+ putchar('_');
|
||
+ putchar('\b');
|
||
+ }
|
||
+#else
|
||
putchar('_');
|
||
putchar('\b');
|
||
+#endif
|
||
}
|
||
else {
|
||
if (!is_underline) {
|
||
@@ -285,17 +332,25 @@
|
||
void tty_printer::set_char(int i, font *f, const environment *env,
|
||
int w, const char *name)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (is_wchar_code(i)) {
|
||
+ add_char(wchar_code(i), env->hpos, env->vpos, env->col, env->fill,
|
||
+ f, ((tty_font *)f)->get_mode());
|
||
+ return;
|
||
+ }
|
||
+#endif
|
||
if (w != font::hor)
|
||
fatal("width of character not equal to horizontal resolution");
|
||
add_char(f->get_code(i),
|
||
env->hpos, env->vpos,
|
||
env->col, env->fill,
|
||
- ((tty_font *)f)->get_mode());
|
||
+ f, ((tty_font *)f)->get_mode());
|
||
}
|
||
|
||
void tty_printer::add_char(unsigned int c,
|
||
int h, int v,
|
||
color *fore, color *back,
|
||
+ font *curfont,
|
||
unsigned char mode)
|
||
{
|
||
#if 0
|
||
@@ -338,6 +393,16 @@
|
||
g->code = c;
|
||
g->fore_color_idx = color_to_idx(fore);
|
||
g->back_color_idx = color_to_idx(back);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (is_wchar_code(c))
|
||
+ mode |= WCHAR_MODE;
|
||
+ if (curfont && curfont->contains(c)) {
|
||
+ int gw0 = curfont->get_space_width(font::unitwidth);
|
||
+ int gw = curfont->get_width(c, font::unitwidth);
|
||
+ g->cols = gw/gw0;
|
||
+ } else
|
||
+ g->cols = 1; /* XXX */
|
||
+#endif
|
||
g->mode = mode;
|
||
|
||
// The list will be reversed later. After reversal, it must be in
|
||
@@ -357,7 +422,7 @@
|
||
void tty_printer::special(char *arg, const environment *env, char type)
|
||
{
|
||
if (type == 'u') {
|
||
- add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, CU_MODE);
|
||
+ add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), CU_MODE);
|
||
return;
|
||
}
|
||
if (type != 'p')
|
||
@@ -395,12 +460,12 @@
|
||
|
||
void tty_printer::change_color(const environment *env)
|
||
{
|
||
- add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
|
||
+ add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
|
||
}
|
||
|
||
void tty_printer::change_fill_color(const environment *env)
|
||
{
|
||
- add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
|
||
+ add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
|
||
}
|
||
|
||
void tty_printer::draw(int code, int *p, int np, const environment *env)
|
||
@@ -420,7 +485,7 @@
|
||
len = -len;
|
||
}
|
||
while (len >= 0) {
|
||
- add_char('|', env->hpos, v, env->col, env->fill, VDRAW_MODE);
|
||
+ add_char('|', env->hpos, v, env->col, env->fill, get_font_from_index(env->fontno), VDRAW_MODE);
|
||
len -= font::vert;
|
||
v += font::vert;
|
||
}
|
||
@@ -434,18 +499,24 @@
|
||
len = -len;
|
||
}
|
||
while (len >= 0) {
|
||
- add_char('-', h, env->vpos, env->col, env->fill, HDRAW_MODE);
|
||
+ add_char('-', h, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), HDRAW_MODE);
|
||
len -= font::hor;
|
||
h += font::hor;
|
||
}
|
||
}
|
||
}
|
||
|
||
-void tty_printer::put_char(unsigned int wc)
|
||
+int tty_printer::put_char(unsigned int wc)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (wc >= 0x80) {
|
||
+ return output_encoding->put_wchar(make_wchar(wc), stdout);
|
||
+ }
|
||
+#else
|
||
if (is_utf8 && wc >= 0x80) {
|
||
char buf[6 + 1];
|
||
int count;
|
||
+ int len;
|
||
char *p = buf;
|
||
if (wc < 0x800)
|
||
count = 1, *p = (unsigned char)((wc >> 6) | 0xc0);
|
||
@@ -458,14 +529,18 @@
|
||
else if (wc <= 0x7fffffff)
|
||
count = 5, *p = (unsigned char)((wc >> 30) | 0xfC);
|
||
else
|
||
- return;
|
||
+ return 0;
|
||
+ len = count;
|
||
do *++p = (unsigned char)(((wc >> (6 * --count)) & 0x3f) | 0x80);
|
||
while (count > 0);
|
||
*++p = '\0';
|
||
putstring(buf);
|
||
+ return len;
|
||
}
|
||
+#endif
|
||
else
|
||
putchar(wc);
|
||
+ return 1;
|
||
}
|
||
|
||
void tty_printer::put_color(unsigned char color_index, int back)
|
||
@@ -629,7 +704,11 @@
|
||
}
|
||
}
|
||
put_char(p->code);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ hpos += p->cols;
|
||
+#else
|
||
hpos++;
|
||
+#endif
|
||
}
|
||
if (!old_drawing_scheme
|
||
&& (is_bold || is_underline
|
||
@@ -667,6 +746,7 @@
|
||
if (getenv("GROFF_NO_SGR"))
|
||
old_drawing_scheme = 1;
|
||
setbuf(stderr, stderr_buf);
|
||
+ init_encoding_handler();
|
||
int c;
|
||
static const struct option long_options[] = {
|
||
{ "help", no_argument, 0, CHAR_MAX + 1 },
|
||
--- groff-1.18.1.1.orig/src/devices/grops/ps.cc
|
||
+++ groff-1.18.1.1/src/devices/grops/ps.cc
|
||
@@ -24,6 +24,7 @@
|
||
#include "cset.h"
|
||
#include "nonposix.h"
|
||
#include "paper.h"
|
||
+#include "encoding.h"
|
||
|
||
#include "ps.h"
|
||
#include <time.h>
|
||
@@ -193,12 +194,23 @@
|
||
return *this;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ps_output &ps_output::put_string(const wchar *s, int n)
|
||
+#else
|
||
ps_output &ps_output::put_string(const char *s, int n)
|
||
+#endif
|
||
{
|
||
int len = 0;
|
||
int i;
|
||
for (i = 0; i < n; i++) {
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar wc = s[i];
|
||
+ char c = 0;
|
||
+ if (is_wchar_singlebyte(wc))
|
||
+ c = wchar_singlebyte(wc);
|
||
+#else
|
||
char c = s[i];
|
||
+#endif
|
||
if (is_ascii(c) && csprint(c)) {
|
||
if (c == '(' || c == ')' || c == '\\')
|
||
len += 2;
|
||
@@ -224,8 +236,13 @@
|
||
putc('\n', fp);
|
||
col = 0;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int nb = output_encoding->put_wchar(s[i], fp, "%02x");
|
||
+ col += nb * 2;
|
||
+#else
|
||
fprintf(fp, "%02x", s[i] & 0377);
|
||
col += 2;
|
||
+#endif
|
||
}
|
||
putc('>', fp);
|
||
col++;
|
||
@@ -396,6 +413,9 @@
|
||
int encoding_index;
|
||
char *encoding;
|
||
char *reencoded_name;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ char *encodingname;
|
||
+#endif
|
||
~ps_font();
|
||
void handle_unknown_font_command(const char *command, const char *arg,
|
||
const char *filename, int lineno);
|
||
@@ -414,6 +434,9 @@
|
||
|
||
ps_font::ps_font(const char *nm)
|
||
: font(nm), encoding_index(-1), encoding(0), reencoded_name(0)
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ , encodingname(0)
|
||
+#endif
|
||
{
|
||
}
|
||
|
||
@@ -421,6 +444,9 @@
|
||
{
|
||
a_delete encoding;
|
||
a_delete reencoded_name;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ a_delete encodingname;
|
||
+#endif
|
||
}
|
||
|
||
void ps_font::handle_unknown_font_command(const char *command, const char *arg,
|
||
@@ -433,6 +459,15 @@
|
||
else
|
||
encoding = strsave(arg);
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (strcmp(command, "encodingname") == 0) {
|
||
+ if (arg == 0)
|
||
+ error_with_file_and_line(filename, lineno,
|
||
+ "`encodingname' command requires an argument");
|
||
+ else
|
||
+ encodingname = strsave(arg);
|
||
+ }
|
||
+#endif
|
||
}
|
||
|
||
static void handle_unknown_desc_command(const char *command, const char *arg,
|
||
@@ -487,7 +522,11 @@
|
||
int paper_length;
|
||
int equalise_spaces;
|
||
enum { SBUF_SIZE = 256 };
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar sbuf[SBUF_SIZE];
|
||
+#else
|
||
char sbuf[SBUF_SIZE];
|
||
+#endif
|
||
int sbuf_len;
|
||
int sbuf_start_hpos;
|
||
int sbuf_vpos;
|
||
@@ -606,7 +645,11 @@
|
||
{
|
||
if (i == space_char_index || invis_count > 0)
|
||
return;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar code = f->get_code(i);
|
||
+#else
|
||
unsigned char code = f->get_code(i);
|
||
+#endif
|
||
style sty(f, env->size, env->height, env->slant);
|
||
if (sty.slant != 0) {
|
||
if (sty.slant > 80 || sty.slant < -80) {
|
||
@@ -763,6 +806,14 @@
|
||
if (sty == defined_styles[i]) {
|
||
sprintf(buf, "F%d", i);
|
||
out.put_symbol(buf);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ char *encodingname = ((ps_font *)sty.f)->encodingname;
|
||
+ if (encodingname != 0) {
|
||
+ select_output_encoding_handler(encodingname);
|
||
+ } else {
|
||
+ select_output_encoding_handler("LATIN1");
|
||
+ }
|
||
+#endif
|
||
return;
|
||
}
|
||
if (ndefined_styles >= MAX_DEFINED_STYLES)
|
||
@@ -772,6 +823,14 @@
|
||
const char *psname = sty.f->get_internal_name();
|
||
if (psname == 0)
|
||
fatal("no internalname specified for font `%1'", sty.f->get_name());
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ char *encodingname = ((ps_font *)sty.f)->encodingname;
|
||
+ if (encodingname != 0) {
|
||
+ select_output_encoding_handler(encodingname);
|
||
+ } else {
|
||
+ select_output_encoding_handler("LATIN1");
|
||
+ }
|
||
+#endif
|
||
char *encoding = ((ps_font *)sty.f)->encoding;
|
||
if (encoding != 0) {
|
||
char *s = ((ps_font *)sty.f)->reencoded_name;
|
||
@@ -1555,6 +1614,7 @@
|
||
string env;
|
||
static char stderr_buf[BUFSIZ];
|
||
setbuf(stderr, stderr_buf);
|
||
+ init_encoding_handler();
|
||
int c;
|
||
static const struct option long_options[] = {
|
||
{ "help", no_argument, 0, CHAR_MAX + 1 },
|
||
--- groff-1.18.1.1.orig/src/devices/grops/ps.h
|
||
+++ groff-1.18.1.1/src/devices/grops/ps.h
|
||
@@ -18,10 +18,16 @@
|
||
with groff; see the file COPYING. If not, write to the Free Software
|
||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||
|
||
+#include "encoding.h" // XXX
|
||
+
|
||
class ps_output {
|
||
public:
|
||
ps_output(FILE *, int max_line_length);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ ps_output &put_string(const wchar *, int);
|
||
+#else
|
||
ps_output &put_string(const char *, int);
|
||
+#endif
|
||
ps_output &put_number(int);
|
||
ps_output &put_fix_number(int);
|
||
ps_output &put_float(double);
|
||
--- groff-1.18.1.1.orig/src/devices/grohtml/html.h
|
||
+++ groff-1.18.1.1/src/devices/grohtml/html.h
|
||
@@ -49,6 +49,9 @@
|
||
class simple_output {
|
||
public:
|
||
simple_output(FILE *, int max_line_length);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ simple_output &put_string(const wchar *, int);
|
||
+#endif
|
||
simple_output &put_string(const char *, int);
|
||
simple_output &put_string(const char *s);
|
||
simple_output &put_string(const string &s);
|
||
--- groff-1.18.1.1.orig/src/devices/grohtml/post-html.cc
|
||
+++ groff-1.18.1.1/src/devices/grohtml/post-html.cc
|
||
@@ -29,6 +29,7 @@
|
||
#include "html.h"
|
||
#include "html-text.h"
|
||
#include "html-table.h"
|
||
+#include "encoding.h" // XXX: ukai
|
||
|
||
#include <time.h>
|
||
|
||
@@ -280,6 +281,9 @@
|
||
public:
|
||
char_buffer();
|
||
~char_buffer();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ char *add_string(const wchar *, unsigned int);
|
||
+#endif
|
||
char *add_string(const char *, unsigned int);
|
||
char *add_string(const string &);
|
||
private:
|
||
@@ -301,6 +305,43 @@
|
||
}
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+char *char_buffer::add_string (const wchar *s, unsigned int length)
|
||
+{
|
||
+ int i=0;
|
||
+ unsigned int old_used;
|
||
+
|
||
+ if (tail == 0) {
|
||
+ tail = new char_block;
|
||
+ head = tail;
|
||
+ } else {
|
||
+ if (tail->used + length*2 + 1 > char_block::SIZE) {
|
||
+ tail->next = new char_block;
|
||
+ tail = tail->next;
|
||
+ }
|
||
+ }
|
||
+ // at this point we have a tail which is ready for the string.
|
||
+ if (tail->used + length*2 + 1 > char_block::SIZE) {
|
||
+ fatal("need to increase char_block::SIZE");
|
||
+ }
|
||
+
|
||
+ old_used = tail->used;
|
||
+ do {
|
||
+ length -= output_encoding->put_wchar(s[i], (unsigned char *)tail->buffer, &tail->used, length*2);
|
||
+ i++;
|
||
+ } while (length>0);
|
||
+
|
||
+ // add terminating nul character
|
||
+
|
||
+ tail->buffer[tail->used] = '\0';
|
||
+ tail->used++;
|
||
+
|
||
+ // and return start of new string
|
||
+
|
||
+ return( &tail->buffer[old_used] );
|
||
+}
|
||
+#endif
|
||
+
|
||
char *char_buffer::add_string (const char *s, unsigned int length)
|
||
{
|
||
int i=0;
|
||
@@ -320,6 +361,7 @@
|
||
}
|
||
|
||
old_used = tail->used;
|
||
+ /* XXX: encoding - ukai */
|
||
do {
|
||
tail->buffer[tail->used] = s[i];
|
||
tail->used++;
|
||
@@ -1917,6 +1959,15 @@
|
||
|
||
current_paragraph->do_para(&html, "", indentation, pageoffset, linelength);
|
||
}
|
||
+#if 0 // def ENABLE_MULTIBYTE /* XXX */
|
||
+ else if (strcmp(fontname, "M") == 0) {
|
||
+ current_paragraph->done_bold();
|
||
+ current_paragraph->done_italic();
|
||
+ current_paragraph->done_tt();
|
||
+ } else if (strcmp(fontname, "G") == 0) {
|
||
+ current_paragraph->do_bold();
|
||
+ }
|
||
+#endif
|
||
}
|
||
|
||
void html_printer::determine_header_level (int level)
|
||
@@ -2948,6 +2999,11 @@
|
||
current_paragraph->done_italic();
|
||
current_paragraph->done_tt();
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ else if (strcmp(fontname, "G") == 0) {
|
||
+ current_paragraph->done_bold();
|
||
+ }
|
||
+#endif
|
||
}
|
||
|
||
/*
|
||
@@ -2992,6 +3048,15 @@
|
||
current_paragraph->do_italic();
|
||
current_paragraph->do_bold();
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ else if (strcmp(fontname, "M") == 0) {
|
||
+ current_paragraph->done_bold();
|
||
+ current_paragraph->done_italic();
|
||
+ current_paragraph->done_tt();
|
||
+ } else if (strcmp(fontname, "G") == 0) {
|
||
+ current_paragraph->do_bold();
|
||
+ }
|
||
+#endif
|
||
}
|
||
|
||
/*
|
||
@@ -3331,7 +3396,23 @@
|
||
|
||
last_sbuf_length = sbuf.length();
|
||
if (html_glyph == NULL)
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ {
|
||
+ if (is_wchar_code(code)) {
|
||
+ int mblen = output_encoding->max_wchar_len();
|
||
+ unsigned char *wbuf = new unsigned char[mblen];
|
||
+ int i = 0, j = 0;
|
||
+ output_encoding->put_wchar(code, wbuf, &j, mblen);
|
||
+ for (i = 0; i < j; i++) {
|
||
+ sbuf += wbuf[i];
|
||
+ }
|
||
+ }
|
||
+ else
|
||
+ sbuf += ((char)code);
|
||
+ }
|
||
+#else
|
||
sbuf += ((char)code);
|
||
+#endif
|
||
else
|
||
sbuf += html_glyph;
|
||
}
|
||
@@ -3445,12 +3526,12 @@
|
||
return;
|
||
|
||
flush_sbuf();
|
||
+ sbuf_style = sty; /* XXX? */
|
||
add_to_sbuf(i, name);
|
||
sbuf_end_hpos = env->hpos + w;
|
||
sbuf_start_hpos = env->hpos;
|
||
sbuf_prev_hpos = env->hpos;
|
||
sbuf_vpos = env->vpos;
|
||
- sbuf_style = sty;
|
||
sbuf_kern = 0;
|
||
}
|
||
|
||
@@ -3659,6 +3740,7 @@
|
||
program_name = argv[0];
|
||
static char stderr_buf[BUFSIZ];
|
||
setbuf(stderr, stderr_buf);
|
||
+ init_encoding_handler();
|
||
int c;
|
||
static const struct option long_options[] = {
|
||
{ "help", no_argument, 0, CHAR_MAX + 1 },
|
||
--- groff-1.18.1.1.orig/src/devices/grodvi/dvi.cc
|
||
+++ groff-1.18.1.1/src/devices/grodvi/dvi.cc
|
||
@@ -21,6 +21,7 @@
|
||
|
||
#include "driver.h"
|
||
#include "nonposix.h"
|
||
+#include "encoding.h"
|
||
|
||
extern "C" const char *Version_string;
|
||
|
||
@@ -104,6 +105,9 @@
|
||
struct output_font {
|
||
dvi_font *f;
|
||
int point_size;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ const char *sf; // subfont name
|
||
+#endif
|
||
output_font() : f(0) { }
|
||
};
|
||
|
||
@@ -121,6 +125,9 @@
|
||
output_font output_font_table[FONTS_MAX];
|
||
font *cur_font;
|
||
int cur_point_size;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ const char *cur_subfont;
|
||
+#endif
|
||
color cur_color;
|
||
int pushed;
|
||
int pushed_h;
|
||
@@ -341,9 +348,18 @@
|
||
if (*env->col != cur_color)
|
||
set_color(env->col);
|
||
int code = f->get_code(index);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ const char *sf = f->get_subfont_name(index);
|
||
+ if (env->size != cur_point_size || f != cur_font ||
|
||
+ (sf != cur_subfont && strcmp(sf, cur_subfont))) {
|
||
+#else
|
||
if (env->size != cur_point_size || f != cur_font) {
|
||
+#endif
|
||
cur_font = f;
|
||
cur_point_size = env->size;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ cur_subfont = sf;
|
||
+#endif
|
||
int i;
|
||
for (i = 0;; i++) {
|
||
if (i >= FONTS_MAX) {
|
||
@@ -352,9 +368,16 @@
|
||
if (output_font_table[i].f == 0) {
|
||
output_font_table[i].f = (dvi_font *)cur_font;
|
||
output_font_table[i].point_size = cur_point_size;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ output_font_table[i].sf = cur_subfont;
|
||
+#endif
|
||
define_font(i);
|
||
}
|
||
if (output_font_table[i].f == cur_font
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ && (output_font_table[i].sf == cur_subfont ||
|
||
+ strcmp(output_font_table[i].sf, cur_subfont) == 0)
|
||
+#endif
|
||
&& output_font_table[i].point_size == cur_point_size)
|
||
break;
|
||
}
|
||
@@ -398,7 +421,13 @@
|
||
out4(f->checksum);
|
||
out4(output_font_table[i].point_size*RES_7227);
|
||
out4(int((double(f->design_size)/(1<<20))*RES_7227*100 + .5));
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ const char *nm;
|
||
+ if (!(nm = output_font_table[i].sf))
|
||
+ nm = f->get_internal_name();
|
||
+#else
|
||
const char *nm = f->get_internal_name();
|
||
+#endif
|
||
out1(0);
|
||
out_string(nm);
|
||
}
|
||
@@ -889,6 +918,7 @@
|
||
program_name = argv[0];
|
||
static char stderr_buf[BUFSIZ];
|
||
setbuf(stderr, stderr_buf);
|
||
+ init_encoding_handler();
|
||
int c;
|
||
static const struct option long_options[] = {
|
||
{ "help", no_argument, 0, CHAR_MAX + 1 },
|
||
--- groff-1.18.1.1.orig/src/xditview/encoding.h
|
||
+++ groff-1.18.1.1/src/xditview/encoding.h
|
||
@@ -0,0 +1,31 @@
|
||
+// -*- C++ -*-
|
||
+/* Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+This file is part of groff.
|
||
+
|
||
+groff is free software; you can redistribute it and/or modify it under
|
||
+the terms of the GNU General Public License as published by the Free
|
||
+Software Foundation; either version 2, or (at your option) any later
|
||
+version.
|
||
+
|
||
+groff is distributed in the hope that it will be useful, but WITHOUT ANY
|
||
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||
+for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with this program; if not, write to the Free Software
|
||
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||
+
|
||
+#ifndef ENCODING_H
|
||
+#define ENCODING_H
|
||
+
|
||
+#include "config.h"
|
||
+
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+typedef unsigned int wchar;
|
||
+#else
|
||
+typedef char wchar;
|
||
+#endif
|
||
+
|
||
+#endif
|
||
--- groff-1.18.1.1.orig/src/xditview/lex.c
|
||
+++ groff-1.18.1.1/src/xditview/lex.c
|
||
@@ -2,8 +2,10 @@
|
||
#include <X11/IntrinsicP.h>
|
||
#include <X11/StringDefs.h>
|
||
#include <stdio.h>
|
||
+#include "config.h"
|
||
#include "DviP.h"
|
||
|
||
+int
|
||
DviGetAndPut(dw, cp)
|
||
DviWidget dw;
|
||
int *cp;
|
||
@@ -67,6 +69,7 @@
|
||
return Buffer;
|
||
}
|
||
|
||
+int
|
||
GetNumber(dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -90,6 +93,98 @@
|
||
DviUngetC(dw, c);
|
||
return i;
|
||
}
|
||
+
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+#include <locale.h>
|
||
+#include <langinfo.h>
|
||
+#include <iconv.h>
|
||
+#include <errno.h>
|
||
+
|
||
+static iconv_t icd;
|
||
+void
|
||
+DviInitLocale()
|
||
+{
|
||
+ char *enc;
|
||
+ setlocale(LC_ALL, "");
|
||
+ enc = nl_langinfo(CODESET);
|
||
+ icd = iconv_open("UCS-2BE", enc);
|
||
+}
|
||
+
|
||
+int
|
||
+DviGetCharacter(dw, cp)
|
||
+ DviWidget dw;
|
||
+ char *cp;
|
||
+{
|
||
+ char inbuf[8];
|
||
+ char outbuf[8];
|
||
+ char *inp, *outp;
|
||
+ size_t inbytesleft, outbytesleft = 8;
|
||
+ int i = 0;
|
||
+ int j;
|
||
+ int wc = 0;
|
||
+ int c;
|
||
+ size_t r;
|
||
+
|
||
+ while (wc == 0) {
|
||
+ DviGetC(dw, &c);
|
||
+ if (c == EOF)
|
||
+ return EOF;
|
||
+ inbuf[i++] = c;
|
||
+ inbytesleft = i;
|
||
+ outbytesleft = BUFSIZ;
|
||
+ inp = inbuf;
|
||
+ outp = outbuf;
|
||
+ r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
|
||
+ if (r == (size_t)-1) {
|
||
+ if (errno == EILSEQ) {
|
||
+ /* illegal sequence */
|
||
+ } else if (errno == EINVAL) {
|
||
+ /* incomplete sequence */
|
||
+ continue;
|
||
+ } else if (errno == E2BIG) {
|
||
+ /* no room to output? */
|
||
+
|
||
+ }
|
||
+ DviUngetC(dw, c);
|
||
+ }
|
||
+ /* ok - pass inbuf to cp */
|
||
+ for (j = 0; j < i; j++) {
|
||
+ cp[j] = inbuf[j];
|
||
+ }
|
||
+ cp[j] = '\0';
|
||
+ return i;
|
||
+ }
|
||
+ /* NOT REACHED */
|
||
+}
|
||
+
|
||
+int
|
||
+DviWCharP(char *name, int *wc)
|
||
+{
|
||
+ char outbuf[BUFSIZ];
|
||
+ char *inp, *outp;
|
||
+ int inbytesleft, outbytesleft;
|
||
+ size_t r;
|
||
+ *wc = 0;
|
||
+ inp = name;
|
||
+ inbytesleft = strlen(name);
|
||
+ outp = outbuf;
|
||
+ outbytesleft = sizeof(outbuf)-1;
|
||
+ r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
|
||
+ if (r < 0) {
|
||
+ return 0;
|
||
+ }
|
||
+ /* UCS-2 check */
|
||
+ if (outbuf + 2 != outp) {
|
||
+ return 0;
|
||
+ }
|
||
+ for (inp = outbuf; inp < outp; inp++) {
|
||
+ *wc <<= 8;
|
||
+ *wc |= (*inp) & 0x0ff;
|
||
+ }
|
||
+ return 1;
|
||
+}
|
||
+
|
||
+#endif
|
||
|
||
/*
|
||
Local Variables:
|
||
--- groff-1.18.1.1.orig/src/xditview/Dvi.c
|
||
+++ groff-1.18.1.1/src/xditview/Dvi.c
|
||
@@ -4,6 +4,8 @@
|
||
#endif /* lint */
|
||
#endif /* SABER */
|
||
|
||
+#include "config.h"
|
||
+
|
||
/*
|
||
* Dvi.c - Dvi display widget
|
||
*
|
||
@@ -49,6 +51,8 @@
|
||
NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
|
||
SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
|
||
+M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
|
||
+G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\
|
||
";
|
||
|
||
#define offset(field) XtOffset(DviWidget, field)
|
||
@@ -94,6 +98,20 @@
|
||
|
||
static void SaveToFile ();
|
||
|
||
+/* font.c */
|
||
+extern void ParseFontMap();
|
||
+extern void DestroyFontMap();
|
||
+extern void ForgetFonts();
|
||
+
|
||
+/* page.c */
|
||
+extern void DestroyFileMap();
|
||
+extern int SearchPagePosition();
|
||
+extern void FileSeek();
|
||
+extern void ForgetPagePositions();
|
||
+
|
||
+/* parse.c */
|
||
+extern int ParseInput();
|
||
+
|
||
DviClassRec dviClassRec = {
|
||
{
|
||
&widgetClassRec, /* superclass */
|
||
@@ -406,6 +424,7 @@
|
||
return ret;
|
||
}
|
||
|
||
+void
|
||
SetDevice (dw, name)
|
||
DviWidget dw;
|
||
char *name;
|
||
@@ -559,6 +578,9 @@
|
||
DviWidgetClass super = (DviWidgetClass) wc->core_class.superclass;
|
||
if (wc->command_class.save == InheritSaveToFile)
|
||
wc->command_class.save = super->command_class.save;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ DviInitLocale();
|
||
+#endif
|
||
}
|
||
|
||
/*
|
||
--- groff-1.18.1.1.orig/src/xditview/parse.c
|
||
+++ groff-1.18.1.1/src/xditview/parse.c
|
||
@@ -9,15 +9,49 @@
|
||
#include <X11/StringDefs.h>
|
||
#include <stdio.h>
|
||
#include <ctype.h>
|
||
+#include "config.h"
|
||
#include "DviP.h"
|
||
+#include "encoding.h"
|
||
|
||
static int StopSeen = 0;
|
||
-static ParseDrawFunction(), ParseDeviceControl();
|
||
-static push_env(), pop_env();
|
||
+static void ParseDrawFunction(), ParseDeviceControl();
|
||
+static void push_env(), pop_env();
|
||
+
|
||
+/* draw.c */
|
||
+extern int PutCharacter();
|
||
+extern int PutNumberedCharacter();
|
||
+extern void HorizontalGoto();
|
||
+extern void Word();
|
||
+extern void VerticalGoto();
|
||
+extern void VerticalMove();
|
||
+extern void FlushCharCache();
|
||
+extern void Newline();
|
||
+extern void DrawLine();
|
||
+extern void DrawCircle();
|
||
+extern void DrawFilledCircle();
|
||
+extern void DrawEllipse();
|
||
+extern void DrawFilledEllipse();
|
||
+extern void DrawArc();
|
||
+extern void DrawPolygon();
|
||
+extern void DrawFilledPolygon();
|
||
+extern void DrawSpline();
|
||
+
|
||
+/* Dvi.c */
|
||
+extern void SetDevice();
|
||
+
|
||
+/* page.c */
|
||
+extern void RememberPagePosition();
|
||
+
|
||
+/* font.c */
|
||
+extern void SetFontPosition();
|
||
+
|
||
+/* lex.c */
|
||
+extern int GetNumber();
|
||
|
||
#define HorizontalMove(dw, delta) ((dw)->dvi.state->x += (delta))
|
||
|
||
|
||
+int
|
||
ParseInput(dw)
|
||
register DviWidget dw;
|
||
{
|
||
@@ -57,11 +91,17 @@
|
||
DviGetC(dw,&otherc)-'0');
|
||
/* fall through */
|
||
case 'c': /* single ascii character */
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ DviGetCharacter(dw, Buffer);
|
||
+ if (Buffer[0] == ' ')
|
||
+ break;
|
||
+#else
|
||
DviGetC(dw,&c);
|
||
if (c == ' ')
|
||
break;
|
||
Buffer[0] = c;
|
||
Buffer[1] = '\0';
|
||
+#endif
|
||
(void) PutCharacter (dw, Buffer);
|
||
break;
|
||
case 'C':
|
||
@@ -69,10 +109,15 @@
|
||
(void) PutCharacter (dw, Buffer);
|
||
break;
|
||
case 't':
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ while (DviGetCharacter(dw, Buffer) != EOF
|
||
+ && Buffer[0] != ' ' && Buffer[0] != '\n') {
|
||
+#else
|
||
Buffer[1] = '\0';
|
||
while (DviGetC (dw, &c) != EOF
|
||
&& c != ' ' && c != '\n') {
|
||
Buffer[0] = c;
|
||
+#endif
|
||
HorizontalMove (dw, PutCharacter (dw, Buffer));
|
||
}
|
||
break;
|
||
@@ -158,7 +203,7 @@
|
||
}
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
push_env(dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -177,7 +222,7 @@
|
||
dw->dvi.state = new;
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
pop_env(dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -188,7 +233,7 @@
|
||
XtFree ((char *) old);
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
InitTypesetter (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -200,7 +245,7 @@
|
||
|
||
#define DRAW_ARGS_MAX 128
|
||
|
||
-static
|
||
+static void
|
||
ParseDrawFunction(dw, buf)
|
||
DviWidget dw;
|
||
char *buf;
|
||
@@ -284,13 +329,12 @@
|
||
}
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
ParseDeviceControl(dw) /* Parse the x commands */
|
||
DviWidget dw;
|
||
{
|
||
char str[20], str1[50];
|
||
int c, n;
|
||
- extern int LastPage, CurrentPage;
|
||
|
||
GetWord (dw, str, 20);
|
||
switch (str[0]) { /* crude for now */
|
||
--- groff-1.18.1.1.orig/src/xditview/DviChar.c
|
||
+++ groff-1.18.1.1/src/xditview/DviChar.c
|
||
@@ -5,7 +5,10 @@
|
||
* font indexes and back
|
||
*/
|
||
|
||
-#include "DviChar.h"
|
||
+#include <stdlib.h>
|
||
+#include "config.h"
|
||
+#include "DviChar.h"
|
||
+#include "encoding.h"
|
||
|
||
extern char *xmalloc();
|
||
|
||
@@ -21,7 +24,7 @@
|
||
static int standard_maps_loaded = 0;
|
||
static void load_standard_maps ();
|
||
static int hash_name ();
|
||
-static dispose_hash(), compute_hash();
|
||
+static void dispose_hash(), compute_hash();
|
||
|
||
DviCharNameMap *
|
||
DviFindMap (encoding)
|
||
@@ -58,7 +61,7 @@
|
||
compute_hash (map);
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
dispose_hash (map)
|
||
DviCharNameMap *map;
|
||
{
|
||
@@ -88,7 +91,7 @@
|
||
return i;
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
compute_hash (map)
|
||
DviCharNameMap *map;
|
||
{
|
||
@@ -120,7 +123,10 @@
|
||
{
|
||
int i;
|
||
DviCharNameHash *h;
|
||
-
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (map->char_index)
|
||
+ return (*map->char_index)(map, name);
|
||
+#endif
|
||
i = hash_name (name) % DVI_HASH_SIZE;
|
||
for (h = map->buckets[i]; h; h=h->next)
|
||
if (!strcmp (h->name, name))
|
||
@@ -128,9 +134,47 @@
|
||
return -1;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+#include <X11/Xlib.h>
|
||
+void
|
||
+DviChar2XChar2b(int c, XChar2b *xc)
|
||
+{
|
||
+ /* XXX: can we assume 'c' is EUC-JP ? */
|
||
+ xc->byte1 = (c >> 8) & 0x7f;
|
||
+ xc->byte2 = (c) &0x7f;
|
||
+ return;
|
||
+}
|
||
+
|
||
+int
|
||
+DviCharIndexJISX0208_1983(map, name)
|
||
+ DviCharNameMap *map;
|
||
+ char *name;
|
||
+{
|
||
+ /* XXX: can we assume name points EUC-JP chars? */
|
||
+ unsigned char ub = *name, lb = *(name + 1);
|
||
+ int wc;
|
||
+ wc = (name[0] & 0xff) << 8;
|
||
+ wc |= (name[1] & 0xff);
|
||
+ return(wc);
|
||
+}
|
||
+
|
||
+static DviCharNameMap JISX0208_1983_0_map = {
|
||
+ "jisx0208.1983-0",
|
||
+ 0,
|
||
+ DviChar2XChar2b,
|
||
+ DviCharIndexJISX0208_1983,
|
||
+{
|
||
+{ "DummyEntry", /* 0 */},
|
||
+}};
|
||
+#endif
|
||
+
|
||
static DviCharNameMap ISO8859_1_map = {
|
||
"iso8859-1",
|
||
0,
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ 0,
|
||
+ 0,
|
||
+#endif
|
||
{
|
||
{ 0, /* 0 */},
|
||
{ 0, /* 1 */},
|
||
@@ -393,6 +437,10 @@
|
||
static DviCharNameMap Adobe_Symbol_map = {
|
||
"adobe-fontspecific",
|
||
1,
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ 0,
|
||
+ 0,
|
||
+#endif
|
||
{
|
||
{ 0, /* 0 */},
|
||
{ 0, /* 1 */},
|
||
@@ -659,4 +707,7 @@
|
||
standard_maps_loaded = 1;
|
||
DviRegisterMap (&ISO8859_1_map);
|
||
DviRegisterMap (&Adobe_Symbol_map);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ DviRegisterMap (&JISX0208_1983_0_map);
|
||
+#endif
|
||
}
|
||
--- groff-1.18.1.1.orig/src/xditview/config.h
|
||
+++ groff-1.18.1.1/src/xditview/config.h
|
||
@@ -0,0 +1,4 @@
|
||
+#ifndef _config_h
|
||
+#include "../include/config.h"
|
||
+#define _config_h
|
||
+#endif
|
||
--- groff-1.18.1.1.orig/src/xditview/XFontName.c
|
||
+++ groff-1.18.1.1/src/xditview/XFontName.c
|
||
@@ -225,6 +225,7 @@
|
||
return True;
|
||
}
|
||
|
||
+Bool
|
||
XCopyFontName (name1, name2, fontNameAttributes)
|
||
XFontName *name1, *name2;
|
||
unsigned int fontNameAttributes;
|
||
--- groff-1.18.1.1.orig/src/xditview/GXditview.ad
|
||
+++ groff-1.18.1.1/src/xditview/GXditview.ad
|
||
@@ -55,3 +55,25 @@
|
||
GXditview.promptShell.promptDialog.cancel.label: Cancel
|
||
GXditview.promptShell.promptDialog.cancel.translations: #override \
|
||
<BtnUp>: Cancel() unset()
|
||
+
|
||
+GXditview*fontMap: \
|
||
+TR -adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+TI -adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+TB -adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+TBI -adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+CR -adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+CI -adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+CB -adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+CBI -adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+HR -adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+HI -adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+HB -adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+HBI -adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+NR -adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+NI -adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+NB -adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
|
||
+S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
|
||
+SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
|
||
+M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
|
||
+G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
|
||
--- groff-1.18.1.1.orig/src/xditview/GXditview-ad.h
|
||
+++ groff-1.18.1.1/src/xditview/GXditview-ad.h
|
||
@@ -50,3 +50,24 @@
|
||
"GXditview.promptShell.promptDialog.cancel.label: Cancel",
|
||
"GXditview.promptShell.promptDialog.cancel.translations: #override \
|
||
<BtnUp>: Cancel() unset()",
|
||
+"GXditview*fontMap: \
|
||
+TR -adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+TI -adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+TB -adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+TBI -adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+CR -adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+CI -adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+CB -adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+CBI -adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+HR -adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+HI -adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+HB -adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+HBI -adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+NR -adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+NI -adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+NB -adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+NBI -adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
|
||
+S -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
|
||
+SS -adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
|
||
+M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\\n\
|
||
+G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0",
|
||
--- groff-1.18.1.1.orig/src/xditview/DviP.h
|
||
+++ groff-1.18.1.1/src/xditview/DviP.h
|
||
@@ -8,6 +8,7 @@
|
||
|
||
#ifndef _XtDviP_h
|
||
#define _XtDviP_h
|
||
+#include "config.h"
|
||
|
||
#include "Dvi.h"
|
||
#include "DviChar.h"
|
||
@@ -89,9 +90,17 @@
|
||
#define DVI_CHAR_CACHE_SIZE 1024
|
||
|
||
typedef struct _dviCharCache {
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ XTextItem16 cache[DVI_TEXT_CACHE_SIZE];
|
||
+#else
|
||
XTextItem cache[DVI_TEXT_CACHE_SIZE];
|
||
+#endif
|
||
char adjustable[DVI_TEXT_CACHE_SIZE];
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ XChar2b char_cache[DVI_CHAR_CACHE_SIZE];
|
||
+#else
|
||
char char_cache[DVI_CHAR_CACHE_SIZE];
|
||
+#endif
|
||
int index;
|
||
int max;
|
||
int char_index;
|
||
@@ -182,6 +191,7 @@
|
||
int word_flag;
|
||
} DviPart;
|
||
|
||
+extern int DviGetAndPut();
|
||
#define DviGetIn(dw,cp)\
|
||
(dw->dvi.tmpFile ? (\
|
||
DviGetAndPut (dw, cp) \
|
||
@@ -228,6 +238,11 @@
|
||
extern DeviceFont *QueryDeviceFont ();
|
||
|
||
extern char *GetWord(), *GetLine();
|
||
+
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+extern void DviInitLocale();
|
||
+extern int DviGEtCharacter();
|
||
+#endif
|
||
#endif /* _XtDviP_h */
|
||
|
||
|
||
--- groff-1.18.1.1.orig/src/xditview/device.c
|
||
+++ groff-1.18.1.1/src/xditview/device.c
|
||
@@ -2,10 +2,12 @@
|
||
|
||
#include <stdio.h>
|
||
#include <ctype.h>
|
||
+#include <stdlib.h>
|
||
|
||
#include <X11/Xos.h>
|
||
#include <X11/Intrinsic.h>
|
||
|
||
+#include "config.h"
|
||
#include "device.h"
|
||
|
||
#ifndef FONTPATH
|
||
@@ -48,6 +50,9 @@
|
||
Device *dev;
|
||
struct charinfo *char_table[CHAR_TABLE_SIZE];
|
||
struct charinfo *code_table[256];
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ struct charrange *range;
|
||
+#endif
|
||
};
|
||
|
||
struct charinfo {
|
||
@@ -71,6 +76,15 @@
|
||
static struct charinfo *add_char();
|
||
static int read_charset_section();
|
||
static char *canonicalize_name();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+struct charrange {
|
||
+ struct charrange *next;
|
||
+ int width;
|
||
+ int start_code;
|
||
+ int end_code;
|
||
+};
|
||
+static void add_charrange();
|
||
+#endif
|
||
|
||
static
|
||
Device *new_device(name)
|
||
@@ -256,6 +270,9 @@
|
||
f->char_table[i] = 0;
|
||
for (i = 0; i < 256; i++)
|
||
f->code_table[i] = 0;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ f->range = 0;
|
||
+#endif
|
||
return f;
|
||
}
|
||
|
||
@@ -267,6 +284,15 @@
|
||
|
||
if (!f)
|
||
return;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ {
|
||
+ struct charrange *cp, *cp2;
|
||
+ for (cp = f->range; cp != NULL; cp = cp2) {
|
||
+ cp2 = cp->next;
|
||
+ XtFree((char *)cp);
|
||
+ }
|
||
+ }
|
||
+#endif
|
||
XtFree(f->name);
|
||
for (i = 0; i < CHAR_TABLE_SIZE; i++) {
|
||
struct charinfo *ptr = f->char_table[i];
|
||
@@ -342,6 +368,20 @@
|
||
{
|
||
struct charinfo *p;
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int wc;
|
||
+ extern DviWCharP();
|
||
+ if (DviWCharP(name, &wc)) {
|
||
+ struct charrange *rp;
|
||
+ for (rp = f->range; rp != NULL; rp = rp->next) {
|
||
+ if (rp->start_code <= wc && wc <= rp->end_code) {
|
||
+ *widthp = scale_round(rp->width, ps,
|
||
+ f->dev->unitwidth);
|
||
+ return 1;
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+#endif
|
||
name = canonicalize_name(name);
|
||
for (p = f->char_table[hash_name(name) % CHAR_TABLE_SIZE];; p = p->next) {
|
||
if (!p)
|
||
@@ -424,6 +464,22 @@
|
||
return ci;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+static void
|
||
+add_charrange(f, width, start_code, end_code)
|
||
+ DeviceFont *f;
|
||
+ int width, start_code, end_code;
|
||
+{
|
||
+ struct charrange *ci;
|
||
+ ci = (struct charrange *)XtMalloc(sizeof(struct charrange));
|
||
+ ci->start_code = start_code;
|
||
+ ci->end_code = end_code;
|
||
+ ci->width = width;
|
||
+ ci->next = f->range;
|
||
+ f->range = ci;
|
||
+}
|
||
+#endif
|
||
+
|
||
/* Return non-zero for success. */
|
||
|
||
static
|
||
@@ -439,11 +495,31 @@
|
||
int width;
|
||
int code;
|
||
char *p;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int scode, ecode;
|
||
+#endif
|
||
|
||
current_lineno++;
|
||
name = strtok(buf, WS);
|
||
if (!name)
|
||
continue; /* ignore blank lines */
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (sscanf(name, "u%X..u%X", &scode, &ecode) == 2) {
|
||
+ p = strtok((char *)0, WS);
|
||
+ if (!p)
|
||
+ break;
|
||
+ if (sscanf(p, "%d", &width) != 1) {
|
||
+ error("bad width field");
|
||
+ return 0;
|
||
+ }
|
||
+ p = strtok((char *)0, WS);
|
||
+ if (!p) {
|
||
+ error("missing type field");
|
||
+ return 0;
|
||
+ }
|
||
+ add_charrange(f, width, scode, ecode);
|
||
+ } else {
|
||
+#endif
|
||
p = strtok((char *)0, WS);
|
||
if (!p) /* end of charset section */
|
||
break;
|
||
@@ -479,6 +555,9 @@
|
||
}
|
||
last_charinfo = add_char(f, name, width, code);
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ }
|
||
+#endif
|
||
}
|
||
return 1;
|
||
}
|
||
@@ -559,7 +638,7 @@
|
||
FILE *open_device_file(device_name, file_name, result)
|
||
char *device_name, *file_name, **result;
|
||
{
|
||
- char *buf, *path;
|
||
+ char *buf;
|
||
FILE *fp;
|
||
|
||
buf = XtMalloc(3 + strlen(device_name) + 1 + strlen(file_name) + 1);
|
||
--- groff-1.18.1.1.orig/src/xditview/page.c
|
||
+++ groff-1.18.1.1/src/xditview/page.c
|
||
@@ -28,6 +28,7 @@
|
||
return m;
|
||
}
|
||
|
||
+void
|
||
DestroyFileMap (m)
|
||
DviFileMap *m;
|
||
{
|
||
@@ -39,6 +40,7 @@
|
||
}
|
||
}
|
||
|
||
+void
|
||
ForgetPagePositions (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -46,6 +48,7 @@
|
||
dw->dvi.file_map = 0;
|
||
}
|
||
|
||
+void
|
||
RememberPagePosition(dw, number)
|
||
DviWidget dw;
|
||
int number;
|
||
@@ -64,6 +67,7 @@
|
||
m->position = ftell (dw->dvi.file);
|
||
}
|
||
|
||
+int
|
||
SearchPagePosition (dw, number)
|
||
DviWidget dw;
|
||
int number;
|
||
@@ -75,6 +79,7 @@
|
||
return m->position;
|
||
}
|
||
|
||
+void
|
||
FileSeek(dw, position)
|
||
DviWidget dw;
|
||
long position;
|
||
--- groff-1.18.1.1.orig/src/xditview/FontMap.jisx0208
|
||
+++ groff-1.18.1.1/src/xditview/FontMap.jisx0208
|
||
@@ -0,0 +1,2 @@
|
||
+M -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
|
||
+G -misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
|
||
--- groff-1.18.1.1.orig/src/xditview/xditview.c
|
||
+++ groff-1.18.1.1/src/xditview/xditview.c
|
||
@@ -46,6 +46,7 @@
|
||
#include <X11/Xaw/SimpleMenu.h>
|
||
#include <X11/Xaw/SmeBSB.h>
|
||
|
||
+#include <stdlib.h>
|
||
#include <signal.h>
|
||
|
||
#include "Dvi.h"
|
||
@@ -101,7 +102,7 @@
|
||
* Report the syntax for calling xditview.
|
||
*/
|
||
|
||
-static
|
||
+static void
|
||
Syntax(call)
|
||
char *call;
|
||
{
|
||
@@ -126,12 +127,12 @@
|
||
char *name;
|
||
void (*function)();
|
||
} menuEntries[] = {
|
||
- "nextPage", NextPage,
|
||
- "previousPage", PreviousPage,
|
||
- "selectPage", SelectPage,
|
||
- "print", Print,
|
||
- "openFile", OpenFile,
|
||
- "quit", Quit,
|
||
+ {"nextPage", NextPage},
|
||
+ {"previousPage",PreviousPage},
|
||
+ {"selectPage", SelectPage},
|
||
+ {"print", Print},
|
||
+ {"openFile", OpenFile},
|
||
+ {"quit", Quit},
|
||
};
|
||
|
||
static void NextPageAction(), PreviousPageAction(), SelectPageAction();
|
||
@@ -139,17 +140,18 @@
|
||
static void AcceptAction(), CancelAction();
|
||
static void PrintAction();
|
||
static void RerasterizeAction();
|
||
+static void MakePrompt();
|
||
|
||
XtActionsRec xditview_actions[] = {
|
||
- "NextPage", NextPageAction,
|
||
- "PreviousPage", PreviousPageAction,
|
||
- "SelectPage", SelectPageAction,
|
||
- "Print", PrintAction,
|
||
- "OpenFile", OpenFileAction,
|
||
- "Rerasterize", RerasterizeAction,
|
||
- "Quit", QuitAction,
|
||
- "Accept", AcceptAction,
|
||
- "Cancel", CancelAction,
|
||
+ {"NextPage", NextPageAction},
|
||
+ {"PreviousPage", PreviousPageAction},
|
||
+ {"SelectPage", SelectPageAction},
|
||
+ {"Print", PrintAction},
|
||
+ {"OpenFile", OpenFileAction},
|
||
+ {"Rerasterize", RerasterizeAction},
|
||
+ {"Quit", QuitAction},
|
||
+ {"Accept", AcceptAction},
|
||
+ {"Cancel", CancelAction},
|
||
};
|
||
|
||
#define MenuNextPage 0
|
||
@@ -318,6 +320,7 @@
|
||
|
||
static char fileBuf[1024];
|
||
|
||
+static void
|
||
ResetMenuEntry (entry)
|
||
Widget entry;
|
||
{
|
||
@@ -516,6 +519,7 @@
|
||
CancelAction (widget, event, params, num_params);
|
||
}
|
||
|
||
+static void
|
||
MakePrompt(centerw, prompt, func, def)
|
||
Widget centerw;
|
||
char *prompt;
|
||
--- groff-1.18.1.1.orig/src/xditview/xtotroff.c
|
||
+++ groff-1.18.1.1/src/xditview/xtotroff.c
|
||
@@ -2,6 +2,7 @@
|
||
* xtotroff
|
||
*
|
||
* convert X font metrics into troff font metrics
|
||
+ * XXX: ENABLE_MULTIBYTE may not work yet
|
||
*/
|
||
|
||
#include <X11/Xlib.h>
|
||
@@ -10,6 +11,7 @@
|
||
#include <unistd.h>
|
||
#include <stdlib.h>
|
||
#include <fcntl.h>
|
||
+#include "config.h"
|
||
#include "XFontName.h"
|
||
#include "DviChar.h"
|
||
|
||
@@ -171,6 +173,47 @@
|
||
fprintf (out, "spacewidth %d\n", w);
|
||
}
|
||
fprintf (out, "charset\n");
|
||
+#if 0 /* def ENABLE_MULTIBYTE */
|
||
+ if (fi->min_byte1 != 0 || fi->max_byte1 != 0) {
|
||
+ /*
|
||
+ * 2 byte code font.
|
||
+ */
|
||
+ int N;
|
||
+ int D = fi->max_char_or_byte2 - fi->min_char_or_byte2 + 1;
|
||
+ int max = (fi->max_byte1 - fi->min_byte1 + 1) *
|
||
+ (fi->max_char_or_byte2 - fi->min_char_or_byte2 + 1);
|
||
+ unsigned byte1;
|
||
+ unsigned byte2;
|
||
+ unsigned int euc_code;
|
||
+
|
||
+ for (N = 0; N < max; N++) {
|
||
+ byte1 = N / D + fi->min_byte1;
|
||
+ byte2 = N % D + fi->min_char_or_byte2;
|
||
+ euc_code = ((byte1 << 8) | byte2) & 0xffff | 0x8080;
|
||
+ wid = fi->max_bounds.width;
|
||
+ fputc(byte1 & 0xff | 0x80, out);/* output EUC code */
|
||
+ fputc(byte2 & 0xff | 0x80, out);/* output EUC code */
|
||
+ fprintf (out, "\t%d", wid);
|
||
+ if (groff_flag) {
|
||
+ int param[5];
|
||
+ param[0] = fi->max_bounds.ascent;
|
||
+ param[1] = fi->max_bounds.descent;
|
||
+ param[2] = 0 /* charRBearing (fi, c) - wid */;
|
||
+ param[3] = 0 /* charLBearing (fi, c) */;
|
||
+ param[4] = 0; /* XXX */
|
||
+ for (j = 0; j < 5; j++)
|
||
+ if (param[j] < 0)
|
||
+ param[j] = 0;
|
||
+ for (j = 4; j >= 0; j--)
|
||
+ if (param[j] != 0)
|
||
+ break;
|
||
+ for (k = 0; k <= j; k++)
|
||
+ fprintf (out, ",%d", param[k]);
|
||
+ }
|
||
+ fprintf (out, "\t0\t%#x\n", euc_code);
|
||
+ }
|
||
+ } else
|
||
+#endif /* ENABLE_MULTIBYTE */
|
||
for (c = fi->min_char_or_byte2; c <= fi->max_char_or_byte2; c++) {
|
||
char *name = DviCharName (char_map,c,0);
|
||
if (charExists (fi, c) && (groff_flag || name)) {
|
||
--- groff-1.18.1.1.orig/src/xditview/DviChar.h
|
||
+++ groff-1.18.1.1/src/xditview/DviChar.h
|
||
@@ -10,6 +10,8 @@
|
||
* CharSetRegistry from the CharSetEncoding
|
||
*/
|
||
|
||
+#include "config.h"
|
||
+
|
||
# define DVI_MAX_SYNONYMS 10
|
||
# define DVI_MAP_SIZE 256
|
||
# define DVI_HASH_SIZE 256
|
||
@@ -23,6 +25,10 @@
|
||
typedef struct _dviCharNameMap {
|
||
char *encoding;
|
||
int special;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ void (*char2XChar2b)(/* int c, XChar2b *xc */);
|
||
+ int (*char_index)(/* struct _dviCharNameMap *map, char *name */);
|
||
+#endif
|
||
char *dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS];
|
||
DviCharNameHash *buckets[DVI_HASH_SIZE];
|
||
} DviCharNameMap;
|
||
--- groff-1.18.1.1.orig/src/xditview/draw.c
|
||
+++ groff-1.18.1.1/src/xditview/draw.c
|
||
@@ -10,6 +10,7 @@
|
||
#include <stdio.h>
|
||
#include <ctype.h>
|
||
#include <math.h>
|
||
+#include "config.h"
|
||
|
||
/* math.h on a Sequent doesn't define M_PI, apparently */
|
||
#ifndef M_PI
|
||
@@ -17,6 +18,7 @@
|
||
#endif
|
||
|
||
#include "DviP.h"
|
||
+#include "encoding.h" /* XXX */
|
||
|
||
#define DeviceToX(dw, n) ((int)((n) * (dw)->dvi.scale_factor + .5))
|
||
#define XPos(dw) (DeviceToX((dw), (dw)->dvi.state->x - \
|
||
@@ -25,6 +27,10 @@
|
||
|
||
static int FakeCharacter();
|
||
|
||
+/* font.c */
|
||
+extern int MaxFontPosition();
|
||
+
|
||
+void
|
||
HorizontalMove(dw, delta)
|
||
DviWidget dw;
|
||
int delta;
|
||
@@ -32,6 +38,7 @@
|
||
dw->dvi.state->x += delta;
|
||
}
|
||
|
||
+void
|
||
HorizontalGoto(dw, NewPosition)
|
||
DviWidget dw;
|
||
int NewPosition;
|
||
@@ -39,6 +46,7 @@
|
||
dw->dvi.state->x = NewPosition;
|
||
}
|
||
|
||
+void
|
||
VerticalMove(dw, delta)
|
||
DviWidget dw;
|
||
int delta;
|
||
@@ -46,6 +54,7 @@
|
||
dw->dvi.state->y += delta;
|
||
}
|
||
|
||
+void
|
||
VerticalGoto(dw, NewPosition)
|
||
DviWidget dw;
|
||
int NewPosition;
|
||
@@ -53,6 +62,7 @@
|
||
dw->dvi.state->y = NewPosition;
|
||
}
|
||
|
||
+void
|
||
AdjustCacheDeltas (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -94,14 +104,21 @@
|
||
}
|
||
}
|
||
|
||
+void
|
||
FlushCharCache (dw)
|
||
DviWidget dw;
|
||
{
|
||
if (dw->dvi.cache.char_index != 0) {
|
||
AdjustCacheDeltas (dw);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ XDrawText16 (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
|
||
+ dw->dvi.cache.start_x, dw->dvi.cache.start_y,
|
||
+ dw->dvi.cache.cache, dw->dvi.cache.index + 1);
|
||
+#else
|
||
XDrawText (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
|
||
dw->dvi.cache.start_x, dw->dvi.cache.start_y,
|
||
dw->dvi.cache.cache, dw->dvi.cache.index + 1);
|
||
+#endif
|
||
}
|
||
dw->dvi.cache.index = 0;
|
||
dw->dvi.cache.max = DVI_TEXT_CACHE_SIZE;
|
||
@@ -115,6 +132,7 @@
|
||
dw->dvi.cache.start_y = dw->dvi.cache.y = YPos (dw);
|
||
}
|
||
|
||
+void
|
||
Newline (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -123,6 +141,7 @@
|
||
dw->dvi.word_flag = 0;
|
||
}
|
||
|
||
+void
|
||
Word (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -135,7 +154,6 @@
|
||
:\
|
||
(fi)->max_bounds.width\
|
||
)
|
||
-
|
||
|
||
static
|
||
int charExists (fi, c)
|
||
@@ -152,14 +170,25 @@
|
||
|| p->ascent != 0 || p->descent != 0 || p->attributes != 0);
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+DoCharacter (dw, c, wid, char2xchar2b)
|
||
+#else
|
||
DoCharacter (dw, c, wid)
|
||
+#endif
|
||
DviWidget dw;
|
||
int c;
|
||
int wid; /* width in device units */
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ void (*char2xchar2b)();
|
||
+#endif
|
||
{
|
||
register XFontStruct *font;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ register XTextItem16 *text;
|
||
+#else
|
||
register XTextItem *text;
|
||
+#endif
|
||
int x, y;
|
||
|
||
x = XPos(dw);
|
||
@@ -225,9 +254,25 @@
|
||
text->font = None;
|
||
dw->dvi.cache.x += text->delta;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (charExists(font, c) || char2xchar2b) {
|
||
+#else
|
||
if (charExists(font, c)) {
|
||
+#endif
|
||
int w;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (char2xchar2b) {
|
||
+ (*char2xchar2b)(c,
|
||
+ &dw->dvi.cache.char_cache[dw->dvi.cache.char_index++]);
|
||
+ } else {
|
||
+ dw->dvi.cache.char_cache[dw->dvi.cache.char_index].
|
||
+ byte1 = (unsigned char)'\0';
|
||
+ dw->dvi.cache.char_cache[dw->dvi.cache.char_index++].
|
||
+ byte2 = (unsigned char)c;
|
||
+ }
|
||
+#else
|
||
dw->dvi.cache.char_cache[dw->dvi.cache.char_index++] = (char) c;
|
||
+#endif
|
||
++text->nchars;
|
||
w = charWidth(font, c);
|
||
dw->dvi.cache.x += w;
|
||
@@ -291,7 +336,11 @@
|
||
if (map)
|
||
c = DviCharIndex (map, buf);
|
||
if (c >= 0)
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ DoCharacter (dw, c, wid, map->char2XChar2b);
|
||
+#else
|
||
DoCharacter (dw, c, wid);
|
||
+#endif
|
||
else
|
||
(void) FakeCharacter (dw, buf, wid);
|
||
dw->dvi.state->font_number = prevFont;
|
||
@@ -345,6 +394,7 @@
|
||
return 1;
|
||
}
|
||
|
||
+void
|
||
PutNumberedCharacter (dw, c)
|
||
DviWidget dw;
|
||
int c;
|
||
@@ -368,7 +418,11 @@
|
||
dw->dvi.state->font_size, c, &wid))
|
||
return;
|
||
if (dw->dvi.native) {
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ DoCharacter (dw, c, wid, NULL);
|
||
+#else
|
||
DoCharacter (dw, c, wid);
|
||
+#endif
|
||
return;
|
||
}
|
||
map = QueryFontMap (dw, dw->dvi.state->font_number);
|
||
@@ -379,7 +433,11 @@
|
||
name = device_name_for_code ((DeviceFont *)0, c)) {
|
||
int code = DviCharIndex (map, name);
|
||
if (code >= 0) {
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ DoCharacter (dw, code, wid, map->char2XChar2b);
|
||
+#else
|
||
DoCharacter (dw, code, wid);
|
||
+#endif
|
||
break;
|
||
}
|
||
if (FakeCharacter (dw, name, wid))
|
||
@@ -387,13 +445,14 @@
|
||
}
|
||
}
|
||
|
||
+void
|
||
ClearPage (dw)
|
||
DviWidget dw;
|
||
{
|
||
XClearWindow (XtDisplay (dw), XtWindow (dw));
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
setGC (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -417,7 +476,7 @@
|
||
}
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
setFillGC (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -444,6 +503,7 @@
|
||
}
|
||
}
|
||
|
||
+void
|
||
DrawLine (dw, x, y)
|
||
DviWidget dw;
|
||
int x, y;
|
||
@@ -459,6 +519,7 @@
|
||
xp + DeviceToX (dw, x), yp + DeviceToX (dw, y));
|
||
}
|
||
|
||
+void
|
||
DrawCircle (dw, diam)
|
||
DviWidget dw;
|
||
int diam;
|
||
@@ -473,6 +534,7 @@
|
||
d, d, 0, 64*360);
|
||
}
|
||
|
||
+void
|
||
DrawFilledCircle (dw, diam)
|
||
DviWidget dw;
|
||
int diam;
|
||
@@ -490,6 +552,7 @@
|
||
d, d, 0, 64*360);
|
||
}
|
||
|
||
+void
|
||
DrawEllipse (dw, a, b)
|
||
DviWidget dw;
|
||
int a, b;
|
||
@@ -501,6 +564,7 @@
|
||
DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
|
||
}
|
||
|
||
+void
|
||
DrawFilledEllipse (dw, a, b)
|
||
DviWidget dw;
|
||
int a, b;
|
||
@@ -515,6 +579,7 @@
|
||
DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
|
||
}
|
||
|
||
+void
|
||
DrawArc (dw, x0, y0, x1, y1)
|
||
DviWidget dw;
|
||
int x0, y0, x1, y1;
|
||
@@ -541,6 +606,7 @@
|
||
rad*2, rad*2, angle1, angle2);
|
||
}
|
||
|
||
+void
|
||
DrawPolygon (dw, v, n)
|
||
DviWidget dw;
|
||
int *v;
|
||
@@ -572,7 +638,7 @@
|
||
XtFree((char *)p);
|
||
}
|
||
|
||
-
|
||
+void
|
||
DrawFilledPolygon (dw, v, n)
|
||
DviWidget dw;
|
||
int *v;
|
||
@@ -608,7 +674,7 @@
|
||
|
||
#define POINTS_MAX 10000
|
||
|
||
-static
|
||
+static void
|
||
appendPoint(points, pointi, x, y)
|
||
XPoint *points;
|
||
int *pointi;
|
||
@@ -623,7 +689,7 @@
|
||
|
||
#define FLATNESS 1
|
||
|
||
-static
|
||
+static void
|
||
flattenCurve(points, pointi, x2, y2, x3, y3, x4, y4)
|
||
XPoint *points;
|
||
int *pointi;
|
||
@@ -659,7 +725,7 @@
|
||
}
|
||
}
|
||
|
||
-
|
||
+void
|
||
DrawSpline (dw, v, n)
|
||
DviWidget dw;
|
||
int *v;
|
||
--- groff-1.18.1.1.orig/src/xditview/font.c
|
||
+++ groff-1.18.1.1/src/xditview/font.c
|
||
@@ -9,10 +9,16 @@
|
||
#include <X11/StringDefs.h>
|
||
#include <stdio.h>
|
||
#include <ctype.h>
|
||
+#include <stdlib.h>
|
||
#include "DviP.h"
|
||
#include "XFontName.h"
|
||
|
||
-static DisposeFontSizes();
|
||
+static void DisposeFontSizes();
|
||
+void DestroyFontMap();
|
||
+
|
||
+/* XFontName.c */
|
||
+extern Bool XParseFontName();
|
||
+extern Bool XFormatFontName();
|
||
|
||
static char *
|
||
savestr (s)
|
||
@@ -115,7 +121,7 @@
|
||
# define SizePosition 8
|
||
# define EncodingPosition 13
|
||
|
||
-static
|
||
+static int
|
||
ConvertFontNameToSize (n)
|
||
char *n;
|
||
{
|
||
@@ -191,7 +197,7 @@
|
||
return sizes;
|
||
}
|
||
|
||
-static
|
||
+static void
|
||
DisposeFontSizes (dw, fs)
|
||
DviWidget dw;
|
||
DviFontSizeList *fs;
|
||
@@ -263,6 +269,7 @@
|
||
return f;
|
||
}
|
||
|
||
+void
|
||
ForgetFonts (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -322,6 +329,7 @@
|
||
}
|
||
#endif
|
||
|
||
+void
|
||
ParseFontMap (dw)
|
||
DviWidget dw;
|
||
{
|
||
@@ -357,6 +365,7 @@
|
||
dw->dvi.font_map = fm;
|
||
}
|
||
|
||
+void
|
||
DestroyFontMap (font_map)
|
||
DviFontMap *font_map;
|
||
{
|
||
@@ -374,6 +383,7 @@
|
||
|
||
/* ARGSUSED */
|
||
|
||
+void
|
||
SetFontPosition (dw, position, dvi_name, extra)
|
||
DviWidget dw;
|
||
int position;
|
||
--- groff-1.18.1.1.orig/src/roff/troff/charinfo.h
|
||
+++ groff-1.18.1.1/src/roff/troff/charinfo.h
|
||
@@ -29,9 +29,16 @@
|
||
macro *mac;
|
||
unsigned char special_translation;
|
||
unsigned char hyphenation_code;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ unsigned short flags;
|
||
+#else
|
||
unsigned char flags;
|
||
+#endif
|
||
unsigned char ascii_code;
|
||
unsigned char asciify_code;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar wchar_code;
|
||
+#endif
|
||
char not_found;
|
||
char transparent_translate; // non-zero means translation applies
|
||
// to transparent throughput
|
||
@@ -47,6 +54,11 @@
|
||
OVERLAPS_VERTICALLY = 16,
|
||
TRANSPARENT = 32,
|
||
NUMBERED = 64
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ ,
|
||
+ DONT_BREAK_BEFORE = 0x100, // 256, pre kinsoku
|
||
+ DONT_BREAK_AFTER = 0x200 // 512, post kinsoku
|
||
+#endif
|
||
};
|
||
enum {
|
||
TRANSLATE_NONE,
|
||
@@ -74,7 +86,11 @@
|
||
int get_translation_input();
|
||
charinfo *get_translation(int = 0);
|
||
void set_translation(charinfo *, int, int);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ void set_flags(unsigned short);
|
||
+#else
|
||
void set_flags(unsigned char);
|
||
+#endif
|
||
void set_special_translation(int, int);
|
||
int get_special_translation(int = 0);
|
||
macro *set_macro(macro *, int = 0);
|
||
@@ -84,6 +100,12 @@
|
||
int get_number();
|
||
int numbered();
|
||
int is_fallback();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar get_wchar_code();
|
||
+ void set_wchar_code(wchar);
|
||
+ int cannot_break_before(); // pre kinsoku
|
||
+ int cannot_break_after(); // post kinsoku
|
||
+#endif
|
||
symbol *get_symbol();
|
||
};
|
||
|
||
@@ -131,6 +153,18 @@
|
||
return fallback;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+inline int charinfo::cannot_break_before()
|
||
+{
|
||
+ return flags & DONT_BREAK_BEFORE;
|
||
+}
|
||
+
|
||
+inline int charinfo::cannot_break_after()
|
||
+{
|
||
+ return flags & DONT_BREAK_AFTER;
|
||
+}
|
||
+#endif
|
||
+
|
||
inline charinfo *charinfo::get_translation(int transparent_throughput)
|
||
{
|
||
return (transparent_throughput && !transparent_translate
|
||
@@ -153,7 +187,18 @@
|
||
return (translate_input ? asciify_code : 0);
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+inline wchar charinfo::get_wchar_code()
|
||
+{
|
||
+ return wchar_code;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+inline void charinfo::set_flags(unsigned short c)
|
||
+#else
|
||
inline void charinfo::set_flags(unsigned char c)
|
||
+#endif
|
||
{
|
||
flags = c;
|
||
}
|
||
--- groff-1.18.1.1.orig/src/roff/troff/troff.h
|
||
+++ groff-1.18.1.1/src/roff/troff/troff.h
|
||
@@ -28,6 +28,7 @@
|
||
#include <stdlib.h>
|
||
#include <errno.h>
|
||
|
||
+#include "encoding.h"
|
||
#include "assert.h"
|
||
#include "color.h"
|
||
#include "device.h"
|
||
--- groff-1.18.1.1.orig/src/roff/troff/env.cc
|
||
+++ groff-1.18.1.1/src/roff/troff/env.cc
|
||
@@ -32,6 +32,7 @@
|
||
#include "charinfo.h"
|
||
#include "macropath.h"
|
||
#include "input.h"
|
||
+#include "font.h" // ENABLE_MULTIBYTE only?
|
||
#include <math.h>
|
||
|
||
symbol default_family("T");
|
||
@@ -264,6 +265,13 @@
|
||
void environment::add_char(charinfo *ci)
|
||
{
|
||
int s;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int fontno = get_font(); // current font #
|
||
+ int fontset_font = get_fontset_fontno(fontno, ci->get_wchar_code());
|
||
+ if (fontno >= 0 && fontno != fontset_font) {
|
||
+ change_curfont(fontset_font);
|
||
+ }
|
||
+#endif
|
||
if (interrupted)
|
||
;
|
||
// don't allow fields in dummy environments
|
||
@@ -286,11 +294,95 @@
|
||
else {
|
||
if (line == 0)
|
||
start_line();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ /*
|
||
+ * XXX: NEED REWRITE TO BE MORE GENERIC
|
||
+ * This code is based on jgroff
|
||
+ * about kerning between ASCII and EUC-JP
|
||
+ */
|
||
+ if (!ci->get_wchar_code()) {
|
||
+ /*
|
||
+ * This node is a ASCII character node.
|
||
+ */
|
||
+ if (!pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
|
||
+ /*
|
||
+ * Insert a little space node between EUC and ASCII.
|
||
+ */
|
||
+ word_space_node *ws;
|
||
+
|
||
+ if (ci->ends_sentence() || ci->transparent() || ci->cannot_break_before())
|
||
+ ws = new unbreakable_space_node(hwkern.to_units(), get_fill_color());
|
||
+ else
|
||
+ ws = new word_space_node(hwkern.to_units(),
|
||
+ get_fill_color(),
|
||
+ new width_list(env_space_width(this),
|
||
+ env_sentence_space_width(this)));
|
||
+ curenv->add_node(ws);
|
||
+ }
|
||
+ pre_char_is_ascii = 1;
|
||
+ pre_wchar_cannot_break_after = 0;
|
||
+ } else {
|
||
+ /*
|
||
+ * This node is a EUC charcater node.
|
||
+ */
|
||
+ if (!pre_char_is_ascii && line->get_node_type() == NODE_NEWLINE_SPACE) {
|
||
+ /*
|
||
+ * remove a newline-node.
|
||
+ */
|
||
+ node *ns_node = line;
|
||
+ line = line->next;
|
||
+ width_total -= ns_node->width();
|
||
+ space_total -= ns_node->nspaces();
|
||
+ delete ns_node;
|
||
+ }
|
||
+
|
||
+ if (!pre_wchar_cannot_break_after && !ci->cannot_break_before()) {
|
||
+ /*
|
||
+ * add a zero-width-space-node before EUC charcater node.
|
||
+ */
|
||
+ add_node(new kword_space_node(get_fill_color()));
|
||
+ met_with_kword_space = 1;
|
||
+ }
|
||
+ pre_wchar_cannot_break_after = ci->cannot_break_after();
|
||
+
|
||
+ if (pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
|
||
+ /*
|
||
+ * Insert a little space node between ASCII and EUC.
|
||
+ */
|
||
+ unbreakable_space_node *ws =
|
||
+ new unbreakable_space_node(hwkern.to_units(), get_fill_color());
|
||
+ curenv->add_node(ws);
|
||
+ }
|
||
+ pre_char_is_ascii = 0;
|
||
+
|
||
+ if (!vlower.is_zero()) {
|
||
+ /*
|
||
+ * Lower a EUC charcater node.
|
||
+ */
|
||
+ curenv->add_node(new vmotion_node(vlower.to_units(),
|
||
+ get_fill_color())); // lower
|
||
+ }
|
||
+ }
|
||
+#endif
|
||
if (ci != hyphen_indicator_char)
|
||
line = line->add_char(ci, this, &width_total, &space_total);
|
||
else
|
||
line = line->add_discretionary_hyphen();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ enable_wcharkern = 1;
|
||
+ if (!vlower.is_zero() && ci->get_wchar_code()) {
|
||
+ /*
|
||
+ * Raise a EUC charcater node.
|
||
+ */
|
||
+ curenv->add_node(new vmotion_node(-vlower.to_units(),
|
||
+ get_fill_color())); // raise
|
||
+ }
|
||
+#endif
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (fontset_font >= 0 && fontno != fontset_font)
|
||
+ change_curfont(fontno); /* restore saved font # */
|
||
+#endif
|
||
}
|
||
|
||
node *environment::make_char_node(charinfo *ci)
|
||
@@ -394,7 +486,11 @@
|
||
width_total += x;
|
||
return;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ add_node(new newline_space_node(x, get_fill_color())); // This node may be removed
|
||
+#else
|
||
add_node(new word_space_node(x, get_fill_color(), w));
|
||
+#endif
|
||
possibly_break_line(0, spread_flag);
|
||
spread_flag = 0;
|
||
}
|
||
@@ -480,6 +576,35 @@
|
||
warning(WARN_FONT, "bad font number");
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+void environment::change_curfont(symbol nm)
|
||
+{
|
||
+ int n = symbol_fontno(nm);
|
||
+ if (n < 0) {
|
||
+ n = next_available_font_position();
|
||
+ if (!mount_font(n, nm))
|
||
+ return;
|
||
+ }
|
||
+ fontno = n;
|
||
+}
|
||
+
|
||
+void environment::change_curfont(int n)
|
||
+{
|
||
+ if (is_good_fontno(n))
|
||
+ fontno = n;
|
||
+ else
|
||
+ error("bad font number");
|
||
+}
|
||
+
|
||
+void environment::set_encoding(symbol enc)
|
||
+{
|
||
+ if (enc.is_null() || enc.is_empty())
|
||
+ return;
|
||
+ select_input_encoding_handler(enc.contents());
|
||
+ select_output_encoding_handler(enc.contents());
|
||
+}
|
||
+#endif /* ENABLE_MULTIBYTE */
|
||
+
|
||
void environment::set_family(symbol fam)
|
||
{
|
||
if (interrupted)
|
||
@@ -649,6 +774,16 @@
|
||
control_char('.'),
|
||
no_break_control_char('\''),
|
||
hyphen_indicator_char(0)
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ ,
|
||
+ stretch_threshold(0),
|
||
+ pre_wchar_cannot_break_after(0),
|
||
+ pre_char_is_ascii(-1),
|
||
+ enable_wcharkern(0),
|
||
+ met_with_kword_space(0),
|
||
+ hwkern(font::wcharkern),
|
||
+ vlower(font::lowerwchar)
|
||
+#endif
|
||
{
|
||
prev_family = family = lookup_family(default_family);
|
||
prev_fontno = fontno = 1;
|
||
@@ -739,6 +874,16 @@
|
||
control_char(e->control_char),
|
||
no_break_control_char(e->no_break_control_char),
|
||
hyphen_indicator_char(e->hyphen_indicator_char)
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ ,
|
||
+ stretch_threshold(e->stretch_threshold),
|
||
+ pre_wchar_cannot_break_after(0),
|
||
+ pre_char_is_ascii(-1),
|
||
+ enable_wcharkern(0),
|
||
+ met_with_kword_space(0),
|
||
+ hwkern(font::wcharkern),
|
||
+ vlower(font::lowerwchar)
|
||
+#endif
|
||
{
|
||
}
|
||
|
||
@@ -1781,6 +1926,9 @@
|
||
target_text_length = line_length - saved_indent;
|
||
width_total = H0;
|
||
space_total = 0;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ enable_wcharkern = 0;
|
||
+#endif
|
||
}
|
||
|
||
hunits environment::get_hyphenation_space()
|
||
@@ -1819,6 +1967,23 @@
|
||
skip_line();
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+void stretch_threshold_request()
|
||
+{
|
||
+ int n;
|
||
+ if (has_arg() && get_integer(&n)) {
|
||
+ if (n < 0 || n > 100) {
|
||
+ warning(WARN_RANGE, "stretch threshold value %1 out of range", n);
|
||
+ } else {
|
||
+ curenv->stretch_threshold = n;
|
||
+ }
|
||
+ } else {
|
||
+ curenv->stretch_threshold = 0;
|
||
+ }
|
||
+ skip_line();
|
||
+}
|
||
+#endif
|
||
+
|
||
breakpoint *environment::choose_breakpoint()
|
||
{
|
||
hunits x = width_total;
|
||
@@ -2014,6 +2179,30 @@
|
||
// When a macro follows a paragraph in fill mode, the
|
||
// current line should not be empty.
|
||
|| (width_total - line->width()) > target_text_length)) {
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (met_with_kword_space) {
|
||
+ node *linep = line;
|
||
+ node *prep = 0;
|
||
+ while (linep->next) {
|
||
+ if (linep->next->get_node_type() == NODE_GLYPH)
|
||
+ prep = 0;
|
||
+ else if (linep->next->get_node_type() == NODE_KWORD_SPACE)
|
||
+ prep = linep;
|
||
+ linep = linep->next;
|
||
+ }
|
||
+ if (prep) {
|
||
+ /*
|
||
+ * delete a kword_space_node which is in the top of line.
|
||
+ */
|
||
+ linep = prep->next;
|
||
+ prep->next = linep->next;
|
||
+ width_total -= linep->width();
|
||
+ space_total -= linep->nspaces();
|
||
+ delete linep;
|
||
+ }
|
||
+ met_with_kword_space = 0;
|
||
+ }
|
||
+#endif
|
||
hyphenate_line(start_here);
|
||
breakpoint *bp = choose_breakpoint();
|
||
if (bp == 0)
|
||
@@ -2026,6 +2215,15 @@
|
||
bp->nd->split(bp->index, &pre, &post);
|
||
*ndp = post;
|
||
hunits extra_space_width = H0;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int sv_adjust_mode = adjust_mode;
|
||
+ if (stretch_threshold) {
|
||
+ int ratio = bp->width * 100 / target_text_length;
|
||
+ if (ratio < stretch_threshold) {
|
||
+ adjust_mode = ADJUST_LEFT;
|
||
+ }
|
||
+ }
|
||
+#endif
|
||
switch(adjust_mode) {
|
||
case ADJUST_BOTH:
|
||
if (bp->nspaces != 0)
|
||
@@ -2041,6 +2239,9 @@
|
||
saved_indent += target_text_length - bp->width;
|
||
break;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ adjust_mode = sv_adjust_mode;
|
||
+#endif
|
||
distribute_space(pre, bp->nspaces, extra_space_width);
|
||
hunits output_width = bp->width + extra_space_width;
|
||
input_line_start -= output_width;
|
||
@@ -3237,6 +3438,9 @@
|
||
init_request("hys", hyphenation_space_request);
|
||
init_request("hym", hyphenation_margin_request);
|
||
init_request("pvs", post_vertical_spacing);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ init_request("stt", stretch_threshold_request);
|
||
+#endif
|
||
init_int_env_reg(".f", get_font);
|
||
init_int_env_reg(".b", get_bold);
|
||
init_hunits_env_reg(".i", get_indent);
|
||
--- groff-1.18.1.1.orig/src/roff/troff/node.h
|
||
+++ groff-1.18.1.1/src/roff/troff/node.h
|
||
@@ -20,6 +20,8 @@
|
||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||
|
||
|
||
+#include "config.h"
|
||
+
|
||
struct hyphen_list {
|
||
unsigned char hyphen;
|
||
unsigned char breakable;
|
||
@@ -31,6 +33,9 @@
|
||
void hyphenate(hyphen_list *, unsigned);
|
||
|
||
enum hyphenation_type { HYPHEN_MIDDLE, HYPHEN_BOUNDARY, HYPHEN_INHIBIT };
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+enum node_type {NODE_GLYPH, NODE_KWORD_SPACE, NODE_NEWLINE_SPACE, NODE_ANOTHER};
|
||
+#endif
|
||
|
||
class ascii_output_file;
|
||
|
||
@@ -106,6 +111,9 @@
|
||
|
||
virtual int same(node *) = 0;
|
||
virtual const char *type() = 0;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ virtual node_type get_node_type();
|
||
+#endif
|
||
};
|
||
|
||
inline node::node()
|
||
@@ -212,6 +220,24 @@
|
||
int force_tprint();
|
||
};
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+class kword_space_node : public word_space_node {
|
||
+public:
|
||
+ kword_space_node(color *, node * = 0);
|
||
+ node *copy();
|
||
+ const char *type();
|
||
+ node_type get_node_type();
|
||
+};
|
||
+
|
||
+class newline_space_node : public word_space_node {
|
||
+public:
|
||
+ newline_space_node(hunits, color *, node * = 0);
|
||
+ node *copy();
|
||
+ const char *type();
|
||
+ node_type get_node_type();
|
||
+};
|
||
+#endif
|
||
+
|
||
class unbreakable_space_node : public word_space_node {
|
||
unbreakable_space_node(hunits, int, color *, node * = 0);
|
||
public:
|
||
@@ -538,6 +564,9 @@
|
||
node *copy_node_list(node *);
|
||
|
||
int get_bold_fontno(int f);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+int get_fontset_fontno(int f, wchar wc);
|
||
+#endif
|
||
|
||
inline hyphen_list::hyphen_list(unsigned char code, hyphen_list *p)
|
||
: hyphen(0), breakable(0), hyphenation_code(code), next(p)
|
||
@@ -595,3 +624,4 @@
|
||
|
||
font_family *lookup_family(symbol);
|
||
symbol get_font_name(int, environment *);
|
||
+
|
||
--- groff-1.18.1.1.orig/src/roff/troff/env.h
|
||
+++ groff-1.18.1.1/src/roff/troff/env.h
|
||
@@ -213,6 +213,15 @@
|
||
unsigned char control_char;
|
||
unsigned char no_break_control_char;
|
||
charinfo *hyphen_indicator_char;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int stretch_threshold;
|
||
+ int pre_wchar_cannot_break_after;
|
||
+ int pre_char_is_ascii;
|
||
+ int enable_wcharkern;
|
||
+ int met_with_kword_space;
|
||
+ hunits hwkern;
|
||
+ vunits vlower;
|
||
+#endif
|
||
|
||
environment(symbol);
|
||
environment(const environment *); // for temporary environment
|
||
@@ -279,6 +288,10 @@
|
||
void wrap_up_tab();
|
||
void set_font(int);
|
||
void set_font(symbol);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ void change_curfont(int);
|
||
+ void change_curfont(symbol);
|
||
+#endif
|
||
void set_family(symbol);
|
||
void set_size(int);
|
||
void set_char_height(int);
|
||
@@ -309,6 +322,9 @@
|
||
const char *get_point_size_string();
|
||
const char *get_requested_point_size_string();
|
||
void output_pending_lines();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ void set_encoding(symbol);
|
||
+#endif
|
||
|
||
friend void title_length();
|
||
friend void space_size();
|
||
@@ -347,6 +363,9 @@
|
||
#ifdef WIDOW_CONTROL
|
||
friend void widow_control_request();
|
||
#endif /* WIDOW_CONTROL */
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ friend void stretch_threshold_request();
|
||
+#endif
|
||
|
||
friend void do_divert(int append, int boxing);
|
||
};
|
||
--- groff-1.18.1.1.orig/src/roff/troff/input.cc
|
||
+++ groff-1.18.1.1/src/roff/troff/input.cc
|
||
@@ -35,6 +35,7 @@
|
||
#include "macropath.h"
|
||
#include "defs.h"
|
||
#include "input.h"
|
||
+#include "encoding.h" // XXX: ukai
|
||
|
||
// Needed for getpid() and isatty()
|
||
#include "posix.h"
|
||
@@ -89,6 +90,11 @@
|
||
charinfo *charset_table[256];
|
||
unsigned char hpf_code_table[256];
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+charinfo *wcharset_table_entry(wchar wc);
|
||
+
|
||
+#endif /* ENABLE_MULTIBYTE */
|
||
+
|
||
static int warning_mask = DEFAULT_WARNING_MASK;
|
||
static int inhibit_errors = 0;
|
||
static int ignoring = 0;
|
||
@@ -148,6 +154,20 @@
|
||
input_iterator *make_temp_iterator(const char *);
|
||
const char *input_char_description(int);
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+static void
|
||
+select_encoding()
|
||
+{
|
||
+ symbol e = get_long_name(1);
|
||
+ if (e.is_null()) {
|
||
+ skip_line();
|
||
+ return;
|
||
+ }
|
||
+ curenv->set_encoding(e);
|
||
+ skip_line();
|
||
+
|
||
+}
|
||
+#endif
|
||
|
||
void set_escape_char()
|
||
{
|
||
@@ -1524,6 +1544,19 @@
|
||
type = TOKEN_NEWLINE;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+class encoding_istream_input : public encoding_istream {
|
||
+private:
|
||
+ node **np;
|
||
+public:
|
||
+ encoding_istream_input(node **n) : np(n) {};
|
||
+ ~encoding_istream_input() {};
|
||
+ int getbyte() { return input_stack::get(np); };
|
||
+ int peekbyte() { return input_stack::peek(); };
|
||
+ void ungetbyte(int ch) { return; };
|
||
+};
|
||
+#endif
|
||
+
|
||
void token::next()
|
||
{
|
||
if (nd) {
|
||
@@ -1533,6 +1566,10 @@
|
||
units x;
|
||
for (;;) {
|
||
node *n;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ encoding_istream_input einput(&n);
|
||
+#endif
|
||
+
|
||
int cc = input_stack::get(&n);
|
||
if (cc != escape_char || escape_char == 0) {
|
||
handle_normal_char:
|
||
@@ -1686,8 +1723,22 @@
|
||
}
|
||
return;
|
||
default:
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wc = input_encoding->make_wchar(cc, einput);
|
||
+ if (is_wchar_code(wc)) {
|
||
+ type = TOKEN_WCHAR;
|
||
+ c = 0;
|
||
+ } else if (wc == ' ') {
|
||
+ type = TOKEN_SPACE;
|
||
+ c = cc;
|
||
+ } else {
|
||
+ type = TOKEN_CHAR;
|
||
+ c = cc;
|
||
+ }
|
||
+#else
|
||
type = TOKEN_CHAR;
|
||
c = cc;
|
||
+#endif
|
||
return;
|
||
}
|
||
}
|
||
@@ -2057,6 +2108,10 @@
|
||
switch(type) {
|
||
case TOKEN_CHAR:
|
||
return c == t.c;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ case TOKEN_WCHAR:
|
||
+ return wc == t.wc;
|
||
+#endif
|
||
case TOKEN_SPECIAL:
|
||
return nm == t.nm;
|
||
case TOKEN_NUMBERED_CHAR:
|
||
@@ -2563,6 +2618,27 @@
|
||
}
|
||
break;
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ case token::TOKEN_WCHAR:
|
||
+ {
|
||
+ wchar wch = tok.wc;
|
||
+
|
||
+ if (possibly_handle_first_page_transition())
|
||
+ ;
|
||
+ else {
|
||
+ for (;;) {
|
||
+ curenv->add_char(wcharset_table_entry(wch));
|
||
+ tok.next();
|
||
+ if (tok.type != token::TOKEN_WCHAR)
|
||
+ break;
|
||
+ wch = tok.wc;
|
||
+ }
|
||
+ suppress_next = 1;
|
||
+ bol = 0;
|
||
+ }
|
||
+ break;
|
||
+ }
|
||
+#endif /* ENABLE_MULTIBYTE */
|
||
case token::TOKEN_TRANSPARENT:
|
||
{
|
||
if (bol) {
|
||
@@ -6018,6 +6094,10 @@
|
||
{
|
||
if (type == TOKEN_CHAR)
|
||
return charset_table[c];
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (type == TOKEN_WCHAR)
|
||
+ return wcharset_table_entry(wc);
|
||
+#endif
|
||
if (type == TOKEN_SPECIAL)
|
||
return get_charinfo(nm);
|
||
if (type == TOKEN_NUMBERED_CHAR)
|
||
@@ -6070,6 +6150,11 @@
|
||
case TOKEN_CHAR:
|
||
*pp = (*pp)->add_char(charset_table[c], curenv, &w, &s);
|
||
break;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ case TOKEN_WCHAR:
|
||
+ *pp = (*pp)->add_char(wcharset_table_entry(wc), curenv, &w, &s);
|
||
+ break;
|
||
+#endif
|
||
case TOKEN_DUMMY:
|
||
n = new dummy_node;
|
||
break;
|
||
@@ -6142,6 +6227,11 @@
|
||
case TOKEN_CHAR:
|
||
curenv->add_char(charset_table[c]);
|
||
break;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ case TOKEN_WCHAR:
|
||
+ curenv->add_char(wcharset_table_entry(wc));
|
||
+ break;
|
||
+#endif
|
||
case TOKEN_DUMMY:
|
||
curenv->add_node(new dummy_node);
|
||
break;
|
||
@@ -6900,6 +6990,7 @@
|
||
if (!safer_flag)
|
||
mac_path = ¯o_path;
|
||
set_string(".T", device);
|
||
+ init_encoding_handler();
|
||
init_charset_table();
|
||
init_hpf_code_table();
|
||
if (!font::load_desc())
|
||
@@ -6924,6 +7015,9 @@
|
||
// In the DESC file a font name of 0 (zero) means leave this
|
||
// position empty.
|
||
if (strcmp(font::font_name_table[i], "0") != 0)
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ if (!font::is_on_demand(i))
|
||
+#endif
|
||
mount_font(j, symbol(font::font_name_table[i]));
|
||
curdiv = topdiv = new top_level_diversion;
|
||
if (nflag)
|
||
@@ -7081,6 +7175,9 @@
|
||
init_request("ecs", save_escape_char);
|
||
init_request("el", else_request);
|
||
init_request("em", end_macro);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ init_request("encoding", select_encoding);
|
||
+#endif
|
||
init_request("eo", escape_off);
|
||
init_request("ex", exit_request);
|
||
init_request("fchar", define_fallback_character);
|
||
@@ -7533,12 +7630,92 @@
|
||
|
||
dictionary charinfo_dictionary(501);
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+struct charinfo_list {
|
||
+ struct charinfo_list *next;
|
||
+ charinfo *ci;
|
||
+} *wcharset_table = NULL;
|
||
+
|
||
+/* XXX: use more efficient method? */
|
||
+static charinfo*
|
||
+lookup_wcharset_table(wchar wc)
|
||
+{
|
||
+ struct charinfo_list *cl;
|
||
+ for (cl = wcharset_table; cl; cl = cl->next) {
|
||
+ if (cl->ci && cl->ci->get_wchar_code() == wc)
|
||
+ return cl->ci;
|
||
+ }
|
||
+ return NULL;
|
||
+}
|
||
+
|
||
+static void
|
||
+add_wcharset_table(charinfo *ci)
|
||
+{
|
||
+ struct charinfo_list *cl = new struct charinfo_list;
|
||
+ cl->next = wcharset_table;
|
||
+ cl->ci = ci;
|
||
+ wcharset_table = cl;
|
||
+}
|
||
+
|
||
+charinfo *wcharset_table_entry(wchar wc)
|
||
+{
|
||
+ if (! is_wchar_code(wc))
|
||
+ return NULL;
|
||
+ charinfo *cp = lookup_wcharset_table(wc);
|
||
+ if (cp == NULL) {
|
||
+ int i = wchar_code(wc);
|
||
+ char buf[16];
|
||
+ if (i > 0x100)
|
||
+ sprintf(buf, "u%04X", i);
|
||
+ else {
|
||
+ cp = get_charinfo_by_number(i);
|
||
+ if (cp != NULL)
|
||
+ return cp;
|
||
+ sprintf(buf, "char%d", i); // ???
|
||
+ }
|
||
+ symbol nm = symbol(buf);
|
||
+ cp = new charinfo(nm);
|
||
+ (void)charinfo_dictionary.lookup(nm, cp);
|
||
+ cp->set_wchar_code(wc);
|
||
+ add_wcharset_table(cp);
|
||
+ }
|
||
+ return cp;
|
||
+}
|
||
+
|
||
+static charinfo *
|
||
+wchar_charinfo(symbol nm)
|
||
+{
|
||
+ const char *p = nm.contents();
|
||
+ if (*p != 'u') {
|
||
+ return NULL;
|
||
+ }
|
||
+ char *pp;
|
||
+ wchar wc = make_wchar(strtol(p + 1, &pp, 16));
|
||
+ if (pp < p + 5)
|
||
+ return NULL;
|
||
+ charinfo *cp = lookup_wcharset_table(wc);
|
||
+ if (cp)
|
||
+ return cp;
|
||
+ /* create on demand */
|
||
+ cp = new charinfo(nm);
|
||
+ cp->set_wchar_code(wc);
|
||
+ add_wcharset_table(cp);
|
||
+ return cp;
|
||
+}
|
||
+#endif
|
||
+
|
||
charinfo *get_charinfo(symbol nm)
|
||
{
|
||
void *p = charinfo_dictionary.lookup(nm);
|
||
if (p != 0)
|
||
return (charinfo *)p;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ charinfo *cp = wchar_charinfo(nm);
|
||
+ if (cp == NULL)
|
||
+ cp = new charinfo(nm);
|
||
+#else
|
||
charinfo *cp = new charinfo(nm);
|
||
+#endif
|
||
(void)charinfo_dictionary.lookup(nm, cp);
|
||
return cp;
|
||
}
|
||
@@ -7548,6 +7725,9 @@
|
||
charinfo::charinfo(symbol s)
|
||
: translation(0), mac(0), special_translation(TRANSLATE_NONE),
|
||
hyphenation_code(0), flags(0), ascii_code(0), asciify_code(0),
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar_code(0),
|
||
+#endif
|
||
not_found(0), transparent_translate(1), translate_input(0),
|
||
fallback(0), nm(s)
|
||
{
|
||
@@ -7592,6 +7772,14 @@
|
||
asciify_code = c;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+void charinfo::set_wchar_code(wchar wc)
|
||
+{
|
||
+ wchar_code = wc;
|
||
+ index = wc; /* XXX: wchar code == index */
|
||
+}
|
||
+#endif
|
||
+
|
||
macro *charinfo::set_macro(macro *m, int f)
|
||
{
|
||
macro *tem = mac;
|
||
@@ -7647,6 +7835,13 @@
|
||
int font::name_to_index(const char *nm)
|
||
{
|
||
charinfo *ci;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ int i = 1;
|
||
+ wchar wc = input_encoding->make_wchar(nm[0], (const unsigned char *)nm, &i);
|
||
+ if (is_wchar_code(wc)) {
|
||
+ ci = wcharset_table_entry(wc);
|
||
+ } else
|
||
+#endif
|
||
if (nm[1] == 0)
|
||
ci = charset_table[nm[0] & 0xff];
|
||
else if (nm[0] == '\\' && nm[2] == 0)
|
||
@@ -7663,3 +7858,10 @@
|
||
{
|
||
return get_charinfo_by_number(n)->get_index();
|
||
}
|
||
+
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+int font::wchar_index(wchar wc)
|
||
+{
|
||
+ return(wcharset_table_entry(wc)->get_index());
|
||
+}
|
||
+#endif
|
||
--- groff-1.18.1.1.orig/src/roff/troff/token.h
|
||
+++ groff-1.18.1.1/src/roff/troff/token.h
|
||
@@ -28,12 +28,18 @@
|
||
symbol nm;
|
||
node *nd;
|
||
unsigned char c;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar wc;
|
||
+#endif
|
||
int val;
|
||
units dim;
|
||
enum token_type {
|
||
TOKEN_BACKSPACE,
|
||
TOKEN_BEGIN_TRAP,
|
||
TOKEN_CHAR, // a normal printing character
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ TOKEN_WCHAR, // a multibyte character
|
||
+#endif
|
||
TOKEN_DUMMY, // \&
|
||
TOKEN_EMPTY, // this is the initial value
|
||
TOKEN_END_TRAP,
|
||
--- groff-1.18.1.1.orig/src/roff/troff/troff.man
|
||
+++ groff-1.18.1.1/src/roff/troff/troff.man
|
||
@@ -22,6 +22,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff-base/copyright.
|
||
+..
|
||
.
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
--- groff-1.18.1.1.orig/src/roff/troff/node.cc
|
||
+++ groff-1.18.1.1/src/roff/troff/node.cc
|
||
@@ -38,6 +38,7 @@
|
||
#include "input.h"
|
||
#include "div.h"
|
||
#include "geometry.h"
|
||
+#include "encoding.h"
|
||
|
||
#include "nonposix.h"
|
||
|
||
@@ -745,8 +746,15 @@
|
||
int current_font_number;
|
||
symbol *font_position;
|
||
int nfont_positions;
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ const char *current_encoding;
|
||
+#endif
|
||
enum { TBUF_SIZE = 256 };
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar tbuf[TBUF_SIZE];
|
||
+#else
|
||
char tbuf[TBUF_SIZE];
|
||
+#endif
|
||
int tbuf_len;
|
||
int tbuf_kern;
|
||
int begun_page;
|
||
@@ -756,6 +764,9 @@
|
||
void put(int i);
|
||
void put(unsigned int i);
|
||
void put(const char *s);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ void putw(const wchar wc);
|
||
+#endif
|
||
void set_font(tfont *tf);
|
||
void flush_tbuf();
|
||
public:
|
||
@@ -799,6 +810,13 @@
|
||
putc(c, fp);
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+inline void troff_output_file::putw(wchar wc)
|
||
+{
|
||
+ output_encoding->put_wchar(wc, fp);
|
||
+}
|
||
+#endif
|
||
+
|
||
inline void troff_output_file::put(unsigned char c)
|
||
{
|
||
putc(c, fp);
|
||
@@ -956,7 +974,11 @@
|
||
check_output_limits(hpos, vpos - current_size);
|
||
|
||
for (int i = 0; i < tbuf_len; i++)
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ putw(tbuf[i]);
|
||
+#else
|
||
put(tbuf[i]);
|
||
+#endif
|
||
put('\n');
|
||
tbuf_len = 0;
|
||
}
|
||
@@ -988,7 +1010,13 @@
|
||
flush_tbuf();
|
||
set_font(tf);
|
||
}
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar c = ci->get_wchar_code();
|
||
+ if (c == '\0')
|
||
+ c = ci->get_ascii_code();
|
||
+#else
|
||
char c = ci->get_ascii_code();
|
||
+#endif
|
||
if (c == '\0') {
|
||
flush_tbuf();
|
||
do_motion();
|
||
@@ -1014,7 +1042,8 @@
|
||
}
|
||
else if (tcommand_flag) {
|
||
if (tbuf_len > 0 && hpos == output_hpos && vpos == output_vpos
|
||
- && gcol == current_glyph_color && fcol == current_fill_color
|
||
+ && (!gcol || gcol == current_glyph_color)
|
||
+ && (!fcol || fcol == current_fill_color)
|
||
&& kk == tbuf_kern
|
||
&& tbuf_len < TBUF_SIZE) {
|
||
check_charinfo(tf, ci);
|
||
@@ -1039,17 +1068,26 @@
|
||
check_charinfo(tf, ci);
|
||
// check_output_limits(output_hpos, output_vpos);
|
||
if (vpos == output_vpos
|
||
- && gcol == current_glyph_color && fcol == current_fill_color
|
||
+ && (!gcol || gcol == current_glyph_color)
|
||
+ && (!fcol || fcol == current_fill_color)
|
||
&& n > 0 && n < 100 && !force_motion) {
|
||
put(char(n/10 + '0'));
|
||
put(char(n%10 + '0'));
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ putw(c);
|
||
+#else
|
||
put(c);
|
||
+#endif
|
||
output_hpos = hpos;
|
||
}
|
||
else {
|
||
do_motion();
|
||
put('c');
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ putw(c);
|
||
+#else
|
||
put(c);
|
||
+#endif
|
||
}
|
||
hpos += w.to_units() + kk;
|
||
}
|
||
@@ -1063,7 +1101,13 @@
|
||
return;
|
||
if (tf != current_tfont)
|
||
set_font(tf);
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ wchar c = ci->get_wchar_code();
|
||
+ if (c == '\0')
|
||
+ c = ci->get_ascii_code();
|
||
+#else
|
||
char c = ci->get_ascii_code();
|
||
+#endif
|
||
if (c == '\0') {
|
||
do_motion();
|
||
glyph_color(gcol);
|
||
@@ -1087,11 +1131,16 @@
|
||
else {
|
||
int n = hpos - output_hpos;
|
||
if (vpos == output_vpos
|
||
- && gcol == current_glyph_color && fcol == current_fill_color
|
||
+ && (!gcol || gcol == current_glyph_color)
|
||
+ && (!fcol || fcol == current_fill_color)
|
||
&& n > 0 && n < 100) {
|
||
put(char(n/10 + '0'));
|
||
put(char(n%10 + '0'));
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ putw(c);
|
||
+#else
|
||
put(c);
|
||
+#endif
|
||
output_hpos = hpos;
|
||
}
|
||
else {
|
||
@@ -1099,13 +1148,26 @@
|
||
glyph_color(gcol);
|
||
fill_color(fcol);
|
||
put('c');
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ putw(c);
|
||
+#else
|
||
put(c);
|
||
+#endif
|
||
}
|
||
}
|
||
}
|
||
|
||
void troff_output_file::set_font(tfont *tf)
|
||
{
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ /* XXX */
|
||
+ if (current_encoding != output_encoding->name()) {
|
||
+ put("x encoding ");
|
||
+ put(output_encoding->name());
|
||
+ put('\n');
|
||
+ current_encoding = output_encoding->name();
|
||
+ }
|
||
+#endif
|
||
if (current_tfont == tf)
|
||
return;
|
||
int n = tf->get_input_position();
|
||
@@ -1162,7 +1224,7 @@
|
||
|
||
void troff_output_file::fill_color(color *col)
|
||
{
|
||
- if ((current_fill_color == col) || !color_flag)
|
||
+ if (!col || current_fill_color == col || !color_flag)
|
||
return;
|
||
flush_tbuf();
|
||
put("DF");
|
||
@@ -1210,7 +1272,7 @@
|
||
|
||
void troff_output_file::glyph_color(color *col)
|
||
{
|
||
- if ((current_glyph_color == col) || !color_flag)
|
||
+ if (!col || current_glyph_color == col || !color_flag)
|
||
return;
|
||
flush_tbuf();
|
||
put("m");
|
||
@@ -1497,7 +1559,17 @@
|
||
put(' ');
|
||
put(vresolution);
|
||
put('\n');
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ current_encoding = output_encoding->name();
|
||
+ put("x init");
|
||
+ if (current_encoding && *current_encoding != '\0') {
|
||
+ put(' ');
|
||
+ put(current_encoding);
|
||
+ }
|
||
+ put('\n');
|
||
+#else
|
||
put("x init\n");
|
||
+#endif
|
||
}
|
||
|
||
/* output_file */
|
||
@@ -1777,6 +1849,9 @@
|
||
int same(node *);
|
||
const char *type();
|
||
int force_tprint();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ node_type get_node_type();
|
||
+#endif
|
||
};
|
||
|
||
glyph_node *glyph_node::free_list = 0;
|
||
@@ -1802,6 +1877,9 @@
|
||
int same(node *);
|
||
const char *type();
|
||
int force_tprint();
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+ node_type get_node_type();
|
||
+#endif
|
||
};
|
||
|
||
class kern_pair_node : public node {
|
||
@@ -5225,6 +5303,55 @@
|
||
return 0;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+kword_space_node::kword_space_node(color *c, node *x) : word_space_node(0, c, new width_list(0, 0), x)
|
||
+{}
|
||
+
|
||
+node *kword_space_node::copy()
|
||
+{
|
||
+ return new kword_space_node(col);
|
||
+}
|
||
+newline_space_node::newline_space_node(hunits d, color *c, node *x) : word_space_node(d, c, new width_list(0, 0), x)
|
||
+{}
|
||
+
|
||
+node *newline_space_node::copy()
|
||
+{
|
||
+ return new newline_space_node(n, col);
|
||
+}
|
||
+
|
||
+const char *kword_space_node::type()
|
||
+{
|
||
+ return "kword_space_node";
|
||
+}
|
||
+const char *newline_space_node::type()
|
||
+{
|
||
+ return "newline_space_node";
|
||
+}
|
||
+
|
||
+node_type node::get_node_type()
|
||
+{
|
||
+ return NODE_ANOTHER;
|
||
+}
|
||
+node_type glyph_node::get_node_type()
|
||
+{
|
||
+ return NODE_GLYPH;
|
||
+}
|
||
+
|
||
+node_type ligature_node::get_node_type()
|
||
+{
|
||
+ return NODE_ANOTHER;
|
||
+}
|
||
+
|
||
+node_type kword_space_node::get_node_type()
|
||
+{
|
||
+ return NODE_KWORD_SPACE;
|
||
+}
|
||
+node_type newline_space_node::get_node_type()
|
||
+{
|
||
+ return NODE_NEWLINE_SPACE;
|
||
+}
|
||
+#endif
|
||
+
|
||
int unbreakable_space_node::same(node *nd)
|
||
{
|
||
return n == ((unbreakable_space_node *)nd)->n
|
||
@@ -5625,6 +5752,28 @@
|
||
return 0;
|
||
}
|
||
|
||
+#ifdef ENABLE_MULTIBYTE
|
||
+int get_fontset_fontno(int n, wchar wc)
|
||
+{
|
||
+ if (n >= 0 && n < font_table_size && font_table[n] != 0) {
|
||
+ /* XXX: external_name should be used? */
|
||
+ int fn = font::get_fontset_font(font_table[n]->get_name().contents(), wc);
|
||
+ if (fn >= 0) {
|
||
+ symbol nm(font::font_name_table[fn]);
|
||
+ int nn = symbol_fontno(nm);
|
||
+ if (nn < 0) {
|
||
+ nn = next_available_font_position();
|
||
+ if (!mount_font(nn, nm)) {
|
||
+ return -1; /* XXX */
|
||
+ }
|
||
+ }
|
||
+ return nn;
|
||
+ }
|
||
+ }
|
||
+ return n;
|
||
+}
|
||
+#endif
|
||
+
|
||
hunits env_digit_width(environment *env)
|
||
{
|
||
node *n = make_glyph_node(charset_table['0'], env);
|
||
--- groff-1.18.1.1.orig/src/roff/nroff/nroff.sh
|
||
+++ groff-1.18.1.1/src/roff/nroff/nroff.sh
|
||
@@ -12,6 +12,8 @@
|
||
T=-Tlatin1 ;;
|
||
IBM-1047)
|
||
T=-Tcp1047 ;;
|
||
+ EUC-JP)
|
||
+ T=-Tnippon ;;
|
||
*)
|
||
case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
|
||
*.UTF-8)
|
||
@@ -20,6 +22,8 @@
|
||
T=-Tlatin1 ;;
|
||
*.IBM-1047)
|
||
T=-Tcp1047 ;;
|
||
+ ja_JP.ujis | ja_JP.eucJP)
|
||
+ T=-Tnippon ;;
|
||
*)
|
||
case "$LESSCHARSET" in
|
||
utf-8)
|
||
@@ -28,8 +32,10 @@
|
||
T=-Tlatin1 ;;
|
||
cp1047)
|
||
T=-Tcp1047 ;;
|
||
+ japanese)
|
||
+ T=-Tnippon ;;
|
||
*)
|
||
- T=-Tascii ;;
|
||
+ T=-Tascii8 ;;
|
||
esac ;;
|
||
esac ;;
|
||
esac
|
||
@@ -52,7 +58,7 @@
|
||
exit 1 ;;
|
||
-[iptSUC] | -[mrno]*)
|
||
opts="$opts $1" ;;
|
||
- -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047)
|
||
+ -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon)
|
||
T=$1 ;;
|
||
-T*)
|
||
# ignore other devices
|
||
--- groff-1.18.1.1.orig/src/roff/nroff/nroff.man
|
||
+++ groff-1.18.1.1/src/roff/nroff/nroff.man
|
||
@@ -53,8 +53,10 @@
|
||
command using groff.
|
||
Only
|
||
.BR ascii ,
|
||
+.BR ascii8 ,
|
||
.BR latin1 ,
|
||
.BR utf8 ,
|
||
+.BR nippon ,
|
||
and
|
||
.B cp1047
|
||
are valid arguments for the
|
||
--- groff-1.18.1.1.orig/src/roff/groff/groff.cc
|
||
+++ groff-1.18.1.1/src/roff/groff/groff.cc
|
||
@@ -107,6 +107,7 @@
|
||
program_name = argv[0];
|
||
static char stderr_buf[BUFSIZ];
|
||
setbuf(stderr, stderr_buf);
|
||
+ init_encoding_handler();
|
||
assert(NCOMMANDS <= MAX_COMMANDS);
|
||
string Pargs, Largs, Fargs;
|
||
int vflag = 0;
|
||
--- groff-1.18.1.1.orig/src/roff/groff/groff.man
|
||
+++ groff-1.18.1.1/src/roff/groff/groff.man
|
||
@@ -15,6 +15,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff-base/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|
||
@@ -118,7 +122,7 @@
|
||
.c --------------------------------------------------------------------
|
||
.c ShortOpt ([char [punct]])
|
||
.c
|
||
-.c `-c' somwhere in the text
|
||
+.c `-c' somewhere in the text
|
||
.c second arg is punctuation
|
||
.c
|
||
.de ShortOpt
|
||
@@ -130,7 +134,7 @@
|
||
.c --------------------------------------------------------------------
|
||
.c LongOpt ([name [punct]])
|
||
.c
|
||
-.c `--name' somwhere in the text
|
||
+.c `--name' somewhere in the text
|
||
.c second arg is punctuation
|
||
.c
|
||
.de LongOpt
|
||
@@ -314,7 +318,7 @@
|
||
.B groff
|
||
program allows to control the whole
|
||
.I groff
|
||
-system by comand line options.
|
||
+system by command line options.
|
||
.
|
||
This is a great simplification in comparison to the classical case (which
|
||
uses pipes only).
|
||
@@ -610,7 +614,7 @@
|
||
.
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
-.SS Tranparent Options
|
||
+.SS Transparent Options
|
||
.\" --------------------------------------------------------------------
|
||
.
|
||
The following options are transparently handed over to the formatter
|
||
@@ -695,7 +699,7 @@
|
||
is much easier than
|
||
.IR "classical roff" .
|
||
.
|
||
-This section gives an overview of the parts that consitute the groff
|
||
+This section gives an overview of the parts that constitute the groff
|
||
system.
|
||
.
|
||
It complements
|
||
@@ -948,6 +952,10 @@
|
||
Text output using the EBCDIC code page IBM cp1047 (e.g. OS/390 Unix).
|
||
.
|
||
.TP
|
||
+.B nippon
|
||
+Text output using the Japanese-EUC character set.
|
||
+.
|
||
+.TP
|
||
.B dvi
|
||
TeX DVI format.
|
||
.
|
||
@@ -956,6 +964,12 @@
|
||
HTML output.
|
||
.
|
||
.TP
|
||
+.B ascii8
|
||
+For typewriter-like devices. Unlike
|
||
+.BR ascii ,
|
||
+this device is 8 bit clean. This device is intended to be used
|
||
+for codesets other than ASCII and ISO-8859-1.
|
||
+.TP
|
||
.B latin1
|
||
Text output using the ISO Latin-1 (ISO 8859-1) character set; see
|
||
.BR iso_8859_1 (7).
|
||
@@ -1031,7 +1045,7 @@
|
||
.
|
||
.P
|
||
Today, most printing or drawing hardware is handled by the operating
|
||
-system, by device drivers, or by software interfaces, usally accepting
|
||
+system, by device drivers, or by software interfaces, usually accepting
|
||
PostScript.
|
||
.
|
||
Consequently, there isn't an urgent need for more hardware device
|
||
--- groff-1.18.1.1.orig/font/devX75/DESC
|
||
+++ groff-1.18.1.1/font/devX75/DESC
|
||
@@ -1,5 +1,17 @@
|
||
styles R I B BI
|
||
-fonts 6 0 0 0 0 0 S
|
||
+fonts 8 0 0 0 0 0 S M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset CB G 2E00..9FFF
|
||
+fontset HB G 2E00..9FFF
|
||
+fontset NB G 2E00..9FFF
|
||
+fontset TB G 2E00..9FFF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset CB G FF00..FFEF
|
||
+fontset HB G FF00..FFEF
|
||
+fontset NB G FF00..FFEF
|
||
+fontset TB G FF00..FFEF
|
||
+fontset - M FF00..FFEF
|
||
sizes 8 10 12 14 18 24 0
|
||
res 75
|
||
X11
|
||
--- groff-1.18.1.1.orig/font/devX75/M.proto
|
||
+++ groff-1.18.1.1/font/devX75/M.proto
|
||
@@ -0,0 +1,6 @@
|
||
+name M
|
||
+spacewidth 2
|
||
+charset
|
||
+u2E00..u9FFF 10 0
|
||
+uFF00..uFFEF 10 0
|
||
+
|
||
--- groff-1.18.1.1.orig/font/devX75/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devX75/Makefile.sub
|
||
@@ -1,2 +1,13 @@
|
||
DEV=X75
|
||
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
|
||
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
|
||
+CLEANADD=M G
|
||
+
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ @cat $(srcdir)/M.proto > M
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' M > G
|
||
--- groff-1.18.1.1.orig/font/devlbp/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devlbp/Makefile.sub
|
||
@@ -13,9 +13,9 @@
|
||
-rm -f DESC
|
||
cat $(srcdir)/DESC.in >>DESC
|
||
if test "$(PAGE)" = A4; then \
|
||
- echo "papersize a4" >>DESC; \
|
||
+ echo "papersize /etc/papersize a4" >>DESC; \
|
||
else \
|
||
- echo "papersize letter" >>DESC; \
|
||
+ echo "papersize /etc/papersize letter" >>DESC; \
|
||
fi
|
||
test -z '$(LBPPRINT)' || echo print '$(LBPPRINT)' >>DESC
|
||
|
||
--- groff-1.18.1.1.orig/font/devascii/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devascii/Makefile.sub
|
||
@@ -12,8 +12,8 @@
|
||
@-rm -f $@
|
||
@(charwidth=`expr $(RES) / $(CPI)` ; \
|
||
sed -e "s/^name [A-Z]*$$/name $@/" \
|
||
- -e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
|
||
- -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
|
||
+ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
|
||
+ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
|
||
-e "s/^internalname .*$$/internalname $@/" \
|
||
-e "/^internalname/s/BI/3/" \
|
||
-e "/^internalname/s/B/2/" \
|
||
--- groff-1.18.1.1.orig/font/devascii8/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devascii8/Makefile.sub
|
||
@@ -0,0 +1,31 @@
|
||
+DEV=ascii8
|
||
+FONTS=R I B BI
|
||
+DEVFILES=$(FONTS) DESC
|
||
+CLEANADD=$(FONTS) DESC
|
||
+
|
||
+RES=240
|
||
+CPI=10
|
||
+LPI=6
|
||
+
|
||
+$(FONTS): R.proto
|
||
+ @echo Making $@
|
||
+ @-rm -f $@
|
||
+ @(charwidth=`expr $(RES) / $(CPI)` ; \
|
||
+ sed -e "s/^name [A-Z]*$$/name $@/" \
|
||
+ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
|
||
+ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
|
||
+ -e "s/^internalname .*$$/internalname $@/" \
|
||
+ -e "/^internalname/s/BI/3/" \
|
||
+ -e "/^internalname/s/B/2/" \
|
||
+ -e "/^internalname/s/I/1/" \
|
||
+ -e "/^internalname .*[^ 0-9]/d" \
|
||
+ $(srcdir)/R.proto >$@)
|
||
+
|
||
+DESC: DESC.proto
|
||
+ @echo Making $@
|
||
+ @-rm -f $@
|
||
+ @sed -e "s/^res .*$$/res $(RES)/" \
|
||
+ -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
|
||
+ -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
|
||
+ -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
|
||
+ $(srcdir)/DESC.proto >$@
|
||
--- groff-1.18.1.1.orig/font/devascii8/R.proto
|
||
+++ groff-1.18.1.1/font/devascii8/R.proto
|
||
@@ -0,0 +1,262 @@
|
||
+name R
|
||
+internalname 0
|
||
+spacewidth 24
|
||
+charset
|
||
+! 24 0 0041
|
||
+" 24 0 0042
|
||
+dq "
|
||
+lq "
|
||
+rq "
|
||
+# 24 0 0043
|
||
+sh "
|
||
+$ 24 0 0044
|
||
+Do "
|
||
+% 24 0 0045
|
||
+& 24 0 0046
|
||
+' 24 0 0047
|
||
+aa "
|
||
+fm "
|
||
+aq "
|
||
+cq "
|
||
+( 24 0 0050
|
||
+) 24 0 0051
|
||
+* 24 0 0052
|
||
+** "
|
||
++ 24 0 0053
|
||
+pl "
|
||
+, 24 0 0054
|
||
+\- 24 0 0055
|
||
+hy "
|
||
+- "
|
||
+mi "
|
||
+en "
|
||
+. 24 0 0056
|
||
+/ 24 0 0057
|
||
+sl "
|
||
+f/ "
|
||
+0 24 0 0060
|
||
+1 24 0 0061
|
||
+2 24 0 0062
|
||
+3 24 0 0063
|
||
+4 24 0 0064
|
||
+5 24 0 0065
|
||
+6 24 0 0066
|
||
+7 24 0 0067
|
||
+8 24 0 0070
|
||
+9 24 0 0071
|
||
+: 24 0 0072
|
||
+; 24 0 0073
|
||
+< 24 0 0074
|
||
+la "
|
||
+fo "
|
||
+= 24 0 0075
|
||
+eq "
|
||
+> 24 0 0076
|
||
+ra "
|
||
+fc "
|
||
+? 24 0 0077
|
||
+@ 24 0 0100
|
||
+at "
|
||
+A 24 0 0101
|
||
+*A "
|
||
+B 24 0 0102
|
||
+*B "
|
||
+C 24 0 0103
|
||
+D 24 0 0104
|
||
+E 24 0 0105
|
||
+*E "
|
||
+F 24 0 0106
|
||
+G 24 0 0107
|
||
+H 24 0 0110
|
||
+*Y "
|
||
+I 24 0 0111
|
||
+*I "
|
||
+J 24 0 0112
|
||
+K 24 0 0113
|
||
+*K "
|
||
+L 24 0 0114
|
||
+M 24 0 0115
|
||
+*M "
|
||
+N 24 0 0116
|
||
+*N "
|
||
+O 24 0 0117
|
||
+ci "
|
||
+*O "
|
||
+P 24 0 0120
|
||
+*R "
|
||
+Q 24 0 0121
|
||
+R 24 0 0122
|
||
+S 24 0 0123
|
||
+T 24 0 0124
|
||
+*T "
|
||
+U 24 0 0125
|
||
+V 24 0 0126
|
||
+W 24 0 0127
|
||
+X 24 0 0130
|
||
+*X "
|
||
+Y 24 0 0131
|
||
+*U "
|
||
+Z 24 0 0132
|
||
+*Z "
|
||
+[ 24 0 0133
|
||
+lB "
|
||
+\ 24 0 0134
|
||
+rs "
|
||
+] 24 0 0135
|
||
+rB "
|
||
+a^ 24 0 0136
|
||
+^ "
|
||
+ha "
|
||
+_ 24 0 0137
|
||
+ru "
|
||
+ul "
|
||
+` 24 0 0140
|
||
+oq "
|
||
+ga "
|
||
+a 24 0 0141
|
||
+b 24 0 0142
|
||
+c 24 0 0143
|
||
+d 24 0 0144
|
||
+e 24 0 0145
|
||
+f 24 0 0146
|
||
+g 24 0 0147
|
||
+h 24 0 0150
|
||
+i 24 0 0151
|
||
+.i "
|
||
+j 24 0 0152
|
||
+k 24 0 0153
|
||
+l 24 0 0154
|
||
+m 24 0 0155
|
||
+n 24 0 0156
|
||
+o 24 0 0157
|
||
+*o "
|
||
+p 24 0 0160
|
||
+q 24 0 0161
|
||
+r 24 0 0162
|
||
+s 24 0 0163
|
||
+t 24 0 0164
|
||
+u 24 0 0165
|
||
+v 24 0 0166
|
||
+w 24 0 0167
|
||
+x 24 0 0170
|
||
+mu "
|
||
+y 24 0 0171
|
||
+z 24 0 0172
|
||
+lC 24 0 0173
|
||
+{ "
|
||
+ba 24 0 0174
|
||
+or "
|
||
+bv "
|
||
+br "
|
||
+| "
|
||
+lb "
|
||
+lc "
|
||
+lf "
|
||
+lk "
|
||
+lt "
|
||
+rb "
|
||
+rc "
|
||
+rf "
|
||
+rk "
|
||
+rt "
|
||
+rC 24 0 0175
|
||
+} "
|
||
+a~ 24 0 0176
|
||
+~ "
|
||
+ap "
|
||
+ti "
|
||
+char161 24 0 0241
|
||
+char162 24 0 0242
|
||
+char163 24 0 0243
|
||
+char164 24 0 0244
|
||
+char165 24 0 0245
|
||
+char166 24 0 0246
|
||
+char167 24 0 0247
|
||
+char168 24 0 0250
|
||
+char169 24 0 0251
|
||
+char170 24 0 0252
|
||
+char171 24 0 0253
|
||
+char172 24 0 0254
|
||
+char173 24 0 0255
|
||
+char174 24 0 0256
|
||
+char175 24 0 0257
|
||
+char176 24 0 0260
|
||
+char177 24 0 0261
|
||
+char178 24 0 0262
|
||
+char179 24 0 0263
|
||
+char180 24 0 0264
|
||
+char181 24 0 0265
|
||
+char182 24 0 0266
|
||
+char183 24 0 0267
|
||
+char184 24 0 0270
|
||
+char185 24 0 0271
|
||
+char186 24 0 0272
|
||
+char187 24 0 0273
|
||
+char188 24 0 0274
|
||
+char189 24 0 0275
|
||
+char190 24 0 0276
|
||
+char191 24 0 0277
|
||
+char192 24 0 0300
|
||
+char193 24 0 0301
|
||
+char194 24 0 0302
|
||
+char195 24 0 0303
|
||
+char196 24 0 0304
|
||
+char197 24 0 0305
|
||
+char198 24 0 0306
|
||
+char199 24 0 0307
|
||
+char200 24 0 0310
|
||
+char201 24 0 0311
|
||
+char202 24 0 0312
|
||
+char203 24 0 0313
|
||
+char204 24 0 0314
|
||
+char205 24 0 0315
|
||
+char206 24 0 0316
|
||
+char207 24 0 0317
|
||
+char208 24 0 0320
|
||
+char209 24 0 0321
|
||
+char210 24 0 0322
|
||
+char211 24 0 0323
|
||
+char212 24 0 0324
|
||
+char213 24 0 0325
|
||
+char214 24 0 0326
|
||
+char215 24 0 0327
|
||
+char216 24 0 0330
|
||
+char217 24 0 0331
|
||
+char218 24 0 0332
|
||
+char219 24 0 0333
|
||
+char220 24 0 0334
|
||
+char221 24 0 0335
|
||
+char222 24 0 0336
|
||
+char223 24 0 0337
|
||
+char224 24 0 0340
|
||
+char225 24 0 0341
|
||
+char226 24 0 0342
|
||
+char227 24 0 0343
|
||
+char228 24 0 0344
|
||
+char229 24 0 0345
|
||
+char230 24 0 0346
|
||
+char231 24 0 0347
|
||
+char232 24 0 0350
|
||
+char233 24 0 0351
|
||
+char234 24 0 0352
|
||
+char235 24 0 0353
|
||
+char236 24 0 0354
|
||
+char237 24 0 0355
|
||
+char238 24 0 0356
|
||
+char239 24 0 0357
|
||
+char240 24 0 0360
|
||
+char241 24 0 0361
|
||
+char242 24 0 0362
|
||
+char243 24 0 0363
|
||
+char244 24 0 0364
|
||
+char245 24 0 0365
|
||
+char246 24 0 0366
|
||
+char247 24 0 0367
|
||
+char248 24 0 0370
|
||
+char249 24 0 0371
|
||
+char250 24 0 0372
|
||
+char251 24 0 0373
|
||
+char252 24 0 0374
|
||
+char253 24 0 0375
|
||
+char254 24 0 0376
|
||
+char255 24 0 0377
|
||
--- groff-1.18.1.1.orig/font/devascii8/DESC.proto
|
||
+++ groff-1.18.1.1/font/devascii8/DESC.proto
|
||
@@ -0,0 +1,8 @@
|
||
+res 240
|
||
+hor 24
|
||
+vert 40
|
||
+unitwidth 10
|
||
+sizes 10 0
|
||
+fonts 4 R I B BI
|
||
+tcommand
|
||
+postpro grotty
|
||
--- groff-1.18.1.1.orig/font/devX100/DESC
|
||
+++ groff-1.18.1.1/font/devX100/DESC
|
||
@@ -1,5 +1,17 @@
|
||
styles R I B BI
|
||
-fonts 6 0 0 0 0 0 S
|
||
+fonts 8 0 0 0 0 0 S M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset CB G 2E00..9FFF
|
||
+fontset HB G 2E00..9FFF
|
||
+fontset NB G 2E00..9FFF
|
||
+fontset TB G 2E00..9FFF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset CB G FF00..FFEF
|
||
+fontset HB G FF00..FFEF
|
||
+fontset NB G FF00..FFEF
|
||
+fontset TB G FF00..FFEF
|
||
+fontset - M FF00..FFEF
|
||
sizes 8 10 12 14 18 24 0
|
||
res 100
|
||
X11
|
||
--- groff-1.18.1.1.orig/font/devX100/M.proto
|
||
+++ groff-1.18.1.1/font/devX100/M.proto
|
||
@@ -0,0 +1,5 @@
|
||
+name M
|
||
+spacewidth 3
|
||
+charset
|
||
+u2E00..u9FFF 20 0
|
||
+uFF00..uFFEF 20 0
|
||
--- groff-1.18.1.1.orig/font/devX100/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devX100/Makefile.sub
|
||
@@ -1,2 +1,13 @@
|
||
DEV=X100
|
||
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
|
||
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
|
||
+CLEANADD=M G
|
||
+
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ @cat $(srcdir)/M.proto > M
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' M > G
|
||
--- groff-1.18.1.1.orig/font/devX100-12/DESC
|
||
+++ groff-1.18.1.1/font/devX100-12/DESC
|
||
@@ -1,5 +1,17 @@
|
||
styles R I B BI
|
||
-fonts 6 0 0 0 0 0 S
|
||
+fonts 8 0 0 0 0 0 S M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset CB G 2E00..9FFF
|
||
+fontset HB G 2E00..9FFF
|
||
+fontset NB G 2E00..9FFF
|
||
+fontset TB G 2E00..9FFF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset CB G FF00..FFEF
|
||
+fontset HB G FF00..FFEF
|
||
+fontset NB G FF00..FFEF
|
||
+fontset TB G FF00..FFEF
|
||
+fontset - M FF00..FFEF
|
||
sizes 8 10 12 14 18 24 0
|
||
res 100
|
||
X11
|
||
--- groff-1.18.1.1.orig/font/devX100-12/M.proto
|
||
+++ groff-1.18.1.1/font/devX100-12/M.proto
|
||
@@ -0,0 +1,5 @@
|
||
+name M
|
||
+spacewidth 4
|
||
+charset
|
||
+u2E00..u9FFF 20 0
|
||
+uFF00..uFFEF 20 0
|
||
--- groff-1.18.1.1.orig/font/devX100-12/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devX100-12/Makefile.sub
|
||
@@ -1,2 +1,14 @@
|
||
DEV=X100-12
|
||
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
|
||
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
|
||
+CLEANADD=M G
|
||
+
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ @cat $(srcdir)/M.proto > M
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' M > G
|
||
+
|
||
--- groff-1.18.1.1.orig/font/devlj4/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devlj4/Makefile.sub
|
||
@@ -22,9 +22,9 @@
|
||
echo "unitwidth `expr 7620000 / $(LJ4RES)`" >>DESC
|
||
cat $(srcdir)/DESC.in >>DESC
|
||
if test "$(PAGE)" = A4; then \
|
||
- echo "papersize a4" >>DESC; \
|
||
+ echo "papersize /etc/papersize a4" >>DESC; \
|
||
else \
|
||
- echo "papersize letter" >>DESC; \
|
||
+ echo "papersize /etc/papersize letter" >>DESC; \
|
||
fi
|
||
test -z '$(LJ4PRINT)' || echo print '$(LJ4PRINT)' >>DESC
|
||
|
||
--- groff-1.18.1.1.orig/font/devnippon/M.proto
|
||
+++ groff-1.18.1.1/font/devnippon/M.proto
|
||
@@ -0,0 +1,6 @@
|
||
+name M
|
||
+internalname 4
|
||
+spacewidth 48
|
||
+charset
|
||
+u2E00..u9FFF 48 0
|
||
+uFF00..uFFEF 48 0
|
||
--- groff-1.18.1.1.orig/font/devnippon/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devnippon/Makefile.sub
|
||
@@ -0,0 +1,48 @@
|
||
+DEV=nippon
|
||
+FONTS=R I B BI
|
||
+WFONTS=M G
|
||
+ALLFONTS=$(FONTS) $(WFONTS)
|
||
+DEVFILES=$(ALLFONTS) DESC
|
||
+CLEANADD=$(ALLFONTS) DESC
|
||
+
|
||
+RES=240
|
||
+CPI=10
|
||
+LPI=6
|
||
+
|
||
+$(FONTS): R.proto
|
||
+ @echo Making $@
|
||
+ @-rm -f $@
|
||
+ @(charwidth=`expr $(RES) / $(CPI)` ; \
|
||
+ sed -e "s/^name [A-Z]*$$/name $@/" \
|
||
+ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
|
||
+ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
|
||
+ -e "s/^internalname .*$$/internalname $@/" \
|
||
+ -e "/^internalname/s/BI/3/" \
|
||
+ -e "/^internalname/s/B/2/" \
|
||
+ -e "/^internalname/s/I/1/" \
|
||
+ -e "/^internalname .*[^ 0-9]/d" \
|
||
+ $(srcdir)/R.proto >$@)
|
||
+
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ @(wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
|
||
+ spacewidth=`expr $(RES) / $(CPI)` ; \
|
||
+ sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
|
||
+ -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
|
||
+ $(srcdir)/M.proto > $@)
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' \
|
||
+ -e 's/internalname 4/internalname 5/' M > G
|
||
+
|
||
+DESC: DESC.proto
|
||
+ @echo Making $@
|
||
+ @-rm -f $@
|
||
+ @sed -e "s/^res .*$$/res $(RES)/" \
|
||
+ -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
|
||
+ -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
|
||
+ -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
|
||
+ $(srcdir)/DESC.proto >$@
|
||
--- groff-1.18.1.1.orig/font/devnippon/R.proto
|
||
+++ groff-1.18.1.1/font/devnippon/R.proto
|
||
@@ -0,0 +1,167 @@
|
||
+name R
|
||
+internalname 0
|
||
+spacewidth 24
|
||
+charset
|
||
+! 24 0 0041
|
||
+" 24 0 0042
|
||
+dq "
|
||
+lq "
|
||
+rq "
|
||
+# 24 0 0043
|
||
+sh "
|
||
+$ 24 0 0044
|
||
+Do "
|
||
+% 24 0 0045
|
||
+& 24 0 0046
|
||
+' 24 0 0047
|
||
+aa "
|
||
+fm "
|
||
+aq "
|
||
+cq "
|
||
+( 24 0 0050
|
||
+) 24 0 0051
|
||
+* 24 0 0052
|
||
+** "
|
||
++ 24 0 0053
|
||
+pl "
|
||
+, 24 0 0054
|
||
+\- 24 0 0055
|
||
+hy "
|
||
+- "
|
||
+mi "
|
||
+en "
|
||
+. 24 0 0056
|
||
+/ 24 0 0057
|
||
+sl "
|
||
+f/ "
|
||
+0 24 0 0060
|
||
+1 24 0 0061
|
||
+2 24 0 0062
|
||
+3 24 0 0063
|
||
+4 24 0 0064
|
||
+5 24 0 0065
|
||
+6 24 0 0066
|
||
+7 24 0 0067
|
||
+8 24 0 0070
|
||
+9 24 0 0071
|
||
+: 24 0 0072
|
||
+; 24 0 0073
|
||
+< 24 0 0074
|
||
+la "
|
||
+fo "
|
||
+= 24 0 0075
|
||
+eq "
|
||
+> 24 0 0076
|
||
+ra "
|
||
+fc "
|
||
+? 24 0 0077
|
||
+@ 24 0 0100
|
||
+at "
|
||
+A 24 0 0101
|
||
+*A "
|
||
+B 24 0 0102
|
||
+*B "
|
||
+C 24 0 0103
|
||
+D 24 0 0104
|
||
+E 24 0 0105
|
||
+*E "
|
||
+F 24 0 0106
|
||
+G 24 0 0107
|
||
+H 24 0 0110
|
||
+*Y "
|
||
+I 24 0 0111
|
||
+*I "
|
||
+J 24 0 0112
|
||
+K 24 0 0113
|
||
+*K "
|
||
+L 24 0 0114
|
||
+M 24 0 0115
|
||
+*M "
|
||
+N 24 0 0116
|
||
+*N "
|
||
+O 24 0 0117
|
||
+ci "
|
||
+*O "
|
||
+P 24 0 0120
|
||
+*R "
|
||
+Q 24 0 0121
|
||
+R 24 0 0122
|
||
+S 24 0 0123
|
||
+T 24 0 0124
|
||
+*T "
|
||
+U 24 0 0125
|
||
+V 24 0 0126
|
||
+W 24 0 0127
|
||
+X 24 0 0130
|
||
+*X "
|
||
+Y 24 0 0131
|
||
+*U "
|
||
+Z 24 0 0132
|
||
+*Z "
|
||
+[ 24 0 0133
|
||
+lB "
|
||
+\ 24 0 0134
|
||
+rs "
|
||
+] 24 0 0135
|
||
+rB "
|
||
+a^ 24 0 0136
|
||
+^ "
|
||
+ha "
|
||
+_ 24 0 0137
|
||
+ru "
|
||
+ul "
|
||
+` 24 0 0140
|
||
+oq "
|
||
+ga "
|
||
+a 24 0 0141
|
||
+b 24 0 0142
|
||
+c 24 0 0143
|
||
+d 24 0 0144
|
||
+e 24 0 0145
|
||
+f 24 0 0146
|
||
+g 24 0 0147
|
||
+h 24 0 0150
|
||
+i 24 0 0151
|
||
+.i "
|
||
+j 24 0 0152
|
||
+k 24 0 0153
|
||
+l 24 0 0154
|
||
+m 24 0 0155
|
||
+n 24 0 0156
|
||
+o 24 0 0157
|
||
+*o "
|
||
+p 24 0 0160
|
||
+q 24 0 0161
|
||
+r 24 0 0162
|
||
+s 24 0 0163
|
||
+t 24 0 0164
|
||
+u 24 0 0165
|
||
+v 24 0 0166
|
||
+w 24 0 0167
|
||
+x 24 0 0170
|
||
+mu "
|
||
+y 24 0 0171
|
||
+z 24 0 0172
|
||
+lC 24 0 0173
|
||
+{ "
|
||
+ba 24 0 0174
|
||
+or "
|
||
+bv "
|
||
+br "
|
||
+| "
|
||
+lb "
|
||
+lc "
|
||
+lf "
|
||
+lk "
|
||
+lt "
|
||
+rb "
|
||
+rc "
|
||
+rf "
|
||
+rk "
|
||
+rt "
|
||
+rC 24 0 0175
|
||
+} "
|
||
+a~ 24 0 0176
|
||
+~ "
|
||
+ap "
|
||
+ti "
|
||
--- groff-1.18.1.1.orig/font/devnippon/DESC.proto
|
||
+++ groff-1.18.1.1/font/devnippon/DESC.proto
|
||
@@ -0,0 +1,12 @@
|
||
+res 240
|
||
+hor 24
|
||
+vert 40
|
||
+unitwidth 10
|
||
+sizes 10 0
|
||
+fonts 6 R I B BI M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset - M FF00..FFEF
|
||
+tcommand
|
||
+postpro grotty
|
||
--- groff-1.18.1.1.orig/font/devps/M.proto
|
||
+++ groff-1.18.1.1/font/devps/M.proto
|
||
@@ -0,0 +1,9 @@
|
||
+name M
|
||
+internalname Ryumin-Light-EUC-H
|
||
+spacewidth 250
|
||
+encodingname EUC-JP
|
||
+charset
|
||
+u2E00..u9FFF 1000 3
|
||
+uFF00..uFF5F 1000 3
|
||
+uFF60..uFF9F 500 3
|
||
+uFFA0..uFFEF 1000 3
|
||
--- groff-1.18.1.1.orig/font/devps/DESC.in
|
||
+++ groff-1.18.1.1/font/devps/DESC.in
|
||
@@ -1,11 +1,33 @@
|
||
res 72000
|
||
hor 1
|
||
vert 1
|
||
+lowerwchar 300
|
||
+wcharkern 400
|
||
sizescale 1000
|
||
unitwidth 1000
|
||
sizes 1000-10000000 0
|
||
styles R I B BI
|
||
family T
|
||
-fonts 9 0 0 0 0 0 SS S ZD ZDR
|
||
+fonts 11 0 0 0 0 0 SS S ZD ZDR M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset AB G 2E00..9FFF
|
||
+fontset BMB G 2E00..9FFF
|
||
+fontset CB G 2E00..9FFF
|
||
+fontset HB G 2E00..9FFF
|
||
+fontset HNB G 2E00..9FFF
|
||
+fontset NB G 2E00..9FFF
|
||
+fontset PB G 2E00..9FFF
|
||
+fontset TB G 2E00..9FFF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset AB G FF00..FFEF
|
||
+fontset BMB G FF00..FFEF
|
||
+fontset CB G FF00..FFEF
|
||
+fontset HB G FF00..FFEF
|
||
+fontset HNB G FF00..FFEF
|
||
+fontset NB G FF00..FFEF
|
||
+fontset PB G FF00..FFEF
|
||
+fontset TB G FF00..FFEF
|
||
+fontset - M FF00..FFEF
|
||
tcommand
|
||
postpro grops
|
||
--- groff-1.18.1.1.orig/font/devps/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devps/Makefile.sub
|
||
@@ -2,23 +2,23 @@
|
||
DISTFILES=text.enc download \
|
||
S ZD ZDR SS AB ABI AI AR BMB BMBI BMI BMR \
|
||
CB CBI CI CR HB HBI HI HR HNB HNBI HNI HNR \
|
||
- NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI
|
||
+ NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI M G
|
||
PSFILES=prologue symbolsl.pfa zapfdr.pfa
|
||
DEVGENFILES=generate/Makefile generate/afmname generate/dingbats.map \
|
||
generate/dingbats.rmap generate/lgreekmap generate/symbol.sed \
|
||
generate/symbolchars generate/symbolsl.afm generate/textmap
|
||
DEVFILES=DESC $(PSFILES) $(DISTFILES) $(DEVGENFILES)
|
||
|
||
-CLEANADD=DESC $(PSFILES)
|
||
+CLEANADD=DESC $(PSFILES) M G
|
||
|
||
DESC: DESC.in
|
||
-rm -f DESC
|
||
cat $(srcdir)/DESC.in >DESC
|
||
echo broken $(BROKEN_SPOOLER_FLAGS) >>DESC
|
||
if test "$(PAGE)" = A4; then \
|
||
- echo "papersize a4" >>DESC; \
|
||
+ echo "papersize /etc/papersize a4" >>DESC; \
|
||
else \
|
||
- echo "papersize letter" >>DESC; \
|
||
+ echo "papersize /etc/papersize letter" >>DESC; \
|
||
fi
|
||
test -z '$(PSPRINT)' || echo print '$(PSPRINT)' >>DESC
|
||
|
||
@@ -33,3 +33,14 @@
|
||
$(PSFILES):
|
||
-rm -f $@
|
||
sed -f $(srcdir)/psstrip.sed $? >$@
|
||
+
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ @cp M.proto M
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' \
|
||
+ -e 's/internalname Ryumin-Light-EUC-H/internalname GothicBBB-Medium-EUC-H/' M > G
|
||
--- groff-1.18.1.1.orig/font/devutf8/M.proto
|
||
+++ groff-1.18.1.1/font/devutf8/M.proto
|
||
@@ -0,0 +1,6 @@
|
||
+name M
|
||
+internalname 4
|
||
+spacewidth 48
|
||
+charset
|
||
+u2E00..u9FFF 48 0
|
||
+uFF00..uFFEF 48 0
|
||
--- groff-1.18.1.1.orig/font/devutf8/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devutf8/Makefile.sub
|
||
@@ -1,7 +1,8 @@
|
||
DEV=utf8
|
||
FONTS=R I B BI
|
||
-DEVFILES=$(FONTS) DESC
|
||
-CLEANADD=$(FONTS) DESC
|
||
+WFONTS=M G
|
||
+DEVFILES=$(FONTS) $(WFONTS) DESC
|
||
+CLEANADD=$(FONTS) $(WFONTS) DESC
|
||
|
||
RES=240
|
||
CPI=10
|
||
@@ -12,8 +13,8 @@
|
||
@-rm -f $@
|
||
@(charwidth=`expr $(RES) / $(CPI)` ; \
|
||
sed -e "s/^name [A-Z]*$$/name $@/" \
|
||
- -e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
|
||
- -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
|
||
+ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
|
||
+ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
|
||
-e "s/^internalname .*$$/internalname $@/" \
|
||
-e "/^internalname/s/BI/3/" \
|
||
-e "/^internalname/s/B/2/" \
|
||
@@ -21,12 +22,27 @@
|
||
-e "/^internalname .*[^ 0-9]/d" \
|
||
$(srcdir)/R.proto >$@)
|
||
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ (wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
|
||
+ spacewidth=`expr $(RES) / $(CPI)` ; \
|
||
+ sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
|
||
+ -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
|
||
+ $(srcdir)/M.proto > $@)
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' \
|
||
+ -e 's/internalname 4/internalname 5/' M > G
|
||
+
|
||
DESC: DESC.proto
|
||
@echo Making $@
|
||
@-rm -f $@
|
||
@sed -e "s/^res .*$$/res $(RES)/" \
|
||
-e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
|
||
-e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
|
||
- -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
|
||
+ -e "s/^fonts .*$$/fonts `set $(FONTS) $(WFONTS); echo $$#` $(FONTS) $(WFONTS)/" \
|
||
$(srcdir)/DESC.proto >$@
|
||
|
||
--- groff-1.18.1.1.orig/font/devutf8/DESC.proto
|
||
+++ groff-1.18.1.1/font/devutf8/DESC.proto
|
||
@@ -3,6 +3,10 @@
|
||
vert 40
|
||
unitwidth 10
|
||
sizes 10 0
|
||
-fonts 4 R I B BI
|
||
+fonts 6 R I B BI M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset - M FF00..FFEF
|
||
tcommand
|
||
postpro grotty
|
||
--- groff-1.18.1.1.orig/font/devhtml/M.proto
|
||
+++ groff-1.18.1.1/font/devhtml/M.proto
|
||
@@ -0,0 +1,5 @@
|
||
+name M
|
||
+spacewidth 16
|
||
+charset
|
||
+u2E00..u9FFF 16,14,2 0
|
||
+uFF00..uFFEF 16,14,2 0
|
||
--- groff-1.18.1.1.orig/font/devhtml/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devhtml/Makefile.sub
|
||
@@ -1,8 +1,10 @@
|
||
DEV=html
|
||
PROTOFONTS=R I B BI CR CI CB CBI
|
||
FONTS=$(PROTOFONTS) S
|
||
-DEVFILES=$(FONTS) DESC
|
||
-CLEANADD=$(FONTS) DESC
|
||
+WFONTS=M G
|
||
+ALLFONTS=$(FONTS) $(WFONTS)
|
||
+DEVFILES=$(ALLFONTS) DESC
|
||
+CLEANADD=$(ALLFONTS) DESC
|
||
|
||
RES=240
|
||
CPI=10
|
||
@@ -13,8 +15,8 @@
|
||
@-rm -f $@
|
||
@(charwidth=`expr $(RES) / $(CPI)` ; \
|
||
sed -e "s/^name [A-Z]*$$/name $@/" \
|
||
- -e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
|
||
- -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
|
||
+ -e "s/^\\([^ ]*\\) [0-9][0-9]* /\\1 $$charwidth /" \
|
||
+ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
|
||
-e "s/^internalname .*$$/internalname $@/" \
|
||
-e "/^internalname/s/CR/4/" \
|
||
-e "/^internalname/s/BI/3/" \
|
||
@@ -29,6 +31,19 @@
|
||
@sed -e "s/^res .*$$/res $(RES)/" \
|
||
-e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
|
||
-e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
|
||
- -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
|
||
+ -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
|
||
$(srcdir)/DESC.proto >$@
|
||
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ @(wcharwidth=`expr $(RES) / $(CPI) \* 2`; \
|
||
+ spacewidth=`expr $(RES) / $(CPI)`; \
|
||
+ sed -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
|
||
+ -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
|
||
+ $(srcdir)/M.proto > $@)
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' M > G
|
||
--- groff-1.18.1.1.orig/font/devhtml/DESC.proto
|
||
+++ groff-1.18.1.1/font/devhtml/DESC.proto
|
||
@@ -3,7 +3,11 @@
|
||
vert 40
|
||
unitwidth 10
|
||
sizes 6 8 10 12 14 16 18 0
|
||
-fonts 9 R I B BI CR CI CB CBI S
|
||
+fonts 11 R I B BI CR CI CB CBI S M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset - M FF00..FFEF
|
||
tcommand
|
||
html
|
||
postpro post-grohtml
|
||
--- groff-1.18.1.1.orig/font/devX75-12/DESC
|
||
+++ groff-1.18.1.1/font/devX75-12/DESC
|
||
@@ -1,5 +1,17 @@
|
||
styles R I B BI
|
||
-fonts 6 0 0 0 0 0 S
|
||
+fonts 8 0 0 0 0 0 S M G
|
||
+fontset B G 2E00..9FFF
|
||
+fontset CB G 2E00..9FFF
|
||
+fontset HB G 2E00..9FFF
|
||
+fontset NB G 2E00..9FFF
|
||
+fontset TB G 2E00..9FFF
|
||
+fontset - M 2E00..9FFF
|
||
+fontset B G FF00..FFEF
|
||
+fontset CB G FF00..FFEF
|
||
+fontset HB G FF00..FFEF
|
||
+fontset NB G FF00..FFEF
|
||
+fontset TB G FF00..FFEF
|
||
+fontset - M FF00..FFEF
|
||
sizes 8 10 12 14 18 24 0
|
||
res 75
|
||
X11
|
||
--- groff-1.18.1.1.orig/font/devX75-12/M.proto
|
||
+++ groff-1.18.1.1/font/devX75-12/M.proto
|
||
@@ -0,0 +1,5 @@
|
||
+name M
|
||
+spacewidth 2
|
||
+charset
|
||
+u2E00..u9FFF 12 0
|
||
+uFF00..uFFEF 12 0
|
||
--- groff-1.18.1.1.orig/font/devX75-12/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devX75-12/Makefile.sub
|
||
@@ -1,2 +1,13 @@
|
||
DEV=X75-12
|
||
-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
|
||
+DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
|
||
+CLEANADD=M G
|
||
+
|
||
+M: M.proto
|
||
+ @echo Making M
|
||
+ @-rm -f M
|
||
+ @cat $(srcdir)/M.proto > M
|
||
+
|
||
+G: M
|
||
+ @echo Making G
|
||
+ @-rm -f G
|
||
+ @sed -e 's/name M/name G/' M > G
|
||
--- groff-1.18.1.1.orig/font/devdvi/M.proto-NTT
|
||
+++ groff-1.18.1.1/font/devdvi/M.proto-NTT
|
||
@@ -0,0 +1,6882 @@
|
||
+name M
|
||
+internalname dmj10
|
||
+checksum 0
|
||
+designsize 10485760
|
||
+charset
|
||
+ F 1:0
|
||
+、 F 2:0
|
||
+。 F 3:0
|
||
+, F 4:0
|
||
+. F 5:0
|
||
+・ F 6:0
|
||
+: F 7:0
|
||
+; F 8:0
|
||
+? F 9:0
|
||
+! F 10:0
|
||
+゛ F 11:0
|
||
+゜ F 12:0
|
||
+´ F 13:0
|
||
+` F 14:0
|
||
+¨ F 15:0
|
||
+^ F 16:0
|
||
+ ̄ F 17:0
|
||
+_ F 18:0
|
||
+ヽ F 19:0
|
||
+ヾ F 20:0
|
||
+ゝ F 21:0
|
||
+ゞ F 22:0
|
||
+〃 F 23:0
|
||
+仝 F 24:0
|
||
+々 F 25:0
|
||
+〆 F 26:0
|
||
+〇 F 27:0
|
||
+ー F 28:0
|
||
+― F 29:0
|
||
+‐ F 30:0
|
||
+/ F 31:0
|
||
+\ F 32:0
|
||
+~ F 33:0
|
||
+∥ F 34:0
|
||
+| F 35:0
|
||
+… F 36:0
|
||
+‥ F 37:0
|
||
+‘ F 38:0
|
||
+’ F 39:0
|
||
+“ F 40:0
|
||
+” F 41:0
|
||
+( F 42:0
|
||
+) F 43:0
|
||
+〔 F 44:0
|
||
+〕 F 45:0
|
||
+[ F 46:0
|
||
+] F 47:0
|
||
+{ F 48:0
|
||
+} F 49:0
|
||
+〈 F 50:0
|
||
+〉 F 51:0
|
||
+《 F 52:0
|
||
+》 F 53:0
|
||
+「 F 54:0
|
||
+」 F 55:0
|
||
+『 F 56:0
|
||
+』 F 57:0
|
||
+【 F 58:0
|
||
+】 F 59:0
|
||
++ F 60:0
|
||
+- F 61:0
|
||
+± F 62:0
|
||
+× F 63:0
|
||
+÷ F 64:0
|
||
+= F 65:0
|
||
+≠ F 66:0
|
||
+< F 67:0
|
||
+> F 68:0
|
||
+≦ F 69:0
|
||
+≧ F 70:0
|
||
+∞ F 71:0
|
||
+∴ F 72:0
|
||
+♂ F 73:0
|
||
+♀ F 74:0
|
||
+° F 75:0
|
||
+′ F 76:0
|
||
+″ F 77:0
|
||
+℃ F 78:0
|
||
+¥ F 79:0
|
||
+$ F 80:0
|
||
+¢ F 81:0
|
||
+£ F 82:0
|
||
+% F 83:0
|
||
+# F 84:0
|
||
+& F 85:0
|
||
+* F 86:0
|
||
+@ F 87:0
|
||
+§ F 88:0
|
||
+☆ F 89:0
|
||
+★ F 90:0
|
||
+○ F 91:0
|
||
+● F 92:0
|
||
+◎ F 93:0
|
||
+◇ F 94:0
|
||
+◆ F 101:0
|
||
+□ F 102:0
|
||
+■ F 103:0
|
||
+△ F 104:0
|
||
+▲ F 105:0
|
||
+▽ F 106:0
|
||
+▼ F 107:0
|
||
+※ F 108:0
|
||
+〒 F 109:0
|
||
+→ F 110:0
|
||
+← F 111:0
|
||
+↑ F 112:0
|
||
+↓ F 113:0
|
||
+〓 F 114:0
|
||
+∈ F 126:0
|
||
+∋ F 127:0
|
||
+⊆ F 128:0
|
||
+⊇ F 129:0
|
||
+⊂ F 130:0
|
||
+⊃ F 131:0
|
||
+∪ F 132:0
|
||
+∩ F 133:0
|
||
+∧ F 142:0
|
||
+∨ F 143:0
|
||
+¬ F 144:0
|
||
+⇒ F 145:0
|
||
+⇔ F 146:0
|
||
+∀ F 147:0
|
||
+∃ F 148:0
|
||
+∠ F 160:0
|
||
+⊥ F 161:0
|
||
+⌒ F 162:0
|
||
+∂ F 163:0
|
||
+∇ F 164:0
|
||
+≡ F 165:0
|
||
+≒ F 166:0
|
||
+≪ F 167:0
|
||
+≫ F 168:0
|
||
+√ F 169:0
|
||
+∽ F 170:0
|
||
+∝ F 171:0
|
||
+∵ F 172:0
|
||
+∫ F 173:0
|
||
+∬ F 174:0
|
||
+Å F 182:0
|
||
+‰ F 183:0
|
||
+♯ F 184:0
|
||
+♭ F 185:0
|
||
+♪ F 186:0
|
||
+† F 187:0
|
||
+‡ F 188:0
|
||
+¶ F 189:0
|
||
+◯ F 194:0
|
||
+0 F 48:1
|
||
+1 F 49:1
|
||
+2 F 50:1
|
||
+3 F 51:1
|
||
+4 F 52:1
|
||
+5 F 53:1
|
||
+6 F 54:1
|
||
+7 F 55:1
|
||
+8 F 56:1
|
||
+9 F 57:1
|
||
+A F 65:1
|
||
+B F 66:1
|
||
+C F 67:1
|
||
+D F 68:1
|
||
+E F 69:1
|
||
+F F 70:1
|
||
+G F 71:1
|
||
+H F 72:1
|
||
+I F 73:1
|
||
+J F 74:1
|
||
+K F 75:1
|
||
+L F 76:1
|
||
+M F 77:1
|
||
+N F 78:1
|
||
+O F 79:1
|
||
+P F 80:1
|
||
+Q F 81:1
|
||
+R F 82:1
|
||
+S F 83:1
|
||
+T F 84:1
|
||
+U F 85:1
|
||
+V F 86:1
|
||
+W F 87:1
|
||
+X F 88:1
|
||
+Y F 89:1
|
||
+Z F 90:1
|
||
+a F 97:1
|
||
+b F 98:1
|
||
+c F 99:1
|
||
+d F 100:1
|
||
+e F 101:1
|
||
+f F 102:1
|
||
+g F 103:1
|
||
+h F 104:1
|
||
+i F 105:1
|
||
+j F 106:1
|
||
+k F 107:1
|
||
+l F 108:1
|
||
+m F 109:1
|
||
+n F 110:1
|
||
+o F 111:1
|
||
+p F 112:1
|
||
+q F 113:1
|
||
+r F 114:1
|
||
+s F 115:1
|
||
+t F 116:1
|
||
+u F 117:1
|
||
+v F 118:1
|
||
+w F 119:1
|
||
+x F 120:1
|
||
+y F 121:1
|
||
+z F 122:1
|
||
+ぁ F 1:2
|
||
+あ F 2:2
|
||
+ぃ F 3:2
|
||
+い F 4:2
|
||
+ぅ F 5:2
|
||
+う F 6:2
|
||
+ぇ F 7:2
|
||
+え F 8:2
|
||
+ぉ F 9:2
|
||
+お F 10:2
|
||
+か F 11:2
|
||
+が F 12:2
|
||
+き F 13:2
|
||
+ぎ F 14:2
|
||
+く F 15:2
|
||
+ぐ F 16:2
|
||
+け F 17:2
|
||
+げ F 18:2
|
||
+こ F 19:2
|
||
+ご F 20:2
|
||
+さ F 21:2
|
||
+ざ F 22:2
|
||
+し F 23:2
|
||
+じ F 24:2
|
||
+す F 25:2
|
||
+ず F 26:2
|
||
+せ F 27:2
|
||
+ぜ F 28:2
|
||
+そ F 29:2
|
||
+ぞ F 30:2
|
||
+た F 31:2
|
||
+だ F 32:2
|
||
+ち F 33:2
|
||
+ぢ F 34:2
|
||
+っ F 35:2
|
||
+つ F 36:2
|
||
+づ F 37:2
|
||
+て F 38:2
|
||
+で F 39:2
|
||
+と F 40:2
|
||
+ど F 41:2
|
||
+な F 42:2
|
||
+に F 43:2
|
||
+ぬ F 44:2
|
||
+ね F 45:2
|
||
+の F 46:2
|
||
+は F 47:2
|
||
+ば F 48:2
|
||
+ぱ F 49:2
|
||
+ひ F 50:2
|
||
+び F 51:2
|
||
+ぴ F 52:2
|
||
+ふ F 53:2
|
||
+ぶ F 54:2
|
||
+ぷ F 55:2
|
||
+へ F 56:2
|
||
+べ F 57:2
|
||
+ぺ F 58:2
|
||
+ほ F 59:2
|
||
+ぼ F 60:2
|
||
+ぽ F 61:2
|
||
+ま F 62:2
|
||
+み F 63:2
|
||
+む F 64:2
|
||
+め F 65:2
|
||
+も F 66:2
|
||
+ゃ F 67:2
|
||
+や F 68:2
|
||
+ゅ F 69:2
|
||
+ゆ F 70:2
|
||
+ょ F 71:2
|
||
+よ F 72:2
|
||
+ら F 73:2
|
||
+り F 74:2
|
||
+る F 75:2
|
||
+れ F 76:2
|
||
+ろ F 77:2
|
||
+ゎ F 78:2
|
||
+わ F 79:2
|
||
+ゐ F 80:2
|
||
+ゑ F 81:2
|
||
+を F 82:2
|
||
+ん F 83:2
|
||
+ァ F 1:3
|
||
+ア F 2:3
|
||
+ィ F 3:3
|
||
+イ F 4:3
|
||
+ゥ F 5:3
|
||
+ウ F 6:3
|
||
+ェ F 7:3
|
||
+エ F 8:3
|
||
+ォ F 9:3
|
||
+オ F 10:3
|
||
+カ F 11:3
|
||
+ガ F 12:3
|
||
+キ F 13:3
|
||
+ギ F 14:3
|
||
+ク F 15:3
|
||
+グ F 16:3
|
||
+ケ F 17:3
|
||
+ゲ F 18:3
|
||
+コ F 19:3
|
||
+ゴ F 20:3
|
||
+サ F 21:3
|
||
+ザ F 22:3
|
||
+シ F 23:3
|
||
+ジ F 24:3
|
||
+ス F 25:3
|
||
+ズ F 26:3
|
||
+セ F 27:3
|
||
+ゼ F 28:3
|
||
+ソ F 29:3
|
||
+ゾ F 30:3
|
||
+タ F 31:3
|
||
+ダ F 32:3
|
||
+チ F 33:3
|
||
+ヂ F 34:3
|
||
+ッ F 35:3
|
||
+ツ F 36:3
|
||
+ヅ F 37:3
|
||
+テ F 38:3
|
||
+デ F 39:3
|
||
+ト F 40:3
|
||
+ド F 41:3
|
||
+ナ F 42:3
|
||
+ニ F 43:3
|
||
+ヌ F 44:3
|
||
+ネ F 45:3
|
||
+ノ F 46:3
|
||
+ハ F 47:3
|
||
+バ F 48:3
|
||
+パ F 49:3
|
||
+ヒ F 50:3
|
||
+ビ F 51:3
|
||
+ピ F 52:3
|
||
+フ F 53:3
|
||
+ブ F 54:3
|
||
+プ F 55:3
|
||
+ヘ F 56:3
|
||
+ベ F 57:3
|
||
+ペ F 58:3
|
||
+ホ F 59:3
|
||
+ボ F 60:3
|
||
+ポ F 61:3
|
||
+マ F 62:3
|
||
+ミ F 63:3
|
||
+ム F 64:3
|
||
+メ F 65:3
|
||
+モ F 66:3
|
||
+ャ F 67:3
|
||
+ヤ F 68:3
|
||
+ュ F 69:3
|
||
+ユ F 70:3
|
||
+ョ F 71:3
|
||
+ヨ F 72:3
|
||
+ラ F 73:3
|
||
+リ F 74:3
|
||
+ル F 75:3
|
||
+レ F 76:3
|
||
+ロ F 77:3
|
||
+ヮ F 78:3
|
||
+ワ F 79:3
|
||
+ヰ F 80:3
|
||
+ヱ F 81:3
|
||
+ヲ F 82:3
|
||
+ン F 83:3
|
||
+ヴ F 84:3
|
||
+ヵ F 85:3
|
||
+ヶ F 86:3
|
||
+Α F 1:4
|
||
+Β F 2:4
|
||
+Γ F 3:4
|
||
+Δ F 4:4
|
||
+Ε F 5:4
|
||
+Ζ F 6:4
|
||
+Η F 7:4
|
||
+Θ F 8:4
|
||
+Ι F 9:4
|
||
+Κ F 10:4
|
||
+Λ F 11:4
|
||
+Μ F 12:4
|
||
+Ν F 13:4
|
||
+Ξ F 14:4
|
||
+Ο F 15:4
|
||
+Π F 16:4
|
||
+Ρ F 17:4
|
||
+Σ F 18:4
|
||
+Τ F 19:4
|
||
+Υ F 20:4
|
||
+Φ F 21:4
|
||
+Χ F 22:4
|
||
+Ψ F 23:4
|
||
+Ω F 24:4
|
||
+α F 33:4
|
||
+β F 34:4
|
||
+γ F 35:4
|
||
+δ F 36:4
|
||
+ε F 37:4
|
||
+ζ F 38:4
|
||
+η F 39:4
|
||
+θ F 40:4
|
||
+ι F 41:4
|
||
+κ F 42:4
|
||
+λ F 43:4
|
||
+μ F 44:4
|
||
+ν F 45:4
|
||
+ξ F 46:4
|
||
+ο F 47:4
|
||
+π F 48:4
|
||
+ρ F 49:4
|
||
+σ F 50:4
|
||
+τ F 51:4
|
||
+υ F 52:4
|
||
+φ F 53:4
|
||
+χ F 54:4
|
||
+ψ F 55:4
|
||
+ω F 56:4
|
||
+А F 1:5
|
||
+Б F 2:5
|
||
+В F 3:5
|
||
+Г F 4:5
|
||
+Д F 5:5
|
||
+Е F 6:5
|
||
+Ё F 7:5
|
||
+Ж F 8:5
|
||
+З F 9:5
|
||
+И F 10:5
|
||
+Й F 11:5
|
||
+К F 12:5
|
||
+Л F 13:5
|
||
+М F 14:5
|
||
+Н F 15:5
|
||
+О F 16:5
|
||
+П F 17:5
|
||
+Р F 18:5
|
||
+С F 19:5
|
||
+Т F 20:5
|
||
+У F 21:5
|
||
+Ф F 22:5
|
||
+Х F 23:5
|
||
+Ц F 24:5
|
||
+Ч F 25:5
|
||
+Ш F 26:5
|
||
+Щ F 27:5
|
||
+Ъ F 28:5
|
||
+Ы F 29:5
|
||
+Ь F 30:5
|
||
+Э F 31:5
|
||
+Ю F 32:5
|
||
+Я F 33:5
|
||
+а F 49:5
|
||
+б F 50:5
|
||
+в F 51:5
|
||
+г F 52:5
|
||
+д F 53:5
|
||
+е F 54:5
|
||
+ё F 55:5
|
||
+ж F 56:5
|
||
+з F 57:5
|
||
+и F 58:5
|
||
+й F 59:5
|
||
+к F 60:5
|
||
+л F 61:5
|
||
+м F 62:5
|
||
+н F 63:5
|
||
+о F 64:5
|
||
+п F 65:5
|
||
+р F 66:5
|
||
+с F 67:5
|
||
+т F 68:5
|
||
+у F 69:5
|
||
+ф F 70:5
|
||
+х F 71:5
|
||
+ц F 72:5
|
||
+ч F 73:5
|
||
+ш F 74:5
|
||
+щ F 75:5
|
||
+ъ F 76:5
|
||
+ы F 77:5
|
||
+ь F 78:5
|
||
+э F 79:5
|
||
+ю F 80:5
|
||
+я F 81:5
|
||
+─ F 1:6
|
||
+│ F 2:6
|
||
+┌ F 3:6
|
||
+┐ F 4:6
|
||
+┘ F 5:6
|
||
+└ F 6:6
|
||
+├ F 7:6
|
||
+┬ F 8:6
|
||
+┤ F 9:6
|
||
+┴ F 10:6
|
||
+┼ F 11:6
|
||
+━ F 12:6
|
||
+┃ F 13:6
|
||
+┏ F 14:6
|
||
+┓ F 15:6
|
||
+┛ F 16:6
|
||
+┗ F 17:6
|
||
+┣ F 18:6
|
||
+┳ F 19:6
|
||
+┫ F 20:6
|
||
+┻ F 21:6
|
||
+╋ F 22:6
|
||
+┠ F 23:6
|
||
+┯ F 24:6
|
||
+┨ F 25:6
|
||
+┷ F 26:6
|
||
+┿ F 27:6
|
||
+┝ F 28:6
|
||
+┰ F 29:6
|
||
+┥ F 30:6
|
||
+┸ F 31:6
|
||
+╂ F 32:6
|
||
+亜 F 0:a
|
||
+唖 F 1:a
|
||
+娃 F 2:a
|
||
+阿 F 3:a
|
||
+哀 F 4:a
|
||
+愛 F 5:a
|
||
+挨 F 6:a
|
||
+姶 F 7:a
|
||
+逢 F 8:a
|
||
+葵 F 9:a
|
||
+茜 F 10:a
|
||
+穐 F 11:a
|
||
+悪 F 12:a
|
||
+握 F 13:a
|
||
+渥 F 14:a
|
||
+旭 F 15:a
|
||
+葦 F 16:a
|
||
+芦 F 17:a
|
||
+鯵 F 18:a
|
||
+梓 F 19:a
|
||
+圧 F 20:a
|
||
+斡 F 21:a
|
||
+扱 F 22:a
|
||
+宛 F 23:a
|
||
+姐 F 24:a
|
||
+虻 F 25:a
|
||
+飴 F 26:a
|
||
+絢 F 27:a
|
||
+綾 F 28:a
|
||
+鮎 F 29:a
|
||
+或 F 30:a
|
||
+粟 F 31:a
|
||
+袷 F 32:a
|
||
+安 F 33:a
|
||
+庵 F 34:a
|
||
+按 F 35:a
|
||
+暗 F 36:a
|
||
+案 F 37:a
|
||
+闇 F 38:a
|
||
+鞍 F 39:a
|
||
+杏 F 40:a
|
||
+以 F 41:a
|
||
+伊 F 42:a
|
||
+位 F 43:a
|
||
+依 F 44:a
|
||
+偉 F 45:a
|
||
+囲 F 46:a
|
||
+夷 F 47:a
|
||
+委 F 48:a
|
||
+威 F 49:a
|
||
+尉 F 50:a
|
||
+惟 F 51:a
|
||
+意 F 52:a
|
||
+慰 F 53:a
|
||
+易 F 54:a
|
||
+椅 F 55:a
|
||
+為 F 56:a
|
||
+畏 F 57:a
|
||
+異 F 58:a
|
||
+移 F 59:a
|
||
+維 F 60:a
|
||
+緯 F 61:a
|
||
+胃 F 62:a
|
||
+萎 F 63:a
|
||
+衣 F 64:a
|
||
+謂 F 65:a
|
||
+違 F 66:a
|
||
+遺 F 67:a
|
||
+医 F 68:a
|
||
+井 F 69:a
|
||
+亥 F 70:a
|
||
+域 F 71:a
|
||
+育 F 72:a
|
||
+郁 F 73:a
|
||
+磯 F 74:a
|
||
+一 F 75:a
|
||
+壱 F 76:a
|
||
+溢 F 77:a
|
||
+逸 F 78:a
|
||
+稲 F 79:a
|
||
+茨 F 80:a
|
||
+芋 F 81:a
|
||
+鰯 F 82:a
|
||
+允 F 83:a
|
||
+印 F 84:a
|
||
+咽 F 85:a
|
||
+員 F 86:a
|
||
+因 F 87:a
|
||
+姻 F 88:a
|
||
+引 F 89:a
|
||
+飲 F 90:a
|
||
+淫 F 91:a
|
||
+胤 F 92:a
|
||
+蔭 F 93:a
|
||
+院 F 94:a
|
||
+陰 F 95:a
|
||
+隠 F 96:a
|
||
+韻 F 97:a
|
||
+吋 F 98:a
|
||
+右 F 99:a
|
||
+宇 F 100:a
|
||
+烏 F 101:a
|
||
+羽 F 102:a
|
||
+迂 F 103:a
|
||
+雨 F 104:a
|
||
+卯 F 105:a
|
||
+鵜 F 106:a
|
||
+窺 F 107:a
|
||
+丑 F 108:a
|
||
+碓 F 109:a
|
||
+臼 F 110:a
|
||
+渦 F 111:a
|
||
+嘘 F 112:a
|
||
+唄 F 113:a
|
||
+欝 F 114:a
|
||
+蔚 F 115:a
|
||
+鰻 F 116:a
|
||
+姥 F 117:a
|
||
+厩 F 118:a
|
||
+浦 F 119:a
|
||
+瓜 F 120:a
|
||
+閏 F 121:a
|
||
+噂 F 122:a
|
||
+云 F 123:a
|
||
+運 F 124:a
|
||
+雲 F 125:a
|
||
+荏 F 126:a
|
||
+餌 F 127:a
|
||
+叡 F 128:a
|
||
+営 F 129:a
|
||
+嬰 F 130:a
|
||
+影 F 131:a
|
||
+映 F 132:a
|
||
+曳 F 133:a
|
||
+栄 F 134:a
|
||
+永 F 135:a
|
||
+泳 F 136:a
|
||
+洩 F 137:a
|
||
+瑛 F 138:a
|
||
+盈 F 139:a
|
||
+穎 F 140:a
|
||
+頴 F 141:a
|
||
+英 F 142:a
|
||
+衛 F 143:a
|
||
+詠 F 144:a
|
||
+鋭 F 145:a
|
||
+液 F 146:a
|
||
+疫 F 147:a
|
||
+益 F 148:a
|
||
+駅 F 149:a
|
||
+悦 F 150:a
|
||
+謁 F 151:a
|
||
+越 F 152:a
|
||
+閲 F 153:a
|
||
+榎 F 154:a
|
||
+厭 F 155:a
|
||
+円 F 156:a
|
||
+園 F 157:a
|
||
+堰 F 158:a
|
||
+奄 F 159:a
|
||
+宴 F 160:a
|
||
+延 F 161:a
|
||
+怨 F 162:a
|
||
+掩 F 163:a
|
||
+援 F 164:a
|
||
+沿 F 165:a
|
||
+演 F 166:a
|
||
+炎 F 167:a
|
||
+焔 F 168:a
|
||
+煙 F 169:a
|
||
+燕 F 170:a
|
||
+猿 F 171:a
|
||
+縁 F 172:a
|
||
+艶 F 173:a
|
||
+苑 F 174:a
|
||
+薗 F 175:a
|
||
+遠 F 176:a
|
||
+鉛 F 177:a
|
||
+鴛 F 178:a
|
||
+塩 F 179:a
|
||
+於 F 180:a
|
||
+汚 F 181:a
|
||
+甥 F 182:a
|
||
+凹 F 183:a
|
||
+央 F 184:a
|
||
+奥 F 185:a
|
||
+往 F 186:a
|
||
+応 F 187:a
|
||
+押 F 188:a
|
||
+旺 F 189:a
|
||
+横 F 190:a
|
||
+欧 F 191:a
|
||
+殴 F 192:a
|
||
+王 F 193:a
|
||
+翁 F 194:a
|
||
+襖 F 195:a
|
||
+鴬 F 196:a
|
||
+鴎 F 197:a
|
||
+黄 F 198:a
|
||
+岡 F 199:a
|
||
+沖 F 200:a
|
||
+荻 F 201:a
|
||
+億 F 202:a
|
||
+屋 F 203:a
|
||
+憶 F 204:a
|
||
+臆 F 205:a
|
||
+桶 F 206:a
|
||
+牡 F 207:a
|
||
+乙 F 208:a
|
||
+俺 F 209:a
|
||
+卸 F 210:a
|
||
+恩 F 211:a
|
||
+温 F 212:a
|
||
+穏 F 213:a
|
||
+音 F 214:a
|
||
+下 F 215:a
|
||
+化 F 216:a
|
||
+仮 F 217:a
|
||
+何 F 218:a
|
||
+伽 F 219:a
|
||
+価 F 220:a
|
||
+佳 F 221:a
|
||
+加 F 222:a
|
||
+可 F 223:a
|
||
+嘉 F 224:a
|
||
+夏 F 225:a
|
||
+嫁 F 226:a
|
||
+家 F 227:a
|
||
+寡 F 228:a
|
||
+科 F 229:a
|
||
+暇 F 230:a
|
||
+果 F 231:a
|
||
+架 F 232:a
|
||
+歌 F 233:a
|
||
+河 F 234:a
|
||
+火 F 235:a
|
||
+珂 F 236:a
|
||
+禍 F 237:a
|
||
+禾 F 238:a
|
||
+稼 F 239:a
|
||
+箇 F 240:a
|
||
+花 F 241:a
|
||
+苛 F 242:a
|
||
+茄 F 243:a
|
||
+荷 F 244:a
|
||
+華 F 245:a
|
||
+菓 F 246:a
|
||
+蝦 F 247:a
|
||
+課 F 248:a
|
||
+嘩 F 249:a
|
||
+貨 F 250:a
|
||
+迦 F 251:a
|
||
+過 F 252:a
|
||
+霞 F 253:a
|
||
+蚊 F 254:a
|
||
+俄 F 255:a
|
||
+峨 F 0:b
|
||
+我 F 1:b
|
||
+牙 F 2:b
|
||
+画 F 3:b
|
||
+臥 F 4:b
|
||
+芽 F 5:b
|
||
+蛾 F 6:b
|
||
+賀 F 7:b
|
||
+雅 F 8:b
|
||
+餓 F 9:b
|
||
+駕 F 10:b
|
||
+介 F 11:b
|
||
+会 F 12:b
|
||
+解 F 13:b
|
||
+回 F 14:b
|
||
+塊 F 15:b
|
||
+壊 F 16:b
|
||
+廻 F 17:b
|
||
+快 F 18:b
|
||
+怪 F 19:b
|
||
+悔 F 20:b
|
||
+恢 F 21:b
|
||
+懐 F 22:b
|
||
+戒 F 23:b
|
||
+拐 F 24:b
|
||
+改 F 25:b
|
||
+魁 F 26:b
|
||
+晦 F 27:b
|
||
+械 F 28:b
|
||
+海 F 29:b
|
||
+灰 F 30:b
|
||
+界 F 31:b
|
||
+皆 F 32:b
|
||
+絵 F 33:b
|
||
+芥 F 34:b
|
||
+蟹 F 35:b
|
||
+開 F 36:b
|
||
+階 F 37:b
|
||
+貝 F 38:b
|
||
+凱 F 39:b
|
||
+劾 F 40:b
|
||
+外 F 41:b
|
||
+咳 F 42:b
|
||
+害 F 43:b
|
||
+崖 F 44:b
|
||
+慨 F 45:b
|
||
+概 F 46:b
|
||
+涯 F 47:b
|
||
+碍 F 48:b
|
||
+蓋 F 49:b
|
||
+街 F 50:b
|
||
+該 F 51:b
|
||
+鎧 F 52:b
|
||
+骸 F 53:b
|
||
+浬 F 54:b
|
||
+馨 F 55:b
|
||
+蛙 F 56:b
|
||
+垣 F 57:b
|
||
+柿 F 58:b
|
||
+蛎 F 59:b
|
||
+鈎 F 60:b
|
||
+劃 F 61:b
|
||
+嚇 F 62:b
|
||
+各 F 63:b
|
||
+廓 F 64:b
|
||
+拡 F 65:b
|
||
+撹 F 66:b
|
||
+格 F 67:b
|
||
+核 F 68:b
|
||
+殻 F 69:b
|
||
+獲 F 70:b
|
||
+確 F 71:b
|
||
+穫 F 72:b
|
||
+覚 F 73:b
|
||
+角 F 74:b
|
||
+赫 F 75:b
|
||
+較 F 76:b
|
||
+郭 F 77:b
|
||
+閣 F 78:b
|
||
+隔 F 79:b
|
||
+革 F 80:b
|
||
+学 F 81:b
|
||
+岳 F 82:b
|
||
+楽 F 83:b
|
||
+額 F 84:b
|
||
+顎 F 85:b
|
||
+掛 F 86:b
|
||
+笠 F 87:b
|
||
+樫 F 88:b
|
||
+橿 F 89:b
|
||
+梶 F 90:b
|
||
+鰍 F 91:b
|
||
+潟 F 92:b
|
||
+割 F 93:b
|
||
+喝 F 94:b
|
||
+恰 F 95:b
|
||
+括 F 96:b
|
||
+活 F 97:b
|
||
+渇 F 98:b
|
||
+滑 F 99:b
|
||
+葛 F 100:b
|
||
+褐 F 101:b
|
||
+轄 F 102:b
|
||
+且 F 103:b
|
||
+鰹 F 104:b
|
||
+叶 F 105:b
|
||
+椛 F 106:b
|
||
+樺 F 107:b
|
||
+鞄 F 108:b
|
||
+株 F 109:b
|
||
+兜 F 110:b
|
||
+竃 F 111:b
|
||
+蒲 F 112:b
|
||
+釜 F 113:b
|
||
+鎌 F 114:b
|
||
+噛 F 115:b
|
||
+鴨 F 116:b
|
||
+栢 F 117:b
|
||
+茅 F 118:b
|
||
+萱 F 119:b
|
||
+粥 F 120:b
|
||
+刈 F 121:b
|
||
+苅 F 122:b
|
||
+瓦 F 123:b
|
||
+乾 F 124:b
|
||
+侃 F 125:b
|
||
+冠 F 126:b
|
||
+寒 F 127:b
|
||
+刊 F 128:b
|
||
+勘 F 129:b
|
||
+勧 F 130:b
|
||
+巻 F 131:b
|
||
+喚 F 132:b
|
||
+堪 F 133:b
|
||
+姦 F 134:b
|
||
+完 F 135:b
|
||
+官 F 136:b
|
||
+寛 F 137:b
|
||
+干 F 138:b
|
||
+幹 F 139:b
|
||
+患 F 140:b
|
||
+感 F 141:b
|
||
+慣 F 142:b
|
||
+憾 F 143:b
|
||
+換 F 144:b
|
||
+敢 F 145:b
|
||
+柑 F 146:b
|
||
+桓 F 147:b
|
||
+棺 F 148:b
|
||
+款 F 149:b
|
||
+歓 F 150:b
|
||
+汗 F 151:b
|
||
+漢 F 152:b
|
||
+澗 F 153:b
|
||
+潅 F 154:b
|
||
+環 F 155:b
|
||
+甘 F 156:b
|
||
+監 F 157:b
|
||
+看 F 158:b
|
||
+竿 F 159:b
|
||
+管 F 160:b
|
||
+簡 F 161:b
|
||
+緩 F 162:b
|
||
+缶 F 163:b
|
||
+翰 F 164:b
|
||
+肝 F 165:b
|
||
+艦 F 166:b
|
||
+莞 F 167:b
|
||
+観 F 168:b
|
||
+諌 F 169:b
|
||
+貫 F 170:b
|
||
+還 F 171:b
|
||
+鑑 F 172:b
|
||
+間 F 173:b
|
||
+閑 F 174:b
|
||
+関 F 175:b
|
||
+陥 F 176:b
|
||
+韓 F 177:b
|
||
+館 F 178:b
|
||
+舘 F 179:b
|
||
+丸 F 180:b
|
||
+含 F 181:b
|
||
+岸 F 182:b
|
||
+巌 F 183:b
|
||
+玩 F 184:b
|
||
+癌 F 185:b
|
||
+眼 F 186:b
|
||
+岩 F 187:b
|
||
+翫 F 188:b
|
||
+贋 F 189:b
|
||
+雁 F 190:b
|
||
+頑 F 191:b
|
||
+顔 F 192:b
|
||
+願 F 193:b
|
||
+企 F 194:b
|
||
+伎 F 195:b
|
||
+危 F 196:b
|
||
+喜 F 197:b
|
||
+器 F 198:b
|
||
+基 F 199:b
|
||
+奇 F 200:b
|
||
+嬉 F 201:b
|
||
+寄 F 202:b
|
||
+岐 F 203:b
|
||
+希 F 204:b
|
||
+幾 F 205:b
|
||
+忌 F 206:b
|
||
+揮 F 207:b
|
||
+机 F 208:b
|
||
+旗 F 209:b
|
||
+既 F 210:b
|
||
+期 F 211:b
|
||
+棋 F 212:b
|
||
+棄 F 213:b
|
||
+機 F 214:b
|
||
+帰 F 215:b
|
||
+毅 F 216:b
|
||
+気 F 217:b
|
||
+汽 F 218:b
|
||
+畿 F 219:b
|
||
+祈 F 220:b
|
||
+季 F 221:b
|
||
+稀 F 222:b
|
||
+紀 F 223:b
|
||
+徽 F 224:b
|
||
+規 F 225:b
|
||
+記 F 226:b
|
||
+貴 F 227:b
|
||
+起 F 228:b
|
||
+軌 F 229:b
|
||
+輝 F 230:b
|
||
+飢 F 231:b
|
||
+騎 F 232:b
|
||
+鬼 F 233:b
|
||
+亀 F 234:b
|
||
+偽 F 235:b
|
||
+儀 F 236:b
|
||
+妓 F 237:b
|
||
+宜 F 238:b
|
||
+戯 F 239:b
|
||
+技 F 240:b
|
||
+擬 F 241:b
|
||
+欺 F 242:b
|
||
+犠 F 243:b
|
||
+疑 F 244:b
|
||
+祇 F 245:b
|
||
+義 F 246:b
|
||
+蟻 F 247:b
|
||
+誼 F 248:b
|
||
+議 F 249:b
|
||
+掬 F 250:b
|
||
+菊 F 251:b
|
||
+鞠 F 252:b
|
||
+吉 F 253:b
|
||
+吃 F 254:b
|
||
+喫 F 255:b
|
||
+桔 F 0:c
|
||
+橘 F 1:c
|
||
+詰 F 2:c
|
||
+砧 F 3:c
|
||
+杵 F 4:c
|
||
+黍 F 5:c
|
||
+却 F 6:c
|
||
+客 F 7:c
|
||
+脚 F 8:c
|
||
+虐 F 9:c
|
||
+逆 F 10:c
|
||
+丘 F 11:c
|
||
+久 F 12:c
|
||
+仇 F 13:c
|
||
+休 F 14:c
|
||
+及 F 15:c
|
||
+吸 F 16:c
|
||
+宮 F 17:c
|
||
+弓 F 18:c
|
||
+急 F 19:c
|
||
+救 F 20:c
|
||
+朽 F 21:c
|
||
+求 F 22:c
|
||
+汲 F 23:c
|
||
+泣 F 24:c
|
||
+灸 F 25:c
|
||
+球 F 26:c
|
||
+究 F 27:c
|
||
+窮 F 28:c
|
||
+笈 F 29:c
|
||
+級 F 30:c
|
||
+糾 F 31:c
|
||
+給 F 32:c
|
||
+旧 F 33:c
|
||
+牛 F 34:c
|
||
+去 F 35:c
|
||
+居 F 36:c
|
||
+巨 F 37:c
|
||
+拒 F 38:c
|
||
+拠 F 39:c
|
||
+挙 F 40:c
|
||
+渠 F 41:c
|
||
+虚 F 42:c
|
||
+許 F 43:c
|
||
+距 F 44:c
|
||
+鋸 F 45:c
|
||
+漁 F 46:c
|
||
+禦 F 47:c
|
||
+魚 F 48:c
|
||
+亨 F 49:c
|
||
+享 F 50:c
|
||
+京 F 51:c
|
||
+供 F 52:c
|
||
+侠 F 53:c
|
||
+僑 F 54:c
|
||
+兇 F 55:c
|
||
+競 F 56:c
|
||
+共 F 57:c
|
||
+凶 F 58:c
|
||
+協 F 59:c
|
||
+匡 F 60:c
|
||
+卿 F 61:c
|
||
+叫 F 62:c
|
||
+喬 F 63:c
|
||
+境 F 64:c
|
||
+峡 F 65:c
|
||
+強 F 66:c
|
||
+彊 F 67:c
|
||
+怯 F 68:c
|
||
+恐 F 69:c
|
||
+恭 F 70:c
|
||
+挟 F 71:c
|
||
+教 F 72:c
|
||
+橋 F 73:c
|
||
+況 F 74:c
|
||
+狂 F 75:c
|
||
+狭 F 76:c
|
||
+矯 F 77:c
|
||
+胸 F 78:c
|
||
+脅 F 79:c
|
||
+興 F 80:c
|
||
+蕎 F 81:c
|
||
+郷 F 82:c
|
||
+鏡 F 83:c
|
||
+響 F 84:c
|
||
+饗 F 85:c
|
||
+驚 F 86:c
|
||
+仰 F 87:c
|
||
+凝 F 88:c
|
||
+尭 F 89:c
|
||
+暁 F 90:c
|
||
+業 F 91:c
|
||
+局 F 92:c
|
||
+曲 F 93:c
|
||
+極 F 94:c
|
||
+玉 F 95:c
|
||
+桐 F 96:c
|
||
+粁 F 97:c
|
||
+僅 F 98:c
|
||
+勤 F 99:c
|
||
+均 F 100:c
|
||
+巾 F 101:c
|
||
+錦 F 102:c
|
||
+斤 F 103:c
|
||
+欣 F 104:c
|
||
+欽 F 105:c
|
||
+琴 F 106:c
|
||
+禁 F 107:c
|
||
+禽 F 108:c
|
||
+筋 F 109:c
|
||
+緊 F 110:c
|
||
+芹 F 111:c
|
||
+菌 F 112:c
|
||
+衿 F 113:c
|
||
+襟 F 114:c
|
||
+謹 F 115:c
|
||
+近 F 116:c
|
||
+金 F 117:c
|
||
+吟 F 118:c
|
||
+銀 F 119:c
|
||
+九 F 120:c
|
||
+倶 F 121:c
|
||
+句 F 122:c
|
||
+区 F 123:c
|
||
+狗 F 124:c
|
||
+玖 F 125:c
|
||
+矩 F 126:c
|
||
+苦 F 127:c
|
||
+躯 F 128:c
|
||
+駆 F 129:c
|
||
+駈 F 130:c
|
||
+駒 F 131:c
|
||
+具 F 132:c
|
||
+愚 F 133:c
|
||
+虞 F 134:c
|
||
+喰 F 135:c
|
||
+空 F 136:c
|
||
+偶 F 137:c
|
||
+寓 F 138:c
|
||
+遇 F 139:c
|
||
+隅 F 140:c
|
||
+串 F 141:c
|
||
+櫛 F 142:c
|
||
+釧 F 143:c
|
||
+屑 F 144:c
|
||
+屈 F 145:c
|
||
+掘 F 146:c
|
||
+窟 F 147:c
|
||
+沓 F 148:c
|
||
+靴 F 149:c
|
||
+轡 F 150:c
|
||
+窪 F 151:c
|
||
+熊 F 152:c
|
||
+隈 F 153:c
|
||
+粂 F 154:c
|
||
+栗 F 155:c
|
||
+繰 F 156:c
|
||
+桑 F 157:c
|
||
+鍬 F 158:c
|
||
+勲 F 159:c
|
||
+君 F 160:c
|
||
+薫 F 161:c
|
||
+訓 F 162:c
|
||
+群 F 163:c
|
||
+軍 F 164:c
|
||
+郡 F 165:c
|
||
+卦 F 166:c
|
||
+袈 F 167:c
|
||
+祁 F 168:c
|
||
+係 F 169:c
|
||
+傾 F 170:c
|
||
+刑 F 171:c
|
||
+兄 F 172:c
|
||
+啓 F 173:c
|
||
+圭 F 174:c
|
||
+珪 F 175:c
|
||
+型 F 176:c
|
||
+契 F 177:c
|
||
+形 F 178:c
|
||
+径 F 179:c
|
||
+恵 F 180:c
|
||
+慶 F 181:c
|
||
+慧 F 182:c
|
||
+憩 F 183:c
|
||
+掲 F 184:c
|
||
+携 F 185:c
|
||
+敬 F 186:c
|
||
+景 F 187:c
|
||
+桂 F 188:c
|
||
+渓 F 189:c
|
||
+畦 F 190:c
|
||
+稽 F 191:c
|
||
+系 F 192:c
|
||
+経 F 193:c
|
||
+継 F 194:c
|
||
+繋 F 195:c
|
||
+罫 F 196:c
|
||
+茎 F 197:c
|
||
+荊 F 198:c
|
||
+蛍 F 199:c
|
||
+計 F 200:c
|
||
+詣 F 201:c
|
||
+警 F 202:c
|
||
+軽 F 203:c
|
||
+頚 F 204:c
|
||
+鶏 F 205:c
|
||
+芸 F 206:c
|
||
+迎 F 207:c
|
||
+鯨 F 208:c
|
||
+劇 F 209:c
|
||
+戟 F 210:c
|
||
+撃 F 211:c
|
||
+激 F 212:c
|
||
+隙 F 213:c
|
||
+桁 F 214:c
|
||
+傑 F 215:c
|
||
+欠 F 216:c
|
||
+決 F 217:c
|
||
+潔 F 218:c
|
||
+穴 F 219:c
|
||
+結 F 220:c
|
||
+血 F 221:c
|
||
+訣 F 222:c
|
||
+月 F 223:c
|
||
+件 F 224:c
|
||
+倹 F 225:c
|
||
+倦 F 226:c
|
||
+健 F 227:c
|
||
+兼 F 228:c
|
||
+券 F 229:c
|
||
+剣 F 230:c
|
||
+喧 F 231:c
|
||
+圏 F 232:c
|
||
+堅 F 233:c
|
||
+嫌 F 234:c
|
||
+建 F 235:c
|
||
+憲 F 236:c
|
||
+懸 F 237:c
|
||
+拳 F 238:c
|
||
+捲 F 239:c
|
||
+検 F 240:c
|
||
+権 F 241:c
|
||
+牽 F 242:c
|
||
+犬 F 243:c
|
||
+献 F 244:c
|
||
+研 F 245:c
|
||
+硯 F 246:c
|
||
+絹 F 247:c
|
||
+県 F 248:c
|
||
+肩 F 249:c
|
||
+見 F 250:c
|
||
+謙 F 251:c
|
||
+賢 F 252:c
|
||
+軒 F 253:c
|
||
+遣 F 254:c
|
||
+鍵 F 255:c
|
||
+険 F 0:d
|
||
+顕 F 1:d
|
||
+験 F 2:d
|
||
+鹸 F 3:d
|
||
+元 F 4:d
|
||
+原 F 5:d
|
||
+厳 F 6:d
|
||
+幻 F 7:d
|
||
+弦 F 8:d
|
||
+減 F 9:d
|
||
+源 F 10:d
|
||
+玄 F 11:d
|
||
+現 F 12:d
|
||
+絃 F 13:d
|
||
+舷 F 14:d
|
||
+言 F 15:d
|
||
+諺 F 16:d
|
||
+限 F 17:d
|
||
+乎 F 18:d
|
||
+個 F 19:d
|
||
+古 F 20:d
|
||
+呼 F 21:d
|
||
+固 F 22:d
|
||
+姑 F 23:d
|
||
+孤 F 24:d
|
||
+己 F 25:d
|
||
+庫 F 26:d
|
||
+弧 F 27:d
|
||
+戸 F 28:d
|
||
+故 F 29:d
|
||
+枯 F 30:d
|
||
+湖 F 31:d
|
||
+狐 F 32:d
|
||
+糊 F 33:d
|
||
+袴 F 34:d
|
||
+股 F 35:d
|
||
+胡 F 36:d
|
||
+菰 F 37:d
|
||
+虎 F 38:d
|
||
+誇 F 39:d
|
||
+跨 F 40:d
|
||
+鈷 F 41:d
|
||
+雇 F 42:d
|
||
+顧 F 43:d
|
||
+鼓 F 44:d
|
||
+五 F 45:d
|
||
+互 F 46:d
|
||
+伍 F 47:d
|
||
+午 F 48:d
|
||
+呉 F 49:d
|
||
+吾 F 50:d
|
||
+娯 F 51:d
|
||
+後 F 52:d
|
||
+御 F 53:d
|
||
+悟 F 54:d
|
||
+梧 F 55:d
|
||
+檎 F 56:d
|
||
+瑚 F 57:d
|
||
+碁 F 58:d
|
||
+語 F 59:d
|
||
+誤 F 60:d
|
||
+護 F 61:d
|
||
+醐 F 62:d
|
||
+乞 F 63:d
|
||
+鯉 F 64:d
|
||
+交 F 65:d
|
||
+佼 F 66:d
|
||
+侯 F 67:d
|
||
+候 F 68:d
|
||
+倖 F 69:d
|
||
+光 F 70:d
|
||
+公 F 71:d
|
||
+功 F 72:d
|
||
+効 F 73:d
|
||
+勾 F 74:d
|
||
+厚 F 75:d
|
||
+口 F 76:d
|
||
+向 F 77:d
|
||
+后 F 78:d
|
||
+喉 F 79:d
|
||
+坑 F 80:d
|
||
+垢 F 81:d
|
||
+好 F 82:d
|
||
+孔 F 83:d
|
||
+孝 F 84:d
|
||
+宏 F 85:d
|
||
+工 F 86:d
|
||
+巧 F 87:d
|
||
+巷 F 88:d
|
||
+幸 F 89:d
|
||
+広 F 90:d
|
||
+庚 F 91:d
|
||
+康 F 92:d
|
||
+弘 F 93:d
|
||
+恒 F 94:d
|
||
+慌 F 95:d
|
||
+抗 F 96:d
|
||
+拘 F 97:d
|
||
+控 F 98:d
|
||
+攻 F 99:d
|
||
+昂 F 100:d
|
||
+晃 F 101:d
|
||
+更 F 102:d
|
||
+杭 F 103:d
|
||
+校 F 104:d
|
||
+梗 F 105:d
|
||
+構 F 106:d
|
||
+江 F 107:d
|
||
+洪 F 108:d
|
||
+浩 F 109:d
|
||
+港 F 110:d
|
||
+溝 F 111:d
|
||
+甲 F 112:d
|
||
+皇 F 113:d
|
||
+硬 F 114:d
|
||
+稿 F 115:d
|
||
+糠 F 116:d
|
||
+紅 F 117:d
|
||
+紘 F 118:d
|
||
+絞 F 119:d
|
||
+綱 F 120:d
|
||
+耕 F 121:d
|
||
+考 F 122:d
|
||
+肯 F 123:d
|
||
+肱 F 124:d
|
||
+腔 F 125:d
|
||
+膏 F 126:d
|
||
+航 F 127:d
|
||
+荒 F 128:d
|
||
+行 F 129:d
|
||
+衡 F 130:d
|
||
+講 F 131:d
|
||
+貢 F 132:d
|
||
+購 F 133:d
|
||
+郊 F 134:d
|
||
+酵 F 135:d
|
||
+鉱 F 136:d
|
||
+砿 F 137:d
|
||
+鋼 F 138:d
|
||
+閤 F 139:d
|
||
+降 F 140:d
|
||
+項 F 141:d
|
||
+香 F 142:d
|
||
+高 F 143:d
|
||
+鴻 F 144:d
|
||
+剛 F 145:d
|
||
+劫 F 146:d
|
||
+号 F 147:d
|
||
+合 F 148:d
|
||
+壕 F 149:d
|
||
+拷 F 150:d
|
||
+濠 F 151:d
|
||
+豪 F 152:d
|
||
+轟 F 153:d
|
||
+麹 F 154:d
|
||
+克 F 155:d
|
||
+刻 F 156:d
|
||
+告 F 157:d
|
||
+国 F 158:d
|
||
+穀 F 159:d
|
||
+酷 F 160:d
|
||
+鵠 F 161:d
|
||
+黒 F 162:d
|
||
+獄 F 163:d
|
||
+漉 F 164:d
|
||
+腰 F 165:d
|
||
+甑 F 166:d
|
||
+忽 F 167:d
|
||
+惚 F 168:d
|
||
+骨 F 169:d
|
||
+狛 F 170:d
|
||
+込 F 171:d
|
||
+此 F 172:d
|
||
+頃 F 173:d
|
||
+今 F 174:d
|
||
+困 F 175:d
|
||
+坤 F 176:d
|
||
+墾 F 177:d
|
||
+婚 F 178:d
|
||
+恨 F 179:d
|
||
+懇 F 180:d
|
||
+昏 F 181:d
|
||
+昆 F 182:d
|
||
+根 F 183:d
|
||
+梱 F 184:d
|
||
+混 F 185:d
|
||
+痕 F 186:d
|
||
+紺 F 187:d
|
||
+艮 F 188:d
|
||
+魂 F 189:d
|
||
+些 F 190:d
|
||
+佐 F 191:d
|
||
+叉 F 192:d
|
||
+唆 F 193:d
|
||
+嵯 F 194:d
|
||
+左 F 195:d
|
||
+差 F 196:d
|
||
+査 F 197:d
|
||
+沙 F 198:d
|
||
+瑳 F 199:d
|
||
+砂 F 200:d
|
||
+詐 F 201:d
|
||
+鎖 F 202:d
|
||
+裟 F 203:d
|
||
+坐 F 204:d
|
||
+座 F 205:d
|
||
+挫 F 206:d
|
||
+債 F 207:d
|
||
+催 F 208:d
|
||
+再 F 209:d
|
||
+最 F 210:d
|
||
+哉 F 211:d
|
||
+塞 F 212:d
|
||
+妻 F 213:d
|
||
+宰 F 214:d
|
||
+彩 F 215:d
|
||
+才 F 216:d
|
||
+採 F 217:d
|
||
+栽 F 218:d
|
||
+歳 F 219:d
|
||
+済 F 220:d
|
||
+災 F 221:d
|
||
+采 F 222:d
|
||
+犀 F 223:d
|
||
+砕 F 224:d
|
||
+砦 F 225:d
|
||
+祭 F 226:d
|
||
+斎 F 227:d
|
||
+細 F 228:d
|
||
+菜 F 229:d
|
||
+裁 F 230:d
|
||
+載 F 231:d
|
||
+際 F 232:d
|
||
+剤 F 233:d
|
||
+在 F 234:d
|
||
+材 F 235:d
|
||
+罪 F 236:d
|
||
+財 F 237:d
|
||
+冴 F 238:d
|
||
+坂 F 239:d
|
||
+阪 F 240:d
|
||
+堺 F 241:d
|
||
+榊 F 242:d
|
||
+肴 F 243:d
|
||
+咲 F 244:d
|
||
+崎 F 245:d
|
||
+埼 F 246:d
|
||
+碕 F 247:d
|
||
+鷺 F 248:d
|
||
+作 F 249:d
|
||
+削 F 250:d
|
||
+咋 F 251:d
|
||
+搾 F 252:d
|
||
+昨 F 253:d
|
||
+朔 F 254:d
|
||
+柵 F 255:d
|
||
+窄 F 0:e
|
||
+策 F 1:e
|
||
+索 F 2:e
|
||
+錯 F 3:e
|
||
+桜 F 4:e
|
||
+鮭 F 5:e
|
||
+笹 F 6:e
|
||
+匙 F 7:e
|
||
+冊 F 8:e
|
||
+刷 F 9:e
|
||
+察 F 10:e
|
||
+拶 F 11:e
|
||
+撮 F 12:e
|
||
+擦 F 13:e
|
||
+札 F 14:e
|
||
+殺 F 15:e
|
||
+薩 F 16:e
|
||
+雑 F 17:e
|
||
+皐 F 18:e
|
||
+鯖 F 19:e
|
||
+捌 F 20:e
|
||
+錆 F 21:e
|
||
+鮫 F 22:e
|
||
+皿 F 23:e
|
||
+晒 F 24:e
|
||
+三 F 25:e
|
||
+傘 F 26:e
|
||
+参 F 27:e
|
||
+山 F 28:e
|
||
+惨 F 29:e
|
||
+撒 F 30:e
|
||
+散 F 31:e
|
||
+桟 F 32:e
|
||
+燦 F 33:e
|
||
+珊 F 34:e
|
||
+産 F 35:e
|
||
+算 F 36:e
|
||
+纂 F 37:e
|
||
+蚕 F 38:e
|
||
+讃 F 39:e
|
||
+賛 F 40:e
|
||
+酸 F 41:e
|
||
+餐 F 42:e
|
||
+斬 F 43:e
|
||
+暫 F 44:e
|
||
+残 F 45:e
|
||
+仕 F 46:e
|
||
+仔 F 47:e
|
||
+伺 F 48:e
|
||
+使 F 49:e
|
||
+刺 F 50:e
|
||
+司 F 51:e
|
||
+史 F 52:e
|
||
+嗣 F 53:e
|
||
+四 F 54:e
|
||
+士 F 55:e
|
||
+始 F 56:e
|
||
+姉 F 57:e
|
||
+姿 F 58:e
|
||
+子 F 59:e
|
||
+屍 F 60:e
|
||
+市 F 61:e
|
||
+師 F 62:e
|
||
+志 F 63:e
|
||
+思 F 64:e
|
||
+指 F 65:e
|
||
+支 F 66:e
|
||
+孜 F 67:e
|
||
+斯 F 68:e
|
||
+施 F 69:e
|
||
+旨 F 70:e
|
||
+枝 F 71:e
|
||
+止 F 72:e
|
||
+死 F 73:e
|
||
+氏 F 74:e
|
||
+獅 F 75:e
|
||
+祉 F 76:e
|
||
+私 F 77:e
|
||
+糸 F 78:e
|
||
+紙 F 79:e
|
||
+紫 F 80:e
|
||
+肢 F 81:e
|
||
+脂 F 82:e
|
||
+至 F 83:e
|
||
+視 F 84:e
|
||
+詞 F 85:e
|
||
+詩 F 86:e
|
||
+試 F 87:e
|
||
+誌 F 88:e
|
||
+諮 F 89:e
|
||
+資 F 90:e
|
||
+賜 F 91:e
|
||
+雌 F 92:e
|
||
+飼 F 93:e
|
||
+歯 F 94:e
|
||
+事 F 95:e
|
||
+似 F 96:e
|
||
+侍 F 97:e
|
||
+児 F 98:e
|
||
+字 F 99:e
|
||
+寺 F 100:e
|
||
+慈 F 101:e
|
||
+持 F 102:e
|
||
+時 F 103:e
|
||
+次 F 104:e
|
||
+滋 F 105:e
|
||
+治 F 106:e
|
||
+爾 F 107:e
|
||
+璽 F 108:e
|
||
+痔 F 109:e
|
||
+磁 F 110:e
|
||
+示 F 111:e
|
||
+而 F 112:e
|
||
+耳 F 113:e
|
||
+自 F 114:e
|
||
+蒔 F 115:e
|
||
+辞 F 116:e
|
||
+汐 F 117:e
|
||
+鹿 F 118:e
|
||
+式 F 119:e
|
||
+識 F 120:e
|
||
+鴫 F 121:e
|
||
+竺 F 122:e
|
||
+軸 F 123:e
|
||
+宍 F 124:e
|
||
+雫 F 125:e
|
||
+七 F 126:e
|
||
+叱 F 127:e
|
||
+執 F 128:e
|
||
+失 F 129:e
|
||
+嫉 F 130:e
|
||
+室 F 131:e
|
||
+悉 F 132:e
|
||
+湿 F 133:e
|
||
+漆 F 134:e
|
||
+疾 F 135:e
|
||
+質 F 136:e
|
||
+実 F 137:e
|
||
+蔀 F 138:e
|
||
+篠 F 139:e
|
||
+偲 F 140:e
|
||
+柴 F 141:e
|
||
+芝 F 142:e
|
||
+屡 F 143:e
|
||
+蕊 F 144:e
|
||
+縞 F 145:e
|
||
+舎 F 146:e
|
||
+写 F 147:e
|
||
+射 F 148:e
|
||
+捨 F 149:e
|
||
+赦 F 150:e
|
||
+斜 F 151:e
|
||
+煮 F 152:e
|
||
+社 F 153:e
|
||
+紗 F 154:e
|
||
+者 F 155:e
|
||
+謝 F 156:e
|
||
+車 F 157:e
|
||
+遮 F 158:e
|
||
+蛇 F 159:e
|
||
+邪 F 160:e
|
||
+借 F 161:e
|
||
+勺 F 162:e
|
||
+尺 F 163:e
|
||
+杓 F 164:e
|
||
+灼 F 165:e
|
||
+爵 F 166:e
|
||
+酌 F 167:e
|
||
+釈 F 168:e
|
||
+錫 F 169:e
|
||
+若 F 170:e
|
||
+寂 F 171:e
|
||
+弱 F 172:e
|
||
+惹 F 173:e
|
||
+主 F 174:e
|
||
+取 F 175:e
|
||
+守 F 176:e
|
||
+手 F 177:e
|
||
+朱 F 178:e
|
||
+殊 F 179:e
|
||
+狩 F 180:e
|
||
+珠 F 181:e
|
||
+種 F 182:e
|
||
+腫 F 183:e
|
||
+趣 F 184:e
|
||
+酒 F 185:e
|
||
+首 F 186:e
|
||
+儒 F 187:e
|
||
+受 F 188:e
|
||
+呪 F 189:e
|
||
+寿 F 190:e
|
||
+授 F 191:e
|
||
+樹 F 192:e
|
||
+綬 F 193:e
|
||
+需 F 194:e
|
||
+囚 F 195:e
|
||
+収 F 196:e
|
||
+周 F 197:e
|
||
+宗 F 198:e
|
||
+就 F 199:e
|
||
+州 F 200:e
|
||
+修 F 201:e
|
||
+愁 F 202:e
|
||
+拾 F 203:e
|
||
+洲 F 204:e
|
||
+秀 F 205:e
|
||
+秋 F 206:e
|
||
+終 F 207:e
|
||
+繍 F 208:e
|
||
+習 F 209:e
|
||
+臭 F 210:e
|
||
+舟 F 211:e
|
||
+蒐 F 212:e
|
||
+衆 F 213:e
|
||
+襲 F 214:e
|
||
+讐 F 215:e
|
||
+蹴 F 216:e
|
||
+輯 F 217:e
|
||
+週 F 218:e
|
||
+酋 F 219:e
|
||
+酬 F 220:e
|
||
+集 F 221:e
|
||
+醜 F 222:e
|
||
+什 F 223:e
|
||
+住 F 224:e
|
||
+充 F 225:e
|
||
+十 F 226:e
|
||
+従 F 227:e
|
||
+戎 F 228:e
|
||
+柔 F 229:e
|
||
+汁 F 230:e
|
||
+渋 F 231:e
|
||
+獣 F 232:e
|
||
+縦 F 233:e
|
||
+重 F 234:e
|
||
+銃 F 235:e
|
||
+叔 F 236:e
|
||
+夙 F 237:e
|
||
+宿 F 238:e
|
||
+淑 F 239:e
|
||
+祝 F 240:e
|
||
+縮 F 241:e
|
||
+粛 F 242:e
|
||
+塾 F 243:e
|
||
+熟 F 244:e
|
||
+出 F 245:e
|
||
+術 F 246:e
|
||
+述 F 247:e
|
||
+俊 F 248:e
|
||
+峻 F 249:e
|
||
+春 F 250:e
|
||
+瞬 F 251:e
|
||
+竣 F 252:e
|
||
+舜 F 253:e
|
||
+駿 F 254:e
|
||
+准 F 255:e
|
||
+循 F 0:f
|
||
+旬 F 1:f
|
||
+楯 F 2:f
|
||
+殉 F 3:f
|
||
+淳 F 4:f
|
||
+準 F 5:f
|
||
+潤 F 6:f
|
||
+盾 F 7:f
|
||
+純 F 8:f
|
||
+巡 F 9:f
|
||
+遵 F 10:f
|
||
+醇 F 11:f
|
||
+順 F 12:f
|
||
+処 F 13:f
|
||
+初 F 14:f
|
||
+所 F 15:f
|
||
+暑 F 16:f
|
||
+曙 F 17:f
|
||
+渚 F 18:f
|
||
+庶 F 19:f
|
||
+緒 F 20:f
|
||
+署 F 21:f
|
||
+書 F 22:f
|
||
+薯 F 23:f
|
||
+藷 F 24:f
|
||
+諸 F 25:f
|
||
+助 F 26:f
|
||
+叙 F 27:f
|
||
+女 F 28:f
|
||
+序 F 29:f
|
||
+徐 F 30:f
|
||
+恕 F 31:f
|
||
+鋤 F 32:f
|
||
+除 F 33:f
|
||
+傷 F 34:f
|
||
+償 F 35:f
|
||
+勝 F 36:f
|
||
+匠 F 37:f
|
||
+升 F 38:f
|
||
+召 F 39:f
|
||
+哨 F 40:f
|
||
+商 F 41:f
|
||
+唱 F 42:f
|
||
+嘗 F 43:f
|
||
+奨 F 44:f
|
||
+妾 F 45:f
|
||
+娼 F 46:f
|
||
+宵 F 47:f
|
||
+将 F 48:f
|
||
+小 F 49:f
|
||
+少 F 50:f
|
||
+尚 F 51:f
|
||
+庄 F 52:f
|
||
+床 F 53:f
|
||
+廠 F 54:f
|
||
+彰 F 55:f
|
||
+承 F 56:f
|
||
+抄 F 57:f
|
||
+招 F 58:f
|
||
+掌 F 59:f
|
||
+捷 F 60:f
|
||
+昇 F 61:f
|
||
+昌 F 62:f
|
||
+昭 F 63:f
|
||
+晶 F 64:f
|
||
+松 F 65:f
|
||
+梢 F 66:f
|
||
+樟 F 67:f
|
||
+樵 F 68:f
|
||
+沼 F 69:f
|
||
+消 F 70:f
|
||
+渉 F 71:f
|
||
+湘 F 72:f
|
||
+焼 F 73:f
|
||
+焦 F 74:f
|
||
+照 F 75:f
|
||
+症 F 76:f
|
||
+省 F 77:f
|
||
+硝 F 78:f
|
||
+礁 F 79:f
|
||
+祥 F 80:f
|
||
+称 F 81:f
|
||
+章 F 82:f
|
||
+笑 F 83:f
|
||
+粧 F 84:f
|
||
+紹 F 85:f
|
||
+肖 F 86:f
|
||
+菖 F 87:f
|
||
+蒋 F 88:f
|
||
+蕉 F 89:f
|
||
+衝 F 90:f
|
||
+裳 F 91:f
|
||
+訟 F 92:f
|
||
+証 F 93:f
|
||
+詔 F 94:f
|
||
+詳 F 95:f
|
||
+象 F 96:f
|
||
+賞 F 97:f
|
||
+醤 F 98:f
|
||
+鉦 F 99:f
|
||
+鍾 F 100:f
|
||
+鐘 F 101:f
|
||
+障 F 102:f
|
||
+鞘 F 103:f
|
||
+上 F 104:f
|
||
+丈 F 105:f
|
||
+丞 F 106:f
|
||
+乗 F 107:f
|
||
+冗 F 108:f
|
||
+剰 F 109:f
|
||
+城 F 110:f
|
||
+場 F 111:f
|
||
+壌 F 112:f
|
||
+嬢 F 113:f
|
||
+常 F 114:f
|
||
+情 F 115:f
|
||
+擾 F 116:f
|
||
+条 F 117:f
|
||
+杖 F 118:f
|
||
+浄 F 119:f
|
||
+状 F 120:f
|
||
+畳 F 121:f
|
||
+穣 F 122:f
|
||
+蒸 F 123:f
|
||
+譲 F 124:f
|
||
+醸 F 125:f
|
||
+錠 F 126:f
|
||
+嘱 F 127:f
|
||
+埴 F 128:f
|
||
+飾 F 129:f
|
||
+拭 F 130:f
|
||
+植 F 131:f
|
||
+殖 F 132:f
|
||
+燭 F 133:f
|
||
+織 F 134:f
|
||
+職 F 135:f
|
||
+色 F 136:f
|
||
+触 F 137:f
|
||
+食 F 138:f
|
||
+蝕 F 139:f
|
||
+辱 F 140:f
|
||
+尻 F 141:f
|
||
+伸 F 142:f
|
||
+信 F 143:f
|
||
+侵 F 144:f
|
||
+唇 F 145:f
|
||
+娠 F 146:f
|
||
+寝 F 147:f
|
||
+審 F 148:f
|
||
+心 F 149:f
|
||
+慎 F 150:f
|
||
+振 F 151:f
|
||
+新 F 152:f
|
||
+晋 F 153:f
|
||
+森 F 154:f
|
||
+榛 F 155:f
|
||
+浸 F 156:f
|
||
+深 F 157:f
|
||
+申 F 158:f
|
||
+疹 F 159:f
|
||
+真 F 160:f
|
||
+神 F 161:f
|
||
+秦 F 162:f
|
||
+紳 F 163:f
|
||
+臣 F 164:f
|
||
+芯 F 165:f
|
||
+薪 F 166:f
|
||
+親 F 167:f
|
||
+診 F 168:f
|
||
+身 F 169:f
|
||
+辛 F 170:f
|
||
+進 F 171:f
|
||
+針 F 172:f
|
||
+震 F 173:f
|
||
+人 F 174:f
|
||
+仁 F 175:f
|
||
+刃 F 176:f
|
||
+塵 F 177:f
|
||
+壬 F 178:f
|
||
+尋 F 179:f
|
||
+甚 F 180:f
|
||
+尽 F 181:f
|
||
+腎 F 182:f
|
||
+訊 F 183:f
|
||
+迅 F 184:f
|
||
+陣 F 185:f
|
||
+靭 F 186:f
|
||
+笥 F 187:f
|
||
+諏 F 188:f
|
||
+須 F 189:f
|
||
+酢 F 190:f
|
||
+図 F 191:f
|
||
+厨 F 192:f
|
||
+逗 F 193:f
|
||
+吹 F 194:f
|
||
+垂 F 195:f
|
||
+帥 F 196:f
|
||
+推 F 197:f
|
||
+水 F 198:f
|
||
+炊 F 199:f
|
||
+睡 F 200:f
|
||
+粋 F 201:f
|
||
+翠 F 202:f
|
||
+衰 F 203:f
|
||
+遂 F 204:f
|
||
+酔 F 205:f
|
||
+錐 F 206:f
|
||
+錘 F 207:f
|
||
+随 F 208:f
|
||
+瑞 F 209:f
|
||
+髄 F 210:f
|
||
+崇 F 211:f
|
||
+嵩 F 212:f
|
||
+数 F 213:f
|
||
+枢 F 214:f
|
||
+趨 F 215:f
|
||
+雛 F 216:f
|
||
+据 F 217:f
|
||
+杉 F 218:f
|
||
+椙 F 219:f
|
||
+菅 F 220:f
|
||
+頗 F 221:f
|
||
+雀 F 222:f
|
||
+裾 F 223:f
|
||
+澄 F 224:f
|
||
+摺 F 225:f
|
||
+寸 F 226:f
|
||
+世 F 227:f
|
||
+瀬 F 228:f
|
||
+畝 F 229:f
|
||
+是 F 230:f
|
||
+凄 F 231:f
|
||
+制 F 232:f
|
||
+勢 F 233:f
|
||
+姓 F 234:f
|
||
+征 F 235:f
|
||
+性 F 236:f
|
||
+成 F 237:f
|
||
+政 F 238:f
|
||
+整 F 239:f
|
||
+星 F 240:f
|
||
+晴 F 241:f
|
||
+棲 F 242:f
|
||
+栖 F 243:f
|
||
+正 F 244:f
|
||
+清 F 245:f
|
||
+牲 F 246:f
|
||
+生 F 247:f
|
||
+盛 F 248:f
|
||
+精 F 249:f
|
||
+聖 F 250:f
|
||
+声 F 251:f
|
||
+製 F 252:f
|
||
+西 F 253:f
|
||
+誠 F 254:f
|
||
+誓 F 255:f
|
||
+請 F 0:g
|
||
+逝 F 1:g
|
||
+醒 F 2:g
|
||
+青 F 3:g
|
||
+静 F 4:g
|
||
+斉 F 5:g
|
||
+税 F 6:g
|
||
+脆 F 7:g
|
||
+隻 F 8:g
|
||
+席 F 9:g
|
||
+惜 F 10:g
|
||
+戚 F 11:g
|
||
+斥 F 12:g
|
||
+昔 F 13:g
|
||
+析 F 14:g
|
||
+石 F 15:g
|
||
+積 F 16:g
|
||
+籍 F 17:g
|
||
+績 F 18:g
|
||
+脊 F 19:g
|
||
+責 F 20:g
|
||
+赤 F 21:g
|
||
+跡 F 22:g
|
||
+蹟 F 23:g
|
||
+碩 F 24:g
|
||
+切 F 25:g
|
||
+拙 F 26:g
|
||
+接 F 27:g
|
||
+摂 F 28:g
|
||
+折 F 29:g
|
||
+設 F 30:g
|
||
+窃 F 31:g
|
||
+節 F 32:g
|
||
+説 F 33:g
|
||
+雪 F 34:g
|
||
+絶 F 35:g
|
||
+舌 F 36:g
|
||
+蝉 F 37:g
|
||
+仙 F 38:g
|
||
+先 F 39:g
|
||
+千 F 40:g
|
||
+占 F 41:g
|
||
+宣 F 42:g
|
||
+専 F 43:g
|
||
+尖 F 44:g
|
||
+川 F 45:g
|
||
+戦 F 46:g
|
||
+扇 F 47:g
|
||
+撰 F 48:g
|
||
+栓 F 49:g
|
||
+栴 F 50:g
|
||
+泉 F 51:g
|
||
+浅 F 52:g
|
||
+洗 F 53:g
|
||
+染 F 54:g
|
||
+潜 F 55:g
|
||
+煎 F 56:g
|
||
+煽 F 57:g
|
||
+旋 F 58:g
|
||
+穿 F 59:g
|
||
+箭 F 60:g
|
||
+線 F 61:g
|
||
+繊 F 62:g
|
||
+羨 F 63:g
|
||
+腺 F 64:g
|
||
+舛 F 65:g
|
||
+船 F 66:g
|
||
+薦 F 67:g
|
||
+詮 F 68:g
|
||
+賎 F 69:g
|
||
+践 F 70:g
|
||
+選 F 71:g
|
||
+遷 F 72:g
|
||
+銭 F 73:g
|
||
+銑 F 74:g
|
||
+閃 F 75:g
|
||
+鮮 F 76:g
|
||
+前 F 77:g
|
||
+善 F 78:g
|
||
+漸 F 79:g
|
||
+然 F 80:g
|
||
+全 F 81:g
|
||
+禅 F 82:g
|
||
+繕 F 83:g
|
||
+膳 F 84:g
|
||
+糎 F 85:g
|
||
+噌 F 86:g
|
||
+塑 F 87:g
|
||
+岨 F 88:g
|
||
+措 F 89:g
|
||
+曾 F 90:g
|
||
+曽 F 91:g
|
||
+楚 F 92:g
|
||
+狙 F 93:g
|
||
+疏 F 94:g
|
||
+疎 F 95:g
|
||
+礎 F 96:g
|
||
+祖 F 97:g
|
||
+租 F 98:g
|
||
+粗 F 99:g
|
||
+素 F 100:g
|
||
+組 F 101:g
|
||
+蘇 F 102:g
|
||
+訴 F 103:g
|
||
+阻 F 104:g
|
||
+遡 F 105:g
|
||
+鼠 F 106:g
|
||
+僧 F 107:g
|
||
+創 F 108:g
|
||
+双 F 109:g
|
||
+叢 F 110:g
|
||
+倉 F 111:g
|
||
+喪 F 112:g
|
||
+壮 F 113:g
|
||
+奏 F 114:g
|
||
+爽 F 115:g
|
||
+宋 F 116:g
|
||
+層 F 117:g
|
||
+匝 F 118:g
|
||
+惣 F 119:g
|
||
+想 F 120:g
|
||
+捜 F 121:g
|
||
+掃 F 122:g
|
||
+挿 F 123:g
|
||
+掻 F 124:g
|
||
+操 F 125:g
|
||
+早 F 126:g
|
||
+曹 F 127:g
|
||
+巣 F 128:g
|
||
+槍 F 129:g
|
||
+槽 F 130:g
|
||
+漕 F 131:g
|
||
+燥 F 132:g
|
||
+争 F 133:g
|
||
+痩 F 134:g
|
||
+相 F 135:g
|
||
+窓 F 136:g
|
||
+糟 F 137:g
|
||
+総 F 138:g
|
||
+綜 F 139:g
|
||
+聡 F 140:g
|
||
+草 F 141:g
|
||
+荘 F 142:g
|
||
+葬 F 143:g
|
||
+蒼 F 144:g
|
||
+藻 F 145:g
|
||
+装 F 146:g
|
||
+走 F 147:g
|
||
+送 F 148:g
|
||
+遭 F 149:g
|
||
+鎗 F 150:g
|
||
+霜 F 151:g
|
||
+騒 F 152:g
|
||
+像 F 153:g
|
||
+増 F 154:g
|
||
+憎 F 155:g
|
||
+臓 F 156:g
|
||
+蔵 F 157:g
|
||
+贈 F 158:g
|
||
+造 F 159:g
|
||
+促 F 160:g
|
||
+側 F 161:g
|
||
+則 F 162:g
|
||
+即 F 163:g
|
||
+息 F 164:g
|
||
+捉 F 165:g
|
||
+束 F 166:g
|
||
+測 F 167:g
|
||
+足 F 168:g
|
||
+速 F 169:g
|
||
+俗 F 170:g
|
||
+属 F 171:g
|
||
+賊 F 172:g
|
||
+族 F 173:g
|
||
+続 F 174:g
|
||
+卒 F 175:g
|
||
+袖 F 176:g
|
||
+其 F 177:g
|
||
+揃 F 178:g
|
||
+存 F 179:g
|
||
+孫 F 180:g
|
||
+尊 F 181:g
|
||
+損 F 182:g
|
||
+村 F 183:g
|
||
+遜 F 184:g
|
||
+他 F 185:g
|
||
+多 F 186:g
|
||
+太 F 187:g
|
||
+汰 F 188:g
|
||
+詑 F 189:g
|
||
+唾 F 190:g
|
||
+堕 F 191:g
|
||
+妥 F 192:g
|
||
+惰 F 193:g
|
||
+打 F 194:g
|
||
+柁 F 195:g
|
||
+舵 F 196:g
|
||
+楕 F 197:g
|
||
+陀 F 198:g
|
||
+駄 F 199:g
|
||
+騨 F 200:g
|
||
+体 F 201:g
|
||
+堆 F 202:g
|
||
+対 F 203:g
|
||
+耐 F 204:g
|
||
+岱 F 205:g
|
||
+帯 F 206:g
|
||
+待 F 207:g
|
||
+怠 F 208:g
|
||
+態 F 209:g
|
||
+戴 F 210:g
|
||
+替 F 211:g
|
||
+泰 F 212:g
|
||
+滞 F 213:g
|
||
+胎 F 214:g
|
||
+腿 F 215:g
|
||
+苔 F 216:g
|
||
+袋 F 217:g
|
||
+貸 F 218:g
|
||
+退 F 219:g
|
||
+逮 F 220:g
|
||
+隊 F 221:g
|
||
+黛 F 222:g
|
||
+鯛 F 223:g
|
||
+代 F 224:g
|
||
+台 F 225:g
|
||
+大 F 226:g
|
||
+第 F 227:g
|
||
+醍 F 228:g
|
||
+題 F 229:g
|
||
+鷹 F 230:g
|
||
+滝 F 231:g
|
||
+瀧 F 232:g
|
||
+卓 F 233:g
|
||
+啄 F 234:g
|
||
+宅 F 235:g
|
||
+托 F 236:g
|
||
+択 F 237:g
|
||
+拓 F 238:g
|
||
+沢 F 239:g
|
||
+濯 F 240:g
|
||
+琢 F 241:g
|
||
+託 F 242:g
|
||
+鐸 F 243:g
|
||
+濁 F 244:g
|
||
+諾 F 245:g
|
||
+茸 F 246:g
|
||
+凧 F 247:g
|
||
+蛸 F 248:g
|
||
+只 F 249:g
|
||
+叩 F 250:g
|
||
+但 F 251:g
|
||
+達 F 252:g
|
||
+辰 F 253:g
|
||
+奪 F 254:g
|
||
+脱 F 255:g
|
||
+巽 F 0:h
|
||
+竪 F 1:h
|
||
+辿 F 2:h
|
||
+棚 F 3:h
|
||
+谷 F 4:h
|
||
+狸 F 5:h
|
||
+鱈 F 6:h
|
||
+樽 F 7:h
|
||
+誰 F 8:h
|
||
+丹 F 9:h
|
||
+単 F 10:h
|
||
+嘆 F 11:h
|
||
+坦 F 12:h
|
||
+担 F 13:h
|
||
+探 F 14:h
|
||
+旦 F 15:h
|
||
+歎 F 16:h
|
||
+淡 F 17:h
|
||
+湛 F 18:h
|
||
+炭 F 19:h
|
||
+短 F 20:h
|
||
+端 F 21:h
|
||
+箪 F 22:h
|
||
+綻 F 23:h
|
||
+耽 F 24:h
|
||
+胆 F 25:h
|
||
+蛋 F 26:h
|
||
+誕 F 27:h
|
||
+鍛 F 28:h
|
||
+団 F 29:h
|
||
+壇 F 30:h
|
||
+弾 F 31:h
|
||
+断 F 32:h
|
||
+暖 F 33:h
|
||
+檀 F 34:h
|
||
+段 F 35:h
|
||
+男 F 36:h
|
||
+談 F 37:h
|
||
+値 F 38:h
|
||
+知 F 39:h
|
||
+地 F 40:h
|
||
+弛 F 41:h
|
||
+恥 F 42:h
|
||
+智 F 43:h
|
||
+池 F 44:h
|
||
+痴 F 45:h
|
||
+稚 F 46:h
|
||
+置 F 47:h
|
||
+致 F 48:h
|
||
+蜘 F 49:h
|
||
+遅 F 50:h
|
||
+馳 F 51:h
|
||
+築 F 52:h
|
||
+畜 F 53:h
|
||
+竹 F 54:h
|
||
+筑 F 55:h
|
||
+蓄 F 56:h
|
||
+逐 F 57:h
|
||
+秩 F 58:h
|
||
+窒 F 59:h
|
||
+茶 F 60:h
|
||
+嫡 F 61:h
|
||
+着 F 62:h
|
||
+中 F 63:h
|
||
+仲 F 64:h
|
||
+宙 F 65:h
|
||
+忠 F 66:h
|
||
+抽 F 67:h
|
||
+昼 F 68:h
|
||
+柱 F 69:h
|
||
+注 F 70:h
|
||
+虫 F 71:h
|
||
+衷 F 72:h
|
||
+註 F 73:h
|
||
+酎 F 74:h
|
||
+鋳 F 75:h
|
||
+駐 F 76:h
|
||
+樗 F 77:h
|
||
+瀦 F 78:h
|
||
+猪 F 79:h
|
||
+苧 F 80:h
|
||
+著 F 81:h
|
||
+貯 F 82:h
|
||
+丁 F 83:h
|
||
+兆 F 84:h
|
||
+凋 F 85:h
|
||
+喋 F 86:h
|
||
+寵 F 87:h
|
||
+帖 F 88:h
|
||
+帳 F 89:h
|
||
+庁 F 90:h
|
||
+弔 F 91:h
|
||
+張 F 92:h
|
||
+彫 F 93:h
|
||
+徴 F 94:h
|
||
+懲 F 95:h
|
||
+挑 F 96:h
|
||
+暢 F 97:h
|
||
+朝 F 98:h
|
||
+潮 F 99:h
|
||
+牒 F 100:h
|
||
+町 F 101:h
|
||
+眺 F 102:h
|
||
+聴 F 103:h
|
||
+脹 F 104:h
|
||
+腸 F 105:h
|
||
+蝶 F 106:h
|
||
+調 F 107:h
|
||
+諜 F 108:h
|
||
+超 F 109:h
|
||
+跳 F 110:h
|
||
+銚 F 111:h
|
||
+長 F 112:h
|
||
+頂 F 113:h
|
||
+鳥 F 114:h
|
||
+勅 F 115:h
|
||
+捗 F 116:h
|
||
+直 F 117:h
|
||
+朕 F 118:h
|
||
+沈 F 119:h
|
||
+珍 F 120:h
|
||
+賃 F 121:h
|
||
+鎮 F 122:h
|
||
+陳 F 123:h
|
||
+津 F 124:h
|
||
+墜 F 125:h
|
||
+椎 F 126:h
|
||
+槌 F 127:h
|
||
+追 F 128:h
|
||
+鎚 F 129:h
|
||
+痛 F 130:h
|
||
+通 F 131:h
|
||
+塚 F 132:h
|
||
+栂 F 133:h
|
||
+掴 F 134:h
|
||
+槻 F 135:h
|
||
+佃 F 136:h
|
||
+漬 F 137:h
|
||
+柘 F 138:h
|
||
+辻 F 139:h
|
||
+蔦 F 140:h
|
||
+綴 F 141:h
|
||
+鍔 F 142:h
|
||
+椿 F 143:h
|
||
+潰 F 144:h
|
||
+坪 F 145:h
|
||
+壷 F 146:h
|
||
+嬬 F 147:h
|
||
+紬 F 148:h
|
||
+爪 F 149:h
|
||
+吊 F 150:h
|
||
+釣 F 151:h
|
||
+鶴 F 152:h
|
||
+亭 F 153:h
|
||
+低 F 154:h
|
||
+停 F 155:h
|
||
+偵 F 156:h
|
||
+剃 F 157:h
|
||
+貞 F 158:h
|
||
+呈 F 159:h
|
||
+堤 F 160:h
|
||
+定 F 161:h
|
||
+帝 F 162:h
|
||
+底 F 163:h
|
||
+庭 F 164:h
|
||
+廷 F 165:h
|
||
+弟 F 166:h
|
||
+悌 F 167:h
|
||
+抵 F 168:h
|
||
+挺 F 169:h
|
||
+提 F 170:h
|
||
+梯 F 171:h
|
||
+汀 F 172:h
|
||
+碇 F 173:h
|
||
+禎 F 174:h
|
||
+程 F 175:h
|
||
+締 F 176:h
|
||
+艇 F 177:h
|
||
+訂 F 178:h
|
||
+諦 F 179:h
|
||
+蹄 F 180:h
|
||
+逓 F 181:h
|
||
+邸 F 182:h
|
||
+鄭 F 183:h
|
||
+釘 F 184:h
|
||
+鼎 F 185:h
|
||
+泥 F 186:h
|
||
+摘 F 187:h
|
||
+擢 F 188:h
|
||
+敵 F 189:h
|
||
+滴 F 190:h
|
||
+的 F 191:h
|
||
+笛 F 192:h
|
||
+適 F 193:h
|
||
+鏑 F 194:h
|
||
+溺 F 195:h
|
||
+哲 F 196:h
|
||
+徹 F 197:h
|
||
+撤 F 198:h
|
||
+轍 F 199:h
|
||
+迭 F 200:h
|
||
+鉄 F 201:h
|
||
+典 F 202:h
|
||
+填 F 203:h
|
||
+天 F 204:h
|
||
+展 F 205:h
|
||
+店 F 206:h
|
||
+添 F 207:h
|
||
+纏 F 208:h
|
||
+甜 F 209:h
|
||
+貼 F 210:h
|
||
+転 F 211:h
|
||
+顛 F 212:h
|
||
+点 F 213:h
|
||
+伝 F 214:h
|
||
+殿 F 215:h
|
||
+澱 F 216:h
|
||
+田 F 217:h
|
||
+電 F 218:h
|
||
+兎 F 219:h
|
||
+吐 F 220:h
|
||
+堵 F 221:h
|
||
+塗 F 222:h
|
||
+妬 F 223:h
|
||
+屠 F 224:h
|
||
+徒 F 225:h
|
||
+斗 F 226:h
|
||
+杜 F 227:h
|
||
+渡 F 228:h
|
||
+登 F 229:h
|
||
+菟 F 230:h
|
||
+賭 F 231:h
|
||
+途 F 232:h
|
||
+都 F 233:h
|
||
+鍍 F 234:h
|
||
+砥 F 235:h
|
||
+砺 F 236:h
|
||
+努 F 237:h
|
||
+度 F 238:h
|
||
+土 F 239:h
|
||
+奴 F 240:h
|
||
+怒 F 241:h
|
||
+倒 F 242:h
|
||
+党 F 243:h
|
||
+冬 F 244:h
|
||
+凍 F 245:h
|
||
+刀 F 246:h
|
||
+唐 F 247:h
|
||
+塔 F 248:h
|
||
+塘 F 249:h
|
||
+套 F 250:h
|
||
+宕 F 251:h
|
||
+島 F 252:h
|
||
+嶋 F 253:h
|
||
+悼 F 254:h
|
||
+投 F 255:h
|
||
+搭 F 0:i
|
||
+東 F 1:i
|
||
+桃 F 2:i
|
||
+梼 F 3:i
|
||
+棟 F 4:i
|
||
+盗 F 5:i
|
||
+淘 F 6:i
|
||
+湯 F 7:i
|
||
+涛 F 8:i
|
||
+灯 F 9:i
|
||
+燈 F 10:i
|
||
+当 F 11:i
|
||
+痘 F 12:i
|
||
+祷 F 13:i
|
||
+等 F 14:i
|
||
+答 F 15:i
|
||
+筒 F 16:i
|
||
+糖 F 17:i
|
||
+統 F 18:i
|
||
+到 F 19:i
|
||
+董 F 20:i
|
||
+蕩 F 21:i
|
||
+藤 F 22:i
|
||
+討 F 23:i
|
||
+謄 F 24:i
|
||
+豆 F 25:i
|
||
+踏 F 26:i
|
||
+逃 F 27:i
|
||
+透 F 28:i
|
||
+鐙 F 29:i
|
||
+陶 F 30:i
|
||
+頭 F 31:i
|
||
+騰 F 32:i
|
||
+闘 F 33:i
|
||
+働 F 34:i
|
||
+動 F 35:i
|
||
+同 F 36:i
|
||
+堂 F 37:i
|
||
+導 F 38:i
|
||
+憧 F 39:i
|
||
+撞 F 40:i
|
||
+洞 F 41:i
|
||
+瞳 F 42:i
|
||
+童 F 43:i
|
||
+胴 F 44:i
|
||
+萄 F 45:i
|
||
+道 F 46:i
|
||
+銅 F 47:i
|
||
+峠 F 48:i
|
||
+鴇 F 49:i
|
||
+匿 F 50:i
|
||
+得 F 51:i
|
||
+徳 F 52:i
|
||
+涜 F 53:i
|
||
+特 F 54:i
|
||
+督 F 55:i
|
||
+禿 F 56:i
|
||
+篤 F 57:i
|
||
+毒 F 58:i
|
||
+独 F 59:i
|
||
+読 F 60:i
|
||
+栃 F 61:i
|
||
+橡 F 62:i
|
||
+凸 F 63:i
|
||
+突 F 64:i
|
||
+椴 F 65:i
|
||
+届 F 66:i
|
||
+鳶 F 67:i
|
||
+苫 F 68:i
|
||
+寅 F 69:i
|
||
+酉 F 70:i
|
||
+瀞 F 71:i
|
||
+噸 F 72:i
|
||
+屯 F 73:i
|
||
+惇 F 74:i
|
||
+敦 F 75:i
|
||
+沌 F 76:i
|
||
+豚 F 77:i
|
||
+遁 F 78:i
|
||
+頓 F 79:i
|
||
+呑 F 80:i
|
||
+曇 F 81:i
|
||
+鈍 F 82:i
|
||
+奈 F 83:i
|
||
+那 F 84:i
|
||
+内 F 85:i
|
||
+乍 F 86:i
|
||
+凪 F 87:i
|
||
+薙 F 88:i
|
||
+謎 F 89:i
|
||
+灘 F 90:i
|
||
+捺 F 91:i
|
||
+鍋 F 92:i
|
||
+楢 F 93:i
|
||
+馴 F 94:i
|
||
+縄 F 95:i
|
||
+畷 F 96:i
|
||
+南 F 97:i
|
||
+楠 F 98:i
|
||
+軟 F 99:i
|
||
+難 F 100:i
|
||
+汝 F 101:i
|
||
+二 F 102:i
|
||
+尼 F 103:i
|
||
+弐 F 104:i
|
||
+迩 F 105:i
|
||
+匂 F 106:i
|
||
+賑 F 107:i
|
||
+肉 F 108:i
|
||
+虹 F 109:i
|
||
+廿 F 110:i
|
||
+日 F 111:i
|
||
+乳 F 112:i
|
||
+入 F 113:i
|
||
+如 F 114:i
|
||
+尿 F 115:i
|
||
+韮 F 116:i
|
||
+任 F 117:i
|
||
+妊 F 118:i
|
||
+忍 F 119:i
|
||
+認 F 120:i
|
||
+濡 F 121:i
|
||
+禰 F 122:i
|
||
+祢 F 123:i
|
||
+寧 F 124:i
|
||
+葱 F 125:i
|
||
+猫 F 126:i
|
||
+熱 F 127:i
|
||
+年 F 128:i
|
||
+念 F 129:i
|
||
+捻 F 130:i
|
||
+撚 F 131:i
|
||
+燃 F 132:i
|
||
+粘 F 133:i
|
||
+乃 F 134:i
|
||
+廼 F 135:i
|
||
+之 F 136:i
|
||
+埜 F 137:i
|
||
+嚢 F 138:i
|
||
+悩 F 139:i
|
||
+濃 F 140:i
|
||
+納 F 141:i
|
||
+能 F 142:i
|
||
+脳 F 143:i
|
||
+膿 F 144:i
|
||
+農 F 145:i
|
||
+覗 F 146:i
|
||
+蚤 F 147:i
|
||
+巴 F 148:i
|
||
+把 F 149:i
|
||
+播 F 150:i
|
||
+覇 F 151:i
|
||
+杷 F 152:i
|
||
+波 F 153:i
|
||
+派 F 154:i
|
||
+琶 F 155:i
|
||
+破 F 156:i
|
||
+婆 F 157:i
|
||
+罵 F 158:i
|
||
+芭 F 159:i
|
||
+馬 F 160:i
|
||
+俳 F 161:i
|
||
+廃 F 162:i
|
||
+拝 F 163:i
|
||
+排 F 164:i
|
||
+敗 F 165:i
|
||
+杯 F 166:i
|
||
+盃 F 167:i
|
||
+牌 F 168:i
|
||
+背 F 169:i
|
||
+肺 F 170:i
|
||
+輩 F 171:i
|
||
+配 F 172:i
|
||
+倍 F 173:i
|
||
+培 F 174:i
|
||
+媒 F 175:i
|
||
+梅 F 176:i
|
||
+楳 F 177:i
|
||
+煤 F 178:i
|
||
+狽 F 179:i
|
||
+買 F 180:i
|
||
+売 F 181:i
|
||
+賠 F 182:i
|
||
+陪 F 183:i
|
||
+這 F 184:i
|
||
+蝿 F 185:i
|
||
+秤 F 186:i
|
||
+矧 F 187:i
|
||
+萩 F 188:i
|
||
+伯 F 189:i
|
||
+剥 F 190:i
|
||
+博 F 191:i
|
||
+拍 F 192:i
|
||
+柏 F 193:i
|
||
+泊 F 194:i
|
||
+白 F 195:i
|
||
+箔 F 196:i
|
||
+粕 F 197:i
|
||
+舶 F 198:i
|
||
+薄 F 199:i
|
||
+迫 F 200:i
|
||
+曝 F 201:i
|
||
+漠 F 202:i
|
||
+爆 F 203:i
|
||
+縛 F 204:i
|
||
+莫 F 205:i
|
||
+駁 F 206:i
|
||
+麦 F 207:i
|
||
+函 F 208:i
|
||
+箱 F 209:i
|
||
+硲 F 210:i
|
||
+箸 F 211:i
|
||
+肇 F 212:i
|
||
+筈 F 213:i
|
||
+櫨 F 214:i
|
||
+幡 F 215:i
|
||
+肌 F 216:i
|
||
+畑 F 217:i
|
||
+畠 F 218:i
|
||
+八 F 219:i
|
||
+鉢 F 220:i
|
||
+溌 F 221:i
|
||
+発 F 222:i
|
||
+醗 F 223:i
|
||
+髪 F 224:i
|
||
+伐 F 225:i
|
||
+罰 F 226:i
|
||
+抜 F 227:i
|
||
+筏 F 228:i
|
||
+閥 F 229:i
|
||
+鳩 F 230:i
|
||
+噺 F 231:i
|
||
+塙 F 232:i
|
||
+蛤 F 233:i
|
||
+隼 F 234:i
|
||
+伴 F 235:i
|
||
+判 F 236:i
|
||
+半 F 237:i
|
||
+反 F 238:i
|
||
+叛 F 239:i
|
||
+帆 F 240:i
|
||
+搬 F 241:i
|
||
+斑 F 242:i
|
||
+板 F 243:i
|
||
+氾 F 244:i
|
||
+汎 F 245:i
|
||
+版 F 246:i
|
||
+犯 F 247:i
|
||
+班 F 248:i
|
||
+畔 F 249:i
|
||
+繁 F 250:i
|
||
+般 F 251:i
|
||
+藩 F 252:i
|
||
+販 F 253:i
|
||
+範 F 254:i
|
||
+釆 F 255:i
|
||
+煩 F 0:j
|
||
+頒 F 1:j
|
||
+飯 F 2:j
|
||
+挽 F 3:j
|
||
+晩 F 4:j
|
||
+番 F 5:j
|
||
+盤 F 6:j
|
||
+磐 F 7:j
|
||
+蕃 F 8:j
|
||
+蛮 F 9:j
|
||
+匪 F 10:j
|
||
+卑 F 11:j
|
||
+否 F 12:j
|
||
+妃 F 13:j
|
||
+庇 F 14:j
|
||
+彼 F 15:j
|
||
+悲 F 16:j
|
||
+扉 F 17:j
|
||
+批 F 18:j
|
||
+披 F 19:j
|
||
+斐 F 20:j
|
||
+比 F 21:j
|
||
+泌 F 22:j
|
||
+疲 F 23:j
|
||
+皮 F 24:j
|
||
+碑 F 25:j
|
||
+秘 F 26:j
|
||
+緋 F 27:j
|
||
+罷 F 28:j
|
||
+肥 F 29:j
|
||
+被 F 30:j
|
||
+誹 F 31:j
|
||
+費 F 32:j
|
||
+避 F 33:j
|
||
+非 F 34:j
|
||
+飛 F 35:j
|
||
+樋 F 36:j
|
||
+簸 F 37:j
|
||
+備 F 38:j
|
||
+尾 F 39:j
|
||
+微 F 40:j
|
||
+枇 F 41:j
|
||
+毘 F 42:j
|
||
+琵 F 43:j
|
||
+眉 F 44:j
|
||
+美 F 45:j
|
||
+鼻 F 46:j
|
||
+柊 F 47:j
|
||
+稗 F 48:j
|
||
+匹 F 49:j
|
||
+疋 F 50:j
|
||
+髭 F 51:j
|
||
+彦 F 52:j
|
||
+膝 F 53:j
|
||
+菱 F 54:j
|
||
+肘 F 55:j
|
||
+弼 F 56:j
|
||
+必 F 57:j
|
||
+畢 F 58:j
|
||
+筆 F 59:j
|
||
+逼 F 60:j
|
||
+桧 F 61:j
|
||
+姫 F 62:j
|
||
+媛 F 63:j
|
||
+紐 F 64:j
|
||
+百 F 65:j
|
||
+謬 F 66:j
|
||
+俵 F 67:j
|
||
+彪 F 68:j
|
||
+標 F 69:j
|
||
+氷 F 70:j
|
||
+漂 F 71:j
|
||
+瓢 F 72:j
|
||
+票 F 73:j
|
||
+表 F 74:j
|
||
+評 F 75:j
|
||
+豹 F 76:j
|
||
+廟 F 77:j
|
||
+描 F 78:j
|
||
+病 F 79:j
|
||
+秒 F 80:j
|
||
+苗 F 81:j
|
||
+錨 F 82:j
|
||
+鋲 F 83:j
|
||
+蒜 F 84:j
|
||
+蛭 F 85:j
|
||
+鰭 F 86:j
|
||
+品 F 87:j
|
||
+彬 F 88:j
|
||
+斌 F 89:j
|
||
+浜 F 90:j
|
||
+瀕 F 91:j
|
||
+貧 F 92:j
|
||
+賓 F 93:j
|
||
+頻 F 94:j
|
||
+敏 F 95:j
|
||
+瓶 F 96:j
|
||
+不 F 97:j
|
||
+付 F 98:j
|
||
+埠 F 99:j
|
||
+夫 F 100:j
|
||
+婦 F 101:j
|
||
+富 F 102:j
|
||
+冨 F 103:j
|
||
+布 F 104:j
|
||
+府 F 105:j
|
||
+怖 F 106:j
|
||
+扶 F 107:j
|
||
+敷 F 108:j
|
||
+斧 F 109:j
|
||
+普 F 110:j
|
||
+浮 F 111:j
|
||
+父 F 112:j
|
||
+符 F 113:j
|
||
+腐 F 114:j
|
||
+膚 F 115:j
|
||
+芙 F 116:j
|
||
+譜 F 117:j
|
||
+負 F 118:j
|
||
+賦 F 119:j
|
||
+赴 F 120:j
|
||
+阜 F 121:j
|
||
+附 F 122:j
|
||
+侮 F 123:j
|
||
+撫 F 124:j
|
||
+武 F 125:j
|
||
+舞 F 126:j
|
||
+葡 F 127:j
|
||
+蕪 F 128:j
|
||
+部 F 129:j
|
||
+封 F 130:j
|
||
+楓 F 131:j
|
||
+風 F 132:j
|
||
+葺 F 133:j
|
||
+蕗 F 134:j
|
||
+伏 F 135:j
|
||
+副 F 136:j
|
||
+復 F 137:j
|
||
+幅 F 138:j
|
||
+服 F 139:j
|
||
+福 F 140:j
|
||
+腹 F 141:j
|
||
+複 F 142:j
|
||
+覆 F 143:j
|
||
+淵 F 144:j
|
||
+弗 F 145:j
|
||
+払 F 146:j
|
||
+沸 F 147:j
|
||
+仏 F 148:j
|
||
+物 F 149:j
|
||
+鮒 F 150:j
|
||
+分 F 151:j
|
||
+吻 F 152:j
|
||
+噴 F 153:j
|
||
+墳 F 154:j
|
||
+憤 F 155:j
|
||
+扮 F 156:j
|
||
+焚 F 157:j
|
||
+奮 F 158:j
|
||
+粉 F 159:j
|
||
+糞 F 160:j
|
||
+紛 F 161:j
|
||
+雰 F 162:j
|
||
+文 F 163:j
|
||
+聞 F 164:j
|
||
+丙 F 165:j
|
||
+併 F 166:j
|
||
+兵 F 167:j
|
||
+塀 F 168:j
|
||
+幣 F 169:j
|
||
+平 F 170:j
|
||
+弊 F 171:j
|
||
+柄 F 172:j
|
||
+並 F 173:j
|
||
+蔽 F 174:j
|
||
+閉 F 175:j
|
||
+陛 F 176:j
|
||
+米 F 177:j
|
||
+頁 F 178:j
|
||
+僻 F 179:j
|
||
+壁 F 180:j
|
||
+癖 F 181:j
|
||
+碧 F 182:j
|
||
+別 F 183:j
|
||
+瞥 F 184:j
|
||
+蔑 F 185:j
|
||
+箆 F 186:j
|
||
+偏 F 187:j
|
||
+変 F 188:j
|
||
+片 F 189:j
|
||
+篇 F 190:j
|
||
+編 F 191:j
|
||
+辺 F 192:j
|
||
+返 F 193:j
|
||
+遍 F 194:j
|
||
+便 F 195:j
|
||
+勉 F 196:j
|
||
+娩 F 197:j
|
||
+弁 F 198:j
|
||
+鞭 F 199:j
|
||
+保 F 200:j
|
||
+舗 F 201:j
|
||
+鋪 F 202:j
|
||
+圃 F 203:j
|
||
+捕 F 204:j
|
||
+歩 F 205:j
|
||
+甫 F 206:j
|
||
+補 F 207:j
|
||
+輔 F 208:j
|
||
+穂 F 209:j
|
||
+募 F 210:j
|
||
+墓 F 211:j
|
||
+慕 F 212:j
|
||
+戊 F 213:j
|
||
+暮 F 214:j
|
||
+母 F 215:j
|
||
+簿 F 216:j
|
||
+菩 F 217:j
|
||
+倣 F 218:j
|
||
+俸 F 219:j
|
||
+包 F 220:j
|
||
+呆 F 221:j
|
||
+報 F 222:j
|
||
+奉 F 223:j
|
||
+宝 F 224:j
|
||
+峰 F 225:j
|
||
+峯 F 226:j
|
||
+崩 F 227:j
|
||
+庖 F 228:j
|
||
+抱 F 229:j
|
||
+捧 F 230:j
|
||
+放 F 231:j
|
||
+方 F 232:j
|
||
+朋 F 233:j
|
||
+法 F 234:j
|
||
+泡 F 235:j
|
||
+烹 F 236:j
|
||
+砲 F 237:j
|
||
+縫 F 238:j
|
||
+胞 F 239:j
|
||
+芳 F 240:j
|
||
+萌 F 241:j
|
||
+蓬 F 242:j
|
||
+蜂 F 243:j
|
||
+褒 F 244:j
|
||
+訪 F 245:j
|
||
+豊 F 246:j
|
||
+邦 F 247:j
|
||
+鋒 F 248:j
|
||
+飽 F 249:j
|
||
+鳳 F 250:j
|
||
+鵬 F 251:j
|
||
+乏 F 252:j
|
||
+亡 F 253:j
|
||
+傍 F 254:j
|
||
+剖 F 255:j
|
||
+坊 F 0:k
|
||
+妨 F 1:k
|
||
+帽 F 2:k
|
||
+忘 F 3:k
|
||
+忙 F 4:k
|
||
+房 F 5:k
|
||
+暴 F 6:k
|
||
+望 F 7:k
|
||
+某 F 8:k
|
||
+棒 F 9:k
|
||
+冒 F 10:k
|
||
+紡 F 11:k
|
||
+肪 F 12:k
|
||
+膨 F 13:k
|
||
+謀 F 14:k
|
||
+貌 F 15:k
|
||
+貿 F 16:k
|
||
+鉾 F 17:k
|
||
+防 F 18:k
|
||
+吠 F 19:k
|
||
+頬 F 20:k
|
||
+北 F 21:k
|
||
+僕 F 22:k
|
||
+卜 F 23:k
|
||
+墨 F 24:k
|
||
+撲 F 25:k
|
||
+朴 F 26:k
|
||
+牧 F 27:k
|
||
+睦 F 28:k
|
||
+穆 F 29:k
|
||
+釦 F 30:k
|
||
+勃 F 31:k
|
||
+没 F 32:k
|
||
+殆 F 33:k
|
||
+堀 F 34:k
|
||
+幌 F 35:k
|
||
+奔 F 36:k
|
||
+本 F 37:k
|
||
+翻 F 38:k
|
||
+凡 F 39:k
|
||
+盆 F 40:k
|
||
+摩 F 41:k
|
||
+磨 F 42:k
|
||
+魔 F 43:k
|
||
+麻 F 44:k
|
||
+埋 F 45:k
|
||
+妹 F 46:k
|
||
+昧 F 47:k
|
||
+枚 F 48:k
|
||
+毎 F 49:k
|
||
+哩 F 50:k
|
||
+槙 F 51:k
|
||
+幕 F 52:k
|
||
+膜 F 53:k
|
||
+枕 F 54:k
|
||
+鮪 F 55:k
|
||
+柾 F 56:k
|
||
+鱒 F 57:k
|
||
+桝 F 58:k
|
||
+亦 F 59:k
|
||
+俣 F 60:k
|
||
+又 F 61:k
|
||
+抹 F 62:k
|
||
+末 F 63:k
|
||
+沫 F 64:k
|
||
+迄 F 65:k
|
||
+侭 F 66:k
|
||
+繭 F 67:k
|
||
+麿 F 68:k
|
||
+万 F 69:k
|
||
+慢 F 70:k
|
||
+満 F 71:k
|
||
+漫 F 72:k
|
||
+蔓 F 73:k
|
||
+味 F 74:k
|
||
+未 F 75:k
|
||
+魅 F 76:k
|
||
+巳 F 77:k
|
||
+箕 F 78:k
|
||
+岬 F 79:k
|
||
+密 F 80:k
|
||
+蜜 F 81:k
|
||
+湊 F 82:k
|
||
+蓑 F 83:k
|
||
+稔 F 84:k
|
||
+脈 F 85:k
|
||
+妙 F 86:k
|
||
+粍 F 87:k
|
||
+民 F 88:k
|
||
+眠 F 89:k
|
||
+務 F 90:k
|
||
+夢 F 91:k
|
||
+無 F 92:k
|
||
+牟 F 93:k
|
||
+矛 F 94:k
|
||
+霧 F 95:k
|
||
+鵡 F 96:k
|
||
+椋 F 97:k
|
||
+婿 F 98:k
|
||
+娘 F 99:k
|
||
+冥 F 100:k
|
||
+名 F 101:k
|
||
+命 F 102:k
|
||
+明 F 103:k
|
||
+盟 F 104:k
|
||
+迷 F 105:k
|
||
+銘 F 106:k
|
||
+鳴 F 107:k
|
||
+姪 F 108:k
|
||
+牝 F 109:k
|
||
+滅 F 110:k
|
||
+免 F 111:k
|
||
+棉 F 112:k
|
||
+綿 F 113:k
|
||
+緬 F 114:k
|
||
+面 F 115:k
|
||
+麺 F 116:k
|
||
+摸 F 117:k
|
||
+模 F 118:k
|
||
+茂 F 119:k
|
||
+妄 F 120:k
|
||
+孟 F 121:k
|
||
+毛 F 122:k
|
||
+猛 F 123:k
|
||
+盲 F 124:k
|
||
+網 F 125:k
|
||
+耗 F 126:k
|
||
+蒙 F 127:k
|
||
+儲 F 128:k
|
||
+木 F 129:k
|
||
+黙 F 130:k
|
||
+目 F 131:k
|
||
+杢 F 132:k
|
||
+勿 F 133:k
|
||
+餅 F 134:k
|
||
+尤 F 135:k
|
||
+戻 F 136:k
|
||
+籾 F 137:k
|
||
+貰 F 138:k
|
||
+問 F 139:k
|
||
+悶 F 140:k
|
||
+紋 F 141:k
|
||
+門 F 142:k
|
||
+匁 F 143:k
|
||
+也 F 144:k
|
||
+冶 F 145:k
|
||
+夜 F 146:k
|
||
+爺 F 147:k
|
||
+耶 F 148:k
|
||
+野 F 149:k
|
||
+弥 F 150:k
|
||
+矢 F 151:k
|
||
+厄 F 152:k
|
||
+役 F 153:k
|
||
+約 F 154:k
|
||
+薬 F 155:k
|
||
+訳 F 156:k
|
||
+躍 F 157:k
|
||
+靖 F 158:k
|
||
+柳 F 159:k
|
||
+薮 F 160:k
|
||
+鑓 F 161:k
|
||
+愉 F 162:k
|
||
+愈 F 163:k
|
||
+油 F 164:k
|
||
+癒 F 165:k
|
||
+諭 F 166:k
|
||
+輸 F 167:k
|
||
+唯 F 168:k
|
||
+佑 F 169:k
|
||
+優 F 170:k
|
||
+勇 F 171:k
|
||
+友 F 172:k
|
||
+宥 F 173:k
|
||
+幽 F 174:k
|
||
+悠 F 175:k
|
||
+憂 F 176:k
|
||
+揖 F 177:k
|
||
+有 F 178:k
|
||
+柚 F 179:k
|
||
+湧 F 180:k
|
||
+涌 F 181:k
|
||
+猶 F 182:k
|
||
+猷 F 183:k
|
||
+由 F 184:k
|
||
+祐 F 185:k
|
||
+裕 F 186:k
|
||
+誘 F 187:k
|
||
+遊 F 188:k
|
||
+邑 F 189:k
|
||
+郵 F 190:k
|
||
+雄 F 191:k
|
||
+融 F 192:k
|
||
+夕 F 193:k
|
||
+予 F 194:k
|
||
+余 F 195:k
|
||
+与 F 196:k
|
||
+誉 F 197:k
|
||
+輿 F 198:k
|
||
+預 F 199:k
|
||
+傭 F 200:k
|
||
+幼 F 201:k
|
||
+妖 F 202:k
|
||
+容 F 203:k
|
||
+庸 F 204:k
|
||
+揚 F 205:k
|
||
+揺 F 206:k
|
||
+擁 F 207:k
|
||
+曜 F 208:k
|
||
+楊 F 209:k
|
||
+様 F 210:k
|
||
+洋 F 211:k
|
||
+溶 F 212:k
|
||
+熔 F 213:k
|
||
+用 F 214:k
|
||
+窯 F 215:k
|
||
+羊 F 216:k
|
||
+耀 F 217:k
|
||
+葉 F 218:k
|
||
+蓉 F 219:k
|
||
+要 F 220:k
|
||
+謡 F 221:k
|
||
+踊 F 222:k
|
||
+遥 F 223:k
|
||
+陽 F 224:k
|
||
+養 F 225:k
|
||
+慾 F 226:k
|
||
+抑 F 227:k
|
||
+欲 F 228:k
|
||
+沃 F 229:k
|
||
+浴 F 230:k
|
||
+翌 F 231:k
|
||
+翼 F 232:k
|
||
+淀 F 233:k
|
||
+羅 F 234:k
|
||
+螺 F 235:k
|
||
+裸 F 236:k
|
||
+来 F 237:k
|
||
+莱 F 238:k
|
||
+頼 F 239:k
|
||
+雷 F 240:k
|
||
+洛 F 241:k
|
||
+絡 F 242:k
|
||
+落 F 243:k
|
||
+酪 F 244:k
|
||
+乱 F 245:k
|
||
+卵 F 246:k
|
||
+嵐 F 247:k
|
||
+欄 F 248:k
|
||
+濫 F 249:k
|
||
+藍 F 250:k
|
||
+蘭 F 251:k
|
||
+覧 F 252:k
|
||
+利 F 253:k
|
||
+吏 F 254:k
|
||
+履 F 255:k
|
||
+李 F 0:l
|
||
+梨 F 1:l
|
||
+理 F 2:l
|
||
+璃 F 3:l
|
||
+痢 F 4:l
|
||
+裏 F 5:l
|
||
+裡 F 6:l
|
||
+里 F 7:l
|
||
+離 F 8:l
|
||
+陸 F 9:l
|
||
+律 F 10:l
|
||
+率 F 11:l
|
||
+立 F 12:l
|
||
+葎 F 13:l
|
||
+掠 F 14:l
|
||
+略 F 15:l
|
||
+劉 F 16:l
|
||
+流 F 17:l
|
||
+溜 F 18:l
|
||
+琉 F 19:l
|
||
+留 F 20:l
|
||
+硫 F 21:l
|
||
+粒 F 22:l
|
||
+隆 F 23:l
|
||
+竜 F 24:l
|
||
+龍 F 25:l
|
||
+侶 F 26:l
|
||
+慮 F 27:l
|
||
+旅 F 28:l
|
||
+虜 F 29:l
|
||
+了 F 30:l
|
||
+亮 F 31:l
|
||
+僚 F 32:l
|
||
+両 F 33:l
|
||
+凌 F 34:l
|
||
+寮 F 35:l
|
||
+料 F 36:l
|
||
+梁 F 37:l
|
||
+涼 F 38:l
|
||
+猟 F 39:l
|
||
+療 F 40:l
|
||
+瞭 F 41:l
|
||
+稜 F 42:l
|
||
+糧 F 43:l
|
||
+良 F 44:l
|
||
+諒 F 45:l
|
||
+遼 F 46:l
|
||
+量 F 47:l
|
||
+陵 F 48:l
|
||
+領 F 49:l
|
||
+力 F 50:l
|
||
+緑 F 51:l
|
||
+倫 F 52:l
|
||
+厘 F 53:l
|
||
+林 F 54:l
|
||
+淋 F 55:l
|
||
+燐 F 56:l
|
||
+琳 F 57:l
|
||
+臨 F 58:l
|
||
+輪 F 59:l
|
||
+隣 F 60:l
|
||
+鱗 F 61:l
|
||
+麟 F 62:l
|
||
+瑠 F 63:l
|
||
+塁 F 64:l
|
||
+涙 F 65:l
|
||
+累 F 66:l
|
||
+類 F 67:l
|
||
+令 F 68:l
|
||
+伶 F 69:l
|
||
+例 F 70:l
|
||
+冷 F 71:l
|
||
+励 F 72:l
|
||
+嶺 F 73:l
|
||
+怜 F 74:l
|
||
+玲 F 75:l
|
||
+礼 F 76:l
|
||
+苓 F 77:l
|
||
+鈴 F 78:l
|
||
+隷 F 79:l
|
||
+零 F 80:l
|
||
+霊 F 81:l
|
||
+麗 F 82:l
|
||
+齢 F 83:l
|
||
+暦 F 84:l
|
||
+歴 F 85:l
|
||
+列 F 86:l
|
||
+劣 F 87:l
|
||
+烈 F 88:l
|
||
+裂 F 89:l
|
||
+廉 F 90:l
|
||
+恋 F 91:l
|
||
+憐 F 92:l
|
||
+漣 F 93:l
|
||
+煉 F 94:l
|
||
+簾 F 95:l
|
||
+練 F 96:l
|
||
+聯 F 97:l
|
||
+蓮 F 98:l
|
||
+連 F 99:l
|
||
+錬 F 100:l
|
||
+呂 F 101:l
|
||
+魯 F 102:l
|
||
+櫓 F 103:l
|
||
+炉 F 104:l
|
||
+賂 F 105:l
|
||
+路 F 106:l
|
||
+露 F 107:l
|
||
+労 F 108:l
|
||
+婁 F 109:l
|
||
+廊 F 110:l
|
||
+弄 F 111:l
|
||
+朗 F 112:l
|
||
+楼 F 113:l
|
||
+榔 F 114:l
|
||
+浪 F 115:l
|
||
+漏 F 116:l
|
||
+牢 F 117:l
|
||
+狼 F 118:l
|
||
+篭 F 119:l
|
||
+老 F 120:l
|
||
+聾 F 121:l
|
||
+蝋 F 122:l
|
||
+郎 F 123:l
|
||
+六 F 124:l
|
||
+麓 F 125:l
|
||
+禄 F 126:l
|
||
+肋 F 127:l
|
||
+録 F 128:l
|
||
+論 F 129:l
|
||
+倭 F 130:l
|
||
+和 F 131:l
|
||
+話 F 132:l
|
||
+歪 F 133:l
|
||
+賄 F 134:l
|
||
+脇 F 135:l
|
||
+惑 F 136:l
|
||
+枠 F 137:l
|
||
+鷲 F 138:l
|
||
+亙 F 139:l
|
||
+亘 F 140:l
|
||
+鰐 F 141:l
|
||
+詫 F 142:l
|
||
+藁 F 143:l
|
||
+蕨 F 144:l
|
||
+椀 F 145:l
|
||
+湾 F 146:l
|
||
+碗 F 147:l
|
||
+腕 F 148:l
|
||
+弌 F 0:m
|
||
+丐 F 1:m
|
||
+丕 F 2:m
|
||
+个 F 3:m
|
||
+丱 F 4:m
|
||
+丶 F 5:m
|
||
+丼 F 6:m
|
||
+丿 F 7:m
|
||
+乂 F 8:m
|
||
+乖 F 9:m
|
||
+乘 F 10:m
|
||
+亂 F 11:m
|
||
+亅 F 12:m
|
||
+豫 F 13:m
|
||
+亊 F 14:m
|
||
+舒 F 15:m
|
||
+弍 F 16:m
|
||
+于 F 17:m
|
||
+亞 F 18:m
|
||
+亟 F 19:m
|
||
+亠 F 20:m
|
||
+亢 F 21:m
|
||
+亰 F 22:m
|
||
+亳 F 23:m
|
||
+亶 F 24:m
|
||
+从 F 25:m
|
||
+仍 F 26:m
|
||
+仄 F 27:m
|
||
+仆 F 28:m
|
||
+仂 F 29:m
|
||
+仗 F 30:m
|
||
+仞 F 31:m
|
||
+仭 F 32:m
|
||
+仟 F 33:m
|
||
+价 F 34:m
|
||
+伉 F 35:m
|
||
+佚 F 36:m
|
||
+估 F 37:m
|
||
+佛 F 38:m
|
||
+佝 F 39:m
|
||
+佗 F 40:m
|
||
+佇 F 41:m
|
||
+佶 F 42:m
|
||
+侈 F 43:m
|
||
+侏 F 44:m
|
||
+侘 F 45:m
|
||
+佻 F 46:m
|
||
+佩 F 47:m
|
||
+佰 F 48:m
|
||
+侑 F 49:m
|
||
+佯 F 50:m
|
||
+來 F 51:m
|
||
+侖 F 52:m
|
||
+儘 F 53:m
|
||
+俔 F 54:m
|
||
+俟 F 55:m
|
||
+俎 F 56:m
|
||
+俘 F 57:m
|
||
+俛 F 58:m
|
||
+俑 F 59:m
|
||
+俚 F 60:m
|
||
+俐 F 61:m
|
||
+俤 F 62:m
|
||
+俥 F 63:m
|
||
+倚 F 64:m
|
||
+倨 F 65:m
|
||
+倔 F 66:m
|
||
+倪 F 67:m
|
||
+倥 F 68:m
|
||
+倅 F 69:m
|
||
+伜 F 70:m
|
||
+俶 F 71:m
|
||
+倡 F 72:m
|
||
+倩 F 73:m
|
||
+倬 F 74:m
|
||
+俾 F 75:m
|
||
+俯 F 76:m
|
||
+們 F 77:m
|
||
+倆 F 78:m
|
||
+偃 F 79:m
|
||
+假 F 80:m
|
||
+會 F 81:m
|
||
+偕 F 82:m
|
||
+偐 F 83:m
|
||
+偈 F 84:m
|
||
+做 F 85:m
|
||
+偖 F 86:m
|
||
+偬 F 87:m
|
||
+偸 F 88:m
|
||
+傀 F 89:m
|
||
+傚 F 90:m
|
||
+傅 F 91:m
|
||
+傴 F 92:m
|
||
+傲 F 93:m
|
||
+僉 F 94:m
|
||
+僊 F 95:m
|
||
+傳 F 96:m
|
||
+僂 F 97:m
|
||
+僖 F 98:m
|
||
+僞 F 99:m
|
||
+僥 F 100:m
|
||
+僭 F 101:m
|
||
+僣 F 102:m
|
||
+僮 F 103:m
|
||
+價 F 104:m
|
||
+僵 F 105:m
|
||
+儉 F 106:m
|
||
+儁 F 107:m
|
||
+儂 F 108:m
|
||
+儖 F 109:m
|
||
+儕 F 110:m
|
||
+儔 F 111:m
|
||
+儚 F 112:m
|
||
+儡 F 113:m
|
||
+儺 F 114:m
|
||
+儷 F 115:m
|
||
+儼 F 116:m
|
||
+儻 F 117:m
|
||
+儿 F 118:m
|
||
+兀 F 119:m
|
||
+兒 F 120:m
|
||
+兌 F 121:m
|
||
+兔 F 122:m
|
||
+兢 F 123:m
|
||
+竸 F 124:m
|
||
+兩 F 125:m
|
||
+兪 F 126:m
|
||
+兮 F 127:m
|
||
+冀 F 128:m
|
||
+冂 F 129:m
|
||
+囘 F 130:m
|
||
+册 F 131:m
|
||
+冉 F 132:m
|
||
+冏 F 133:m
|
||
+冑 F 134:m
|
||
+冓 F 135:m
|
||
+冕 F 136:m
|
||
+冖 F 137:m
|
||
+冤 F 138:m
|
||
+冦 F 139:m
|
||
+冢 F 140:m
|
||
+冩 F 141:m
|
||
+冪 F 142:m
|
||
+冫 F 143:m
|
||
+决 F 144:m
|
||
+冱 F 145:m
|
||
+冲 F 146:m
|
||
+冰 F 147:m
|
||
+况 F 148:m
|
||
+冽 F 149:m
|
||
+凅 F 150:m
|
||
+凉 F 151:m
|
||
+凛 F 152:m
|
||
+几 F 153:m
|
||
+處 F 154:m
|
||
+凩 F 155:m
|
||
+凭 F 156:m
|
||
+凰 F 157:m
|
||
+凵 F 158:m
|
||
+凾 F 159:m
|
||
+刄 F 160:m
|
||
+刋 F 161:m
|
||
+刔 F 162:m
|
||
+刎 F 163:m
|
||
+刧 F 164:m
|
||
+刪 F 165:m
|
||
+刮 F 166:m
|
||
+刳 F 167:m
|
||
+刹 F 168:m
|
||
+剏 F 169:m
|
||
+剄 F 170:m
|
||
+剋 F 171:m
|
||
+剌 F 172:m
|
||
+剞 F 173:m
|
||
+剔 F 174:m
|
||
+剪 F 175:m
|
||
+剴 F 176:m
|
||
+剩 F 177:m
|
||
+剳 F 178:m
|
||
+剿 F 179:m
|
||
+剽 F 180:m
|
||
+劍 F 181:m
|
||
+劔 F 182:m
|
||
+劒 F 183:m
|
||
+剱 F 184:m
|
||
+劈 F 185:m
|
||
+劑 F 186:m
|
||
+辨 F 187:m
|
||
+辧 F 188:m
|
||
+劬 F 189:m
|
||
+劭 F 190:m
|
||
+劼 F 191:m
|
||
+劵 F 192:m
|
||
+勁 F 193:m
|
||
+勍 F 194:m
|
||
+勗 F 195:m
|
||
+勞 F 196:m
|
||
+勣 F 197:m
|
||
+勦 F 198:m
|
||
+飭 F 199:m
|
||
+勠 F 200:m
|
||
+勳 F 201:m
|
||
+勵 F 202:m
|
||
+勸 F 203:m
|
||
+勹 F 204:m
|
||
+匆 F 205:m
|
||
+匈 F 206:m
|
||
+甸 F 207:m
|
||
+匍 F 208:m
|
||
+匐 F 209:m
|
||
+匏 F 210:m
|
||
+匕 F 211:m
|
||
+匚 F 212:m
|
||
+匣 F 213:m
|
||
+匯 F 214:m
|
||
+匱 F 215:m
|
||
+匳 F 216:m
|
||
+匸 F 217:m
|
||
+區 F 218:m
|
||
+卆 F 219:m
|
||
+卅 F 220:m
|
||
+丗 F 221:m
|
||
+卉 F 222:m
|
||
+卍 F 223:m
|
||
+凖 F 224:m
|
||
+卞 F 225:m
|
||
+卩 F 226:m
|
||
+卮 F 227:m
|
||
+夘 F 228:m
|
||
+卻 F 229:m
|
||
+卷 F 230:m
|
||
+厂 F 231:m
|
||
+厖 F 232:m
|
||
+厠 F 233:m
|
||
+厦 F 234:m
|
||
+厥 F 235:m
|
||
+厮 F 236:m
|
||
+厰 F 237:m
|
||
+厶 F 238:m
|
||
+參 F 239:m
|
||
+簒 F 240:m
|
||
+雙 F 241:m
|
||
+叟 F 242:m
|
||
+曼 F 243:m
|
||
+燮 F 244:m
|
||
+叮 F 245:m
|
||
+叨 F 246:m
|
||
+叭 F 247:m
|
||
+叺 F 248:m
|
||
+吁 F 249:m
|
||
+吽 F 250:m
|
||
+呀 F 251:m
|
||
+听 F 252:m
|
||
+吭 F 253:m
|
||
+吼 F 254:m
|
||
+吮 F 255:m
|
||
+吶 F 0:n
|
||
+吩 F 1:n
|
||
+吝 F 2:n
|
||
+呎 F 3:n
|
||
+咏 F 4:n
|
||
+呵 F 5:n
|
||
+咎 F 6:n
|
||
+呟 F 7:n
|
||
+呱 F 8:n
|
||
+呷 F 9:n
|
||
+呰 F 10:n
|
||
+咒 F 11:n
|
||
+呻 F 12:n
|
||
+咀 F 13:n
|
||
+呶 F 14:n
|
||
+咄 F 15:n
|
||
+咐 F 16:n
|
||
+咆 F 17:n
|
||
+哇 F 18:n
|
||
+咢 F 19:n
|
||
+咸 F 20:n
|
||
+咥 F 21:n
|
||
+咬 F 22:n
|
||
+哄 F 23:n
|
||
+哈 F 24:n
|
||
+咨 F 25:n
|
||
+咫 F 26:n
|
||
+哂 F 27:n
|
||
+咤 F 28:n
|
||
+咾 F 29:n
|
||
+咼 F 30:n
|
||
+哘 F 31:n
|
||
+哥 F 32:n
|
||
+哦 F 33:n
|
||
+唏 F 34:n
|
||
+唔 F 35:n
|
||
+哽 F 36:n
|
||
+哮 F 37:n
|
||
+哭 F 38:n
|
||
+哺 F 39:n
|
||
+哢 F 40:n
|
||
+唹 F 41:n
|
||
+啀 F 42:n
|
||
+啣 F 43:n
|
||
+啌 F 44:n
|
||
+售 F 45:n
|
||
+啜 F 46:n
|
||
+啅 F 47:n
|
||
+啖 F 48:n
|
||
+啗 F 49:n
|
||
+唸 F 50:n
|
||
+唳 F 51:n
|
||
+啝 F 52:n
|
||
+喙 F 53:n
|
||
+喀 F 54:n
|
||
+咯 F 55:n
|
||
+喊 F 56:n
|
||
+喟 F 57:n
|
||
+啻 F 58:n
|
||
+啾 F 59:n
|
||
+喘 F 60:n
|
||
+喞 F 61:n
|
||
+單 F 62:n
|
||
+啼 F 63:n
|
||
+喃 F 64:n
|
||
+喩 F 65:n
|
||
+喇 F 66:n
|
||
+喨 F 67:n
|
||
+嗚 F 68:n
|
||
+嗅 F 69:n
|
||
+嗟 F 70:n
|
||
+嗄 F 71:n
|
||
+嗜 F 72:n
|
||
+嗤 F 73:n
|
||
+嗔 F 74:n
|
||
+嘔 F 75:n
|
||
+嗷 F 76:n
|
||
+嘖 F 77:n
|
||
+嗾 F 78:n
|
||
+嗽 F 79:n
|
||
+嘛 F 80:n
|
||
+嗹 F 81:n
|
||
+噎 F 82:n
|
||
+噐 F 83:n
|
||
+營 F 84:n
|
||
+嘴 F 85:n
|
||
+嘶 F 86:n
|
||
+嘲 F 87:n
|
||
+嘸 F 88:n
|
||
+噫 F 89:n
|
||
+噤 F 90:n
|
||
+嘯 F 91:n
|
||
+噬 F 92:n
|
||
+噪 F 93:n
|
||
+嚆 F 94:n
|
||
+嚀 F 95:n
|
||
+嚊 F 96:n
|
||
+嚠 F 97:n
|
||
+嚔 F 98:n
|
||
+嚏 F 99:n
|
||
+嚥 F 100:n
|
||
+嚮 F 101:n
|
||
+嚶 F 102:n
|
||
+嚴 F 103:n
|
||
+囂 F 104:n
|
||
+嚼 F 105:n
|
||
+囁 F 106:n
|
||
+囃 F 107:n
|
||
+囀 F 108:n
|
||
+囈 F 109:n
|
||
+囎 F 110:n
|
||
+囑 F 111:n
|
||
+囓 F 112:n
|
||
+囗 F 113:n
|
||
+囮 F 114:n
|
||
+囹 F 115:n
|
||
+圀 F 116:n
|
||
+囿 F 117:n
|
||
+圄 F 118:n
|
||
+圉 F 119:n
|
||
+圈 F 120:n
|
||
+國 F 121:n
|
||
+圍 F 122:n
|
||
+圓 F 123:n
|
||
+團 F 124:n
|
||
+圖 F 125:n
|
||
+嗇 F 126:n
|
||
+圜 F 127:n
|
||
+圦 F 128:n
|
||
+圷 F 129:n
|
||
+圸 F 130:n
|
||
+坎 F 131:n
|
||
+圻 F 132:n
|
||
+址 F 133:n
|
||
+坏 F 134:n
|
||
+坩 F 135:n
|
||
+埀 F 136:n
|
||
+垈 F 137:n
|
||
+坡 F 138:n
|
||
+坿 F 139:n
|
||
+垉 F 140:n
|
||
+垓 F 141:n
|
||
+垠 F 142:n
|
||
+垳 F 143:n
|
||
+垤 F 144:n
|
||
+垪 F 145:n
|
||
+垰 F 146:n
|
||
+埃 F 147:n
|
||
+埆 F 148:n
|
||
+埔 F 149:n
|
||
+埒 F 150:n
|
||
+埓 F 151:n
|
||
+堊 F 152:n
|
||
+埖 F 153:n
|
||
+埣 F 154:n
|
||
+堋 F 155:n
|
||
+堙 F 156:n
|
||
+堝 F 157:n
|
||
+塲 F 158:n
|
||
+堡 F 159:n
|
||
+塢 F 160:n
|
||
+塋 F 161:n
|
||
+塰 F 162:n
|
||
+毀 F 163:n
|
||
+塒 F 164:n
|
||
+堽 F 165:n
|
||
+塹 F 166:n
|
||
+墅 F 167:n
|
||
+墹 F 168:n
|
||
+墟 F 169:n
|
||
+墫 F 170:n
|
||
+墺 F 171:n
|
||
+壞 F 172:n
|
||
+墻 F 173:n
|
||
+墸 F 174:n
|
||
+墮 F 175:n
|
||
+壅 F 176:n
|
||
+壓 F 177:n
|
||
+壑 F 178:n
|
||
+壗 F 179:n
|
||
+壙 F 180:n
|
||
+壘 F 181:n
|
||
+壥 F 182:n
|
||
+壜 F 183:n
|
||
+壤 F 184:n
|
||
+壟 F 185:n
|
||
+壯 F 186:n
|
||
+壺 F 187:n
|
||
+壹 F 188:n
|
||
+壻 F 189:n
|
||
+壼 F 190:n
|
||
+壽 F 191:n
|
||
+夂 F 192:n
|
||
+夊 F 193:n
|
||
+夐 F 194:n
|
||
+夛 F 195:n
|
||
+梦 F 196:n
|
||
+夥 F 197:n
|
||
+夬 F 198:n
|
||
+夭 F 199:n
|
||
+夲 F 200:n
|
||
+夸 F 201:n
|
||
+夾 F 202:n
|
||
+竒 F 203:n
|
||
+奕 F 204:n
|
||
+奐 F 205:n
|
||
+奎 F 206:n
|
||
+奚 F 207:n
|
||
+奘 F 208:n
|
||
+奢 F 209:n
|
||
+奠 F 210:n
|
||
+奧 F 211:n
|
||
+奬 F 212:n
|
||
+奩 F 213:n
|
||
+奸 F 214:n
|
||
+妁 F 215:n
|
||
+妝 F 216:n
|
||
+佞 F 217:n
|
||
+侫 F 218:n
|
||
+妣 F 219:n
|
||
+妲 F 220:n
|
||
+姆 F 221:n
|
||
+姨 F 222:n
|
||
+姜 F 223:n
|
||
+妍 F 224:n
|
||
+姙 F 225:n
|
||
+姚 F 226:n
|
||
+娥 F 227:n
|
||
+娟 F 228:n
|
||
+娑 F 229:n
|
||
+娜 F 230:n
|
||
+娉 F 231:n
|
||
+娚 F 232:n
|
||
+婀 F 233:n
|
||
+婬 F 234:n
|
||
+婉 F 235:n
|
||
+娵 F 236:n
|
||
+娶 F 237:n
|
||
+婢 F 238:n
|
||
+婪 F 239:n
|
||
+媚 F 240:n
|
||
+媼 F 241:n
|
||
+媾 F 242:n
|
||
+嫋 F 243:n
|
||
+嫂 F 244:n
|
||
+媽 F 245:n
|
||
+嫣 F 246:n
|
||
+嫗 F 247:n
|
||
+嫦 F 248:n
|
||
+嫩 F 249:n
|
||
+嫖 F 250:n
|
||
+嫺 F 251:n
|
||
+嫻 F 252:n
|
||
+嬌 F 253:n
|
||
+嬋 F 254:n
|
||
+嬖 F 255:n
|
||
+嬲 F 0:o
|
||
+嫐 F 1:o
|
||
+嬪 F 2:o
|
||
+嬶 F 3:o
|
||
+嬾 F 4:o
|
||
+孃 F 5:o
|
||
+孅 F 6:o
|
||
+孀 F 7:o
|
||
+孑 F 8:o
|
||
+孕 F 9:o
|
||
+孚 F 10:o
|
||
+孛 F 11:o
|
||
+孥 F 12:o
|
||
+孩 F 13:o
|
||
+孰 F 14:o
|
||
+孳 F 15:o
|
||
+孵 F 16:o
|
||
+學 F 17:o
|
||
+斈 F 18:o
|
||
+孺 F 19:o
|
||
+宀 F 20:o
|
||
+它 F 21:o
|
||
+宦 F 22:o
|
||
+宸 F 23:o
|
||
+寃 F 24:o
|
||
+寇 F 25:o
|
||
+寉 F 26:o
|
||
+寔 F 27:o
|
||
+寐 F 28:o
|
||
+寤 F 29:o
|
||
+實 F 30:o
|
||
+寢 F 31:o
|
||
+寞 F 32:o
|
||
+寥 F 33:o
|
||
+寫 F 34:o
|
||
+寰 F 35:o
|
||
+寶 F 36:o
|
||
+寳 F 37:o
|
||
+尅 F 38:o
|
||
+將 F 39:o
|
||
+專 F 40:o
|
||
+對 F 41:o
|
||
+尓 F 42:o
|
||
+尠 F 43:o
|
||
+尢 F 44:o
|
||
+尨 F 45:o
|
||
+尸 F 46:o
|
||
+尹 F 47:o
|
||
+屁 F 48:o
|
||
+屆 F 49:o
|
||
+屎 F 50:o
|
||
+屓 F 51:o
|
||
+屐 F 52:o
|
||
+屏 F 53:o
|
||
+孱 F 54:o
|
||
+屬 F 55:o
|
||
+屮 F 56:o
|
||
+乢 F 57:o
|
||
+屶 F 58:o
|
||
+屹 F 59:o
|
||
+岌 F 60:o
|
||
+岑 F 61:o
|
||
+岔 F 62:o
|
||
+妛 F 63:o
|
||
+岫 F 64:o
|
||
+岻 F 65:o
|
||
+岶 F 66:o
|
||
+岼 F 67:o
|
||
+岷 F 68:o
|
||
+峅 F 69:o
|
||
+岾 F 70:o
|
||
+峇 F 71:o
|
||
+峙 F 72:o
|
||
+峩 F 73:o
|
||
+峽 F 74:o
|
||
+峺 F 75:o
|
||
+峭 F 76:o
|
||
+嶌 F 77:o
|
||
+峪 F 78:o
|
||
+崋 F 79:o
|
||
+崕 F 80:o
|
||
+崗 F 81:o
|
||
+嵜 F 82:o
|
||
+崟 F 83:o
|
||
+崛 F 84:o
|
||
+崑 F 85:o
|
||
+崔 F 86:o
|
||
+崢 F 87:o
|
||
+崚 F 88:o
|
||
+崙 F 89:o
|
||
+崘 F 90:o
|
||
+嵌 F 91:o
|
||
+嵒 F 92:o
|
||
+嵎 F 93:o
|
||
+嵋 F 94:o
|
||
+嵬 F 95:o
|
||
+嵳 F 96:o
|
||
+嵶 F 97:o
|
||
+嶇 F 98:o
|
||
+嶄 F 99:o
|
||
+嶂 F 100:o
|
||
+嶢 F 101:o
|
||
+嶝 F 102:o
|
||
+嶬 F 103:o
|
||
+嶮 F 104:o
|
||
+嶽 F 105:o
|
||
+嶐 F 106:o
|
||
+嶷 F 107:o
|
||
+嶼 F 108:o
|
||
+巉 F 109:o
|
||
+巍 F 110:o
|
||
+巓 F 111:o
|
||
+巒 F 112:o
|
||
+巖 F 113:o
|
||
+巛 F 114:o
|
||
+巫 F 115:o
|
||
+已 F 116:o
|
||
+巵 F 117:o
|
||
+帋 F 118:o
|
||
+帚 F 119:o
|
||
+帙 F 120:o
|
||
+帑 F 121:o
|
||
+帛 F 122:o
|
||
+帶 F 123:o
|
||
+帷 F 124:o
|
||
+幄 F 125:o
|
||
+幃 F 126:o
|
||
+幀 F 127:o
|
||
+幎 F 128:o
|
||
+幗 F 129:o
|
||
+幔 F 130:o
|
||
+幟 F 131:o
|
||
+幢 F 132:o
|
||
+幤 F 133:o
|
||
+幇 F 134:o
|
||
+幵 F 135:o
|
||
+并 F 136:o
|
||
+幺 F 137:o
|
||
+麼 F 138:o
|
||
+广 F 139:o
|
||
+庠 F 140:o
|
||
+廁 F 141:o
|
||
+廂 F 142:o
|
||
+廈 F 143:o
|
||
+廐 F 144:o
|
||
+廏 F 145:o
|
||
+廖 F 146:o
|
||
+廣 F 147:o
|
||
+廝 F 148:o
|
||
+廚 F 149:o
|
||
+廛 F 150:o
|
||
+廢 F 151:o
|
||
+廡 F 152:o
|
||
+廨 F 153:o
|
||
+廩 F 154:o
|
||
+廬 F 155:o
|
||
+廱 F 156:o
|
||
+廳 F 157:o
|
||
+廰 F 158:o
|
||
+廴 F 159:o
|
||
+廸 F 160:o
|
||
+廾 F 161:o
|
||
+弃 F 162:o
|
||
+弉 F 163:o
|
||
+彝 F 164:o
|
||
+彜 F 165:o
|
||
+弋 F 166:o
|
||
+弑 F 167:o
|
||
+弖 F 168:o
|
||
+弩 F 169:o
|
||
+弭 F 170:o
|
||
+弸 F 171:o
|
||
+彁 F 172:o
|
||
+彈 F 173:o
|
||
+彌 F 174:o
|
||
+彎 F 175:o
|
||
+弯 F 176:o
|
||
+彑 F 177:o
|
||
+彖 F 178:o
|
||
+彗 F 179:o
|
||
+彙 F 180:o
|
||
+彡 F 181:o
|
||
+彭 F 182:o
|
||
+彳 F 183:o
|
||
+彷 F 184:o
|
||
+徃 F 185:o
|
||
+徂 F 186:o
|
||
+彿 F 187:o
|
||
+徊 F 188:o
|
||
+很 F 189:o
|
||
+徑 F 190:o
|
||
+徇 F 191:o
|
||
+從 F 192:o
|
||
+徙 F 193:o
|
||
+徘 F 194:o
|
||
+徠 F 195:o
|
||
+徨 F 196:o
|
||
+徭 F 197:o
|
||
+徼 F 198:o
|
||
+忖 F 199:o
|
||
+忻 F 200:o
|
||
+忤 F 201:o
|
||
+忸 F 202:o
|
||
+忱 F 203:o
|
||
+忝 F 204:o
|
||
+悳 F 205:o
|
||
+忿 F 206:o
|
||
+怡 F 207:o
|
||
+恠 F 208:o
|
||
+怙 F 209:o
|
||
+怐 F 210:o
|
||
+怩 F 211:o
|
||
+怎 F 212:o
|
||
+怱 F 213:o
|
||
+怛 F 214:o
|
||
+怕 F 215:o
|
||
+怫 F 216:o
|
||
+怦 F 217:o
|
||
+怏 F 218:o
|
||
+怺 F 219:o
|
||
+恚 F 220:o
|
||
+恁 F 221:o
|
||
+恪 F 222:o
|
||
+恷 F 223:o
|
||
+恟 F 224:o
|
||
+恊 F 225:o
|
||
+恆 F 226:o
|
||
+恍 F 227:o
|
||
+恣 F 228:o
|
||
+恃 F 229:o
|
||
+恤 F 230:o
|
||
+恂 F 231:o
|
||
+恬 F 232:o
|
||
+恫 F 233:o
|
||
+恙 F 234:o
|
||
+悁 F 235:o
|
||
+悍 F 236:o
|
||
+惧 F 237:o
|
||
+悃 F 238:o
|
||
+悚 F 239:o
|
||
+悄 F 240:o
|
||
+悛 F 241:o
|
||
+悖 F 242:o
|
||
+悗 F 243:o
|
||
+悒 F 244:o
|
||
+悧 F 245:o
|
||
+悋 F 246:o
|
||
+惡 F 247:o
|
||
+悸 F 248:o
|
||
+惠 F 249:o
|
||
+惓 F 250:o
|
||
+悴 F 251:o
|
||
+忰 F 252:o
|
||
+悽 F 253:o
|
||
+惆 F 254:o
|
||
+悵 F 255:o
|
||
+惘 F 0:p
|
||
+慍 F 1:p
|
||
+愕 F 2:p
|
||
+愆 F 3:p
|
||
+惶 F 4:p
|
||
+惷 F 5:p
|
||
+愀 F 6:p
|
||
+惴 F 7:p
|
||
+惺 F 8:p
|
||
+愃 F 9:p
|
||
+愡 F 10:p
|
||
+惻 F 11:p
|
||
+惱 F 12:p
|
||
+愍 F 13:p
|
||
+愎 F 14:p
|
||
+慇 F 15:p
|
||
+愾 F 16:p
|
||
+愨 F 17:p
|
||
+愧 F 18:p
|
||
+慊 F 19:p
|
||
+愿 F 20:p
|
||
+愼 F 21:p
|
||
+愬 F 22:p
|
||
+愴 F 23:p
|
||
+愽 F 24:p
|
||
+慂 F 25:p
|
||
+慄 F 26:p
|
||
+慳 F 27:p
|
||
+慷 F 28:p
|
||
+慘 F 29:p
|
||
+慙 F 30:p
|
||
+慚 F 31:p
|
||
+慫 F 32:p
|
||
+慴 F 33:p
|
||
+慯 F 34:p
|
||
+慥 F 35:p
|
||
+慱 F 36:p
|
||
+慟 F 37:p
|
||
+慝 F 38:p
|
||
+慓 F 39:p
|
||
+慵 F 40:p
|
||
+憙 F 41:p
|
||
+憖 F 42:p
|
||
+憇 F 43:p
|
||
+憬 F 44:p
|
||
+憔 F 45:p
|
||
+憚 F 46:p
|
||
+憊 F 47:p
|
||
+憑 F 48:p
|
||
+憫 F 49:p
|
||
+憮 F 50:p
|
||
+懌 F 51:p
|
||
+懊 F 52:p
|
||
+應 F 53:p
|
||
+懷 F 54:p
|
||
+懈 F 55:p
|
||
+懃 F 56:p
|
||
+懆 F 57:p
|
||
+憺 F 58:p
|
||
+懋 F 59:p
|
||
+罹 F 60:p
|
||
+懍 F 61:p
|
||
+懦 F 62:p
|
||
+懣 F 63:p
|
||
+懶 F 64:p
|
||
+懺 F 65:p
|
||
+懴 F 66:p
|
||
+懿 F 67:p
|
||
+懽 F 68:p
|
||
+懼 F 69:p
|
||
+懾 F 70:p
|
||
+戀 F 71:p
|
||
+戈 F 72:p
|
||
+戉 F 73:p
|
||
+戍 F 74:p
|
||
+戌 F 75:p
|
||
+戔 F 76:p
|
||
+戛 F 77:p
|
||
+戞 F 78:p
|
||
+戡 F 79:p
|
||
+截 F 80:p
|
||
+戮 F 81:p
|
||
+戰 F 82:p
|
||
+戲 F 83:p
|
||
+戳 F 84:p
|
||
+扁 F 85:p
|
||
+扎 F 86:p
|
||
+扞 F 87:p
|
||
+扣 F 88:p
|
||
+扛 F 89:p
|
||
+扠 F 90:p
|
||
+扨 F 91:p
|
||
+扼 F 92:p
|
||
+抂 F 93:p
|
||
+抉 F 94:p
|
||
+找 F 95:p
|
||
+抒 F 96:p
|
||
+抓 F 97:p
|
||
+抖 F 98:p
|
||
+拔 F 99:p
|
||
+抃 F 100:p
|
||
+抔 F 101:p
|
||
+拗 F 102:p
|
||
+拑 F 103:p
|
||
+抻 F 104:p
|
||
+拏 F 105:p
|
||
+拿 F 106:p
|
||
+拆 F 107:p
|
||
+擔 F 108:p
|
||
+拈 F 109:p
|
||
+拜 F 110:p
|
||
+拌 F 111:p
|
||
+拊 F 112:p
|
||
+拂 F 113:p
|
||
+拇 F 114:p
|
||
+抛 F 115:p
|
||
+拉 F 116:p
|
||
+挌 F 117:p
|
||
+拮 F 118:p
|
||
+拱 F 119:p
|
||
+挧 F 120:p
|
||
+挂 F 121:p
|
||
+挈 F 122:p
|
||
+拯 F 123:p
|
||
+拵 F 124:p
|
||
+捐 F 125:p
|
||
+挾 F 126:p
|
||
+捍 F 127:p
|
||
+搜 F 128:p
|
||
+捏 F 129:p
|
||
+掖 F 130:p
|
||
+掎 F 131:p
|
||
+掀 F 132:p
|
||
+掫 F 133:p
|
||
+捶 F 134:p
|
||
+掣 F 135:p
|
||
+掏 F 136:p
|
||
+掉 F 137:p
|
||
+掟 F 138:p
|
||
+掵 F 139:p
|
||
+捫 F 140:p
|
||
+捩 F 141:p
|
||
+掾 F 142:p
|
||
+揩 F 143:p
|
||
+揀 F 144:p
|
||
+揆 F 145:p
|
||
+揣 F 146:p
|
||
+揉 F 147:p
|
||
+插 F 148:p
|
||
+揶 F 149:p
|
||
+揄 F 150:p
|
||
+搖 F 151:p
|
||
+搴 F 152:p
|
||
+搆 F 153:p
|
||
+搓 F 154:p
|
||
+搦 F 155:p
|
||
+搶 F 156:p
|
||
+攝 F 157:p
|
||
+搗 F 158:p
|
||
+搨 F 159:p
|
||
+搏 F 160:p
|
||
+摧 F 161:p
|
||
+摯 F 162:p
|
||
+摶 F 163:p
|
||
+摎 F 164:p
|
||
+攪 F 165:p
|
||
+撕 F 166:p
|
||
+撓 F 167:p
|
||
+撥 F 168:p
|
||
+撩 F 169:p
|
||
+撈 F 170:p
|
||
+撼 F 171:p
|
||
+據 F 172:p
|
||
+擒 F 173:p
|
||
+擅 F 174:p
|
||
+擇 F 175:p
|
||
+撻 F 176:p
|
||
+擘 F 177:p
|
||
+擂 F 178:p
|
||
+擱 F 179:p
|
||
+擧 F 180:p
|
||
+舉 F 181:p
|
||
+擠 F 182:p
|
||
+擡 F 183:p
|
||
+抬 F 184:p
|
||
+擣 F 185:p
|
||
+擯 F 186:p
|
||
+攬 F 187:p
|
||
+擶 F 188:p
|
||
+擴 F 189:p
|
||
+擲 F 190:p
|
||
+擺 F 191:p
|
||
+攀 F 192:p
|
||
+擽 F 193:p
|
||
+攘 F 194:p
|
||
+攜 F 195:p
|
||
+攅 F 196:p
|
||
+攤 F 197:p
|
||
+攣 F 198:p
|
||
+攫 F 199:p
|
||
+攴 F 200:p
|
||
+攵 F 201:p
|
||
+攷 F 202:p
|
||
+收 F 203:p
|
||
+攸 F 204:p
|
||
+畋 F 205:p
|
||
+效 F 206:p
|
||
+敖 F 207:p
|
||
+敕 F 208:p
|
||
+敍 F 209:p
|
||
+敘 F 210:p
|
||
+敞 F 211:p
|
||
+敝 F 212:p
|
||
+敲 F 213:p
|
||
+數 F 214:p
|
||
+斂 F 215:p
|
||
+斃 F 216:p
|
||
+變 F 217:p
|
||
+斛 F 218:p
|
||
+斟 F 219:p
|
||
+斫 F 220:p
|
||
+斷 F 221:p
|
||
+旃 F 222:p
|
||
+旆 F 223:p
|
||
+旁 F 224:p
|
||
+旄 F 225:p
|
||
+旌 F 226:p
|
||
+旒 F 227:p
|
||
+旛 F 228:p
|
||
+旙 F 229:p
|
||
+无 F 230:p
|
||
+旡 F 231:p
|
||
+旱 F 232:p
|
||
+杲 F 233:p
|
||
+昊 F 234:p
|
||
+昃 F 235:p
|
||
+旻 F 236:p
|
||
+杳 F 237:p
|
||
+昵 F 238:p
|
||
+昶 F 239:p
|
||
+昴 F 240:p
|
||
+昜 F 241:p
|
||
+晏 F 242:p
|
||
+晄 F 243:p
|
||
+晉 F 244:p
|
||
+晁 F 245:p
|
||
+晞 F 246:p
|
||
+晝 F 247:p
|
||
+晤 F 248:p
|
||
+晧 F 249:p
|
||
+晨 F 250:p
|
||
+晟 F 251:p
|
||
+晢 F 252:p
|
||
+晰 F 253:p
|
||
+暃 F 254:p
|
||
+暈 F 255:p
|
||
+暎 F 0:q
|
||
+暉 F 1:q
|
||
+暄 F 2:q
|
||
+暘 F 3:q
|
||
+暝 F 4:q
|
||
+曁 F 5:q
|
||
+暹 F 6:q
|
||
+曉 F 7:q
|
||
+暾 F 8:q
|
||
+暼 F 9:q
|
||
+曄 F 10:q
|
||
+暸 F 11:q
|
||
+曖 F 12:q
|
||
+曚 F 13:q
|
||
+曠 F 14:q
|
||
+昿 F 15:q
|
||
+曦 F 16:q
|
||
+曩 F 17:q
|
||
+曰 F 18:q
|
||
+曵 F 19:q
|
||
+曷 F 20:q
|
||
+朏 F 21:q
|
||
+朖 F 22:q
|
||
+朞 F 23:q
|
||
+朦 F 24:q
|
||
+朧 F 25:q
|
||
+霸 F 26:q
|
||
+朮 F 27:q
|
||
+朿 F 28:q
|
||
+朶 F 29:q
|
||
+杁 F 30:q
|
||
+朸 F 31:q
|
||
+朷 F 32:q
|
||
+杆 F 33:q
|
||
+杞 F 34:q
|
||
+杠 F 35:q
|
||
+杙 F 36:q
|
||
+杣 F 37:q
|
||
+杤 F 38:q
|
||
+枉 F 39:q
|
||
+杰 F 40:q
|
||
+枩 F 41:q
|
||
+杼 F 42:q
|
||
+杪 F 43:q
|
||
+枌 F 44:q
|
||
+枋 F 45:q
|
||
+枦 F 46:q
|
||
+枡 F 47:q
|
||
+枅 F 48:q
|
||
+枷 F 49:q
|
||
+柯 F 50:q
|
||
+枴 F 51:q
|
||
+柬 F 52:q
|
||
+枳 F 53:q
|
||
+柩 F 54:q
|
||
+枸 F 55:q
|
||
+柤 F 56:q
|
||
+柞 F 57:q
|
||
+柝 F 58:q
|
||
+柢 F 59:q
|
||
+柮 F 60:q
|
||
+枹 F 61:q
|
||
+柎 F 62:q
|
||
+柆 F 63:q
|
||
+柧 F 64:q
|
||
+檜 F 65:q
|
||
+栞 F 66:q
|
||
+框 F 67:q
|
||
+栩 F 68:q
|
||
+桀 F 69:q
|
||
+桍 F 70:q
|
||
+栲 F 71:q
|
||
+桎 F 72:q
|
||
+梳 F 73:q
|
||
+栫 F 74:q
|
||
+桙 F 75:q
|
||
+档 F 76:q
|
||
+桷 F 77:q
|
||
+桿 F 78:q
|
||
+梟 F 79:q
|
||
+梏 F 80:q
|
||
+梭 F 81:q
|
||
+梔 F 82:q
|
||
+條 F 83:q
|
||
+梛 F 84:q
|
||
+梃 F 85:q
|
||
+檮 F 86:q
|
||
+梹 F 87:q
|
||
+桴 F 88:q
|
||
+梵 F 89:q
|
||
+梠 F 90:q
|
||
+梺 F 91:q
|
||
+椏 F 92:q
|
||
+梍 F 93:q
|
||
+桾 F 94:q
|
||
+椁 F 95:q
|
||
+棊 F 96:q
|
||
+椈 F 97:q
|
||
+棘 F 98:q
|
||
+椢 F 99:q
|
||
+椦 F 100:q
|
||
+棡 F 101:q
|
||
+椌 F 102:q
|
||
+棍 F 103:q
|
||
+棔 F 104:q
|
||
+棧 F 105:q
|
||
+棕 F 106:q
|
||
+椶 F 107:q
|
||
+椒 F 108:q
|
||
+椄 F 109:q
|
||
+棗 F 110:q
|
||
+棣 F 111:q
|
||
+椥 F 112:q
|
||
+棹 F 113:q
|
||
+棠 F 114:q
|
||
+棯 F 115:q
|
||
+椨 F 116:q
|
||
+椪 F 117:q
|
||
+椚 F 118:q
|
||
+椣 F 119:q
|
||
+椡 F 120:q
|
||
+棆 F 121:q
|
||
+楹 F 122:q
|
||
+楷 F 123:q
|
||
+楜 F 124:q
|
||
+楸 F 125:q
|
||
+楫 F 126:q
|
||
+楔 F 127:q
|
||
+楾 F 128:q
|
||
+楮 F 129:q
|
||
+椹 F 130:q
|
||
+楴 F 131:q
|
||
+椽 F 132:q
|
||
+楙 F 133:q
|
||
+椰 F 134:q
|
||
+楡 F 135:q
|
||
+楞 F 136:q
|
||
+楝 F 137:q
|
||
+榁 F 138:q
|
||
+楪 F 139:q
|
||
+榲 F 140:q
|
||
+榮 F 141:q
|
||
+槐 F 142:q
|
||
+榿 F 143:q
|
||
+槁 F 144:q
|
||
+槓 F 145:q
|
||
+榾 F 146:q
|
||
+槎 F 147:q
|
||
+寨 F 148:q
|
||
+槊 F 149:q
|
||
+槝 F 150:q
|
||
+榻 F 151:q
|
||
+槃 F 152:q
|
||
+榧 F 153:q
|
||
+樮 F 154:q
|
||
+榑 F 155:q
|
||
+榠 F 156:q
|
||
+榜 F 157:q
|
||
+榕 F 158:q
|
||
+榴 F 159:q
|
||
+槞 F 160:q
|
||
+槨 F 161:q
|
||
+樂 F 162:q
|
||
+樛 F 163:q
|
||
+槿 F 164:q
|
||
+權 F 165:q
|
||
+槹 F 166:q
|
||
+槲 F 167:q
|
||
+槧 F 168:q
|
||
+樅 F 169:q
|
||
+榱 F 170:q
|
||
+樞 F 171:q
|
||
+槭 F 172:q
|
||
+樔 F 173:q
|
||
+槫 F 174:q
|
||
+樊 F 175:q
|
||
+樒 F 176:q
|
||
+櫁 F 177:q
|
||
+樣 F 178:q
|
||
+樓 F 179:q
|
||
+橄 F 180:q
|
||
+樌 F 181:q
|
||
+橲 F 182:q
|
||
+樶 F 183:q
|
||
+橸 F 184:q
|
||
+橇 F 185:q
|
||
+橢 F 186:q
|
||
+橙 F 187:q
|
||
+橦 F 188:q
|
||
+橈 F 189:q
|
||
+樸 F 190:q
|
||
+樢 F 191:q
|
||
+檐 F 192:q
|
||
+檍 F 193:q
|
||
+檠 F 194:q
|
||
+檄 F 195:q
|
||
+檢 F 196:q
|
||
+檣 F 197:q
|
||
+檗 F 198:q
|
||
+蘗 F 199:q
|
||
+檻 F 200:q
|
||
+櫃 F 201:q
|
||
+櫂 F 202:q
|
||
+檸 F 203:q
|
||
+檳 F 204:q
|
||
+檬 F 205:q
|
||
+櫞 F 206:q
|
||
+櫑 F 207:q
|
||
+櫟 F 208:q
|
||
+檪 F 209:q
|
||
+櫚 F 210:q
|
||
+櫪 F 211:q
|
||
+櫻 F 212:q
|
||
+欅 F 213:q
|
||
+蘖 F 214:q
|
||
+櫺 F 215:q
|
||
+欒 F 216:q
|
||
+欖 F 217:q
|
||
+鬱 F 218:q
|
||
+欟 F 219:q
|
||
+欸 F 220:q
|
||
+欷 F 221:q
|
||
+盜 F 222:q
|
||
+欹 F 223:q
|
||
+飮 F 224:q
|
||
+歇 F 225:q
|
||
+歃 F 226:q
|
||
+歉 F 227:q
|
||
+歐 F 228:q
|
||
+歙 F 229:q
|
||
+歔 F 230:q
|
||
+歛 F 231:q
|
||
+歟 F 232:q
|
||
+歡 F 233:q
|
||
+歸 F 234:q
|
||
+歹 F 235:q
|
||
+歿 F 236:q
|
||
+殀 F 237:q
|
||
+殄 F 238:q
|
||
+殃 F 239:q
|
||
+殍 F 240:q
|
||
+殘 F 241:q
|
||
+殕 F 242:q
|
||
+殞 F 243:q
|
||
+殤 F 244:q
|
||
+殪 F 245:q
|
||
+殫 F 246:q
|
||
+殯 F 247:q
|
||
+殲 F 248:q
|
||
+殱 F 249:q
|
||
+殳 F 250:q
|
||
+殷 F 251:q
|
||
+殼 F 252:q
|
||
+毆 F 253:q
|
||
+毋 F 254:q
|
||
+毓 F 255:q
|
||
+毟 F 0:r
|
||
+毬 F 1:r
|
||
+毫 F 2:r
|
||
+毳 F 3:r
|
||
+毯 F 4:r
|
||
+麾 F 5:r
|
||
+氈 F 6:r
|
||
+氓 F 7:r
|
||
+气 F 8:r
|
||
+氛 F 9:r
|
||
+氤 F 10:r
|
||
+氣 F 11:r
|
||
+汞 F 12:r
|
||
+汕 F 13:r
|
||
+汢 F 14:r
|
||
+汪 F 15:r
|
||
+沂 F 16:r
|
||
+沍 F 17:r
|
||
+沚 F 18:r
|
||
+沁 F 19:r
|
||
+沛 F 20:r
|
||
+汾 F 21:r
|
||
+汨 F 22:r
|
||
+汳 F 23:r
|
||
+沒 F 24:r
|
||
+沐 F 25:r
|
||
+泄 F 26:r
|
||
+泱 F 27:r
|
||
+泓 F 28:r
|
||
+沽 F 29:r
|
||
+泗 F 30:r
|
||
+泅 F 31:r
|
||
+泝 F 32:r
|
||
+沮 F 33:r
|
||
+沱 F 34:r
|
||
+沾 F 35:r
|
||
+沺 F 36:r
|
||
+泛 F 37:r
|
||
+泯 F 38:r
|
||
+泙 F 39:r
|
||
+泪 F 40:r
|
||
+洟 F 41:r
|
||
+衍 F 42:r
|
||
+洶 F 43:r
|
||
+洫 F 44:r
|
||
+洽 F 45:r
|
||
+洸 F 46:r
|
||
+洙 F 47:r
|
||
+洵 F 48:r
|
||
+洳 F 49:r
|
||
+洒 F 50:r
|
||
+洌 F 51:r
|
||
+浣 F 52:r
|
||
+涓 F 53:r
|
||
+浤 F 54:r
|
||
+浚 F 55:r
|
||
+浹 F 56:r
|
||
+浙 F 57:r
|
||
+涎 F 58:r
|
||
+涕 F 59:r
|
||
+濤 F 60:r
|
||
+涅 F 61:r
|
||
+淹 F 62:r
|
||
+渕 F 63:r
|
||
+渊 F 64:r
|
||
+涵 F 65:r
|
||
+淇 F 66:r
|
||
+淦 F 67:r
|
||
+涸 F 68:r
|
||
+淆 F 69:r
|
||
+淬 F 70:r
|
||
+淞 F 71:r
|
||
+淌 F 72:r
|
||
+淨 F 73:r
|
||
+淒 F 74:r
|
||
+淅 F 75:r
|
||
+淺 F 76:r
|
||
+淙 F 77:r
|
||
+淤 F 78:r
|
||
+淕 F 79:r
|
||
+淪 F 80:r
|
||
+淮 F 81:r
|
||
+渭 F 82:r
|
||
+湮 F 83:r
|
||
+渮 F 84:r
|
||
+渙 F 85:r
|
||
+湲 F 86:r
|
||
+湟 F 87:r
|
||
+渾 F 88:r
|
||
+渣 F 89:r
|
||
+湫 F 90:r
|
||
+渫 F 91:r
|
||
+湶 F 92:r
|
||
+湍 F 93:r
|
||
+渟 F 94:r
|
||
+湃 F 95:r
|
||
+渺 F 96:r
|
||
+湎 F 97:r
|
||
+渤 F 98:r
|
||
+滿 F 99:r
|
||
+渝 F 100:r
|
||
+游 F 101:r
|
||
+溂 F 102:r
|
||
+溪 F 103:r
|
||
+溘 F 104:r
|
||
+滉 F 105:r
|
||
+溷 F 106:r
|
||
+滓 F 107:r
|
||
+溽 F 108:r
|
||
+溯 F 109:r
|
||
+滄 F 110:r
|
||
+溲 F 111:r
|
||
+滔 F 112:r
|
||
+滕 F 113:r
|
||
+溏 F 114:r
|
||
+溥 F 115:r
|
||
+滂 F 116:r
|
||
+溟 F 117:r
|
||
+潁 F 118:r
|
||
+漑 F 119:r
|
||
+灌 F 120:r
|
||
+滬 F 121:r
|
||
+滸 F 122:r
|
||
+滾 F 123:r
|
||
+漿 F 124:r
|
||
+滲 F 125:r
|
||
+漱 F 126:r
|
||
+滯 F 127:r
|
||
+漲 F 128:r
|
||
+滌 F 129:r
|
||
+漾 F 130:r
|
||
+漓 F 131:r
|
||
+滷 F 132:r
|
||
+澆 F 133:r
|
||
+潺 F 134:r
|
||
+潸 F 135:r
|
||
+澁 F 136:r
|
||
+澀 F 137:r
|
||
+潯 F 138:r
|
||
+潛 F 139:r
|
||
+濳 F 140:r
|
||
+潭 F 141:r
|
||
+澂 F 142:r
|
||
+潼 F 143:r
|
||
+潘 F 144:r
|
||
+澎 F 145:r
|
||
+澑 F 146:r
|
||
+濂 F 147:r
|
||
+潦 F 148:r
|
||
+澳 F 149:r
|
||
+澣 F 150:r
|
||
+澡 F 151:r
|
||
+澤 F 152:r
|
||
+澹 F 153:r
|
||
+濆 F 154:r
|
||
+澪 F 155:r
|
||
+濟 F 156:r
|
||
+濕 F 157:r
|
||
+濬 F 158:r
|
||
+濔 F 159:r
|
||
+濘 F 160:r
|
||
+濱 F 161:r
|
||
+濮 F 162:r
|
||
+濛 F 163:r
|
||
+瀉 F 164:r
|
||
+瀋 F 165:r
|
||
+濺 F 166:r
|
||
+瀑 F 167:r
|
||
+瀁 F 168:r
|
||
+瀏 F 169:r
|
||
+濾 F 170:r
|
||
+瀛 F 171:r
|
||
+瀚 F 172:r
|
||
+潴 F 173:r
|
||
+瀝 F 174:r
|
||
+瀘 F 175:r
|
||
+瀟 F 176:r
|
||
+瀰 F 177:r
|
||
+瀾 F 178:r
|
||
+瀲 F 179:r
|
||
+灑 F 180:r
|
||
+灣 F 181:r
|
||
+炙 F 182:r
|
||
+炒 F 183:r
|
||
+炯 F 184:r
|
||
+烱 F 185:r
|
||
+炬 F 186:r
|
||
+炸 F 187:r
|
||
+炳 F 188:r
|
||
+炮 F 189:r
|
||
+烟 F 190:r
|
||
+烋 F 191:r
|
||
+烝 F 192:r
|
||
+烙 F 193:r
|
||
+焉 F 194:r
|
||
+烽 F 195:r
|
||
+焜 F 196:r
|
||
+焙 F 197:r
|
||
+煥 F 198:r
|
||
+煕 F 199:r
|
||
+熈 F 200:r
|
||
+煦 F 201:r
|
||
+煢 F 202:r
|
||
+煌 F 203:r
|
||
+煖 F 204:r
|
||
+煬 F 205:r
|
||
+熏 F 206:r
|
||
+燻 F 207:r
|
||
+熄 F 208:r
|
||
+熕 F 209:r
|
||
+熨 F 210:r
|
||
+熬 F 211:r
|
||
+燗 F 212:r
|
||
+熹 F 213:r
|
||
+熾 F 214:r
|
||
+燒 F 215:r
|
||
+燉 F 216:r
|
||
+燔 F 217:r
|
||
+燎 F 218:r
|
||
+燠 F 219:r
|
||
+燬 F 220:r
|
||
+燧 F 221:r
|
||
+燵 F 222:r
|
||
+燼 F 223:r
|
||
+燹 F 224:r
|
||
+燿 F 225:r
|
||
+爍 F 226:r
|
||
+爐 F 227:r
|
||
+爛 F 228:r
|
||
+爨 F 229:r
|
||
+爭 F 230:r
|
||
+爬 F 231:r
|
||
+爰 F 232:r
|
||
+爲 F 233:r
|
||
+爻 F 234:r
|
||
+爼 F 235:r
|
||
+爿 F 236:r
|
||
+牀 F 237:r
|
||
+牆 F 238:r
|
||
+牋 F 239:r
|
||
+牘 F 240:r
|
||
+牴 F 241:r
|
||
+牾 F 242:r
|
||
+犂 F 243:r
|
||
+犁 F 244:r
|
||
+犇 F 245:r
|
||
+犒 F 246:r
|
||
+犖 F 247:r
|
||
+犢 F 248:r
|
||
+犧 F 249:r
|
||
+犹 F 250:r
|
||
+犲 F 251:r
|
||
+狃 F 252:r
|
||
+狆 F 253:r
|
||
+狄 F 254:r
|
||
+狎 F 255:r
|
||
+狒 F 0:s
|
||
+狢 F 1:s
|
||
+狠 F 2:s
|
||
+狡 F 3:s
|
||
+狹 F 4:s
|
||
+狷 F 5:s
|
||
+倏 F 6:s
|
||
+猗 F 7:s
|
||
+猊 F 8:s
|
||
+猜 F 9:s
|
||
+猖 F 10:s
|
||
+猝 F 11:s
|
||
+猴 F 12:s
|
||
+猯 F 13:s
|
||
+猩 F 14:s
|
||
+猥 F 15:s
|
||
+猾 F 16:s
|
||
+獎 F 17:s
|
||
+獏 F 18:s
|
||
+默 F 19:s
|
||
+獗 F 20:s
|
||
+獪 F 21:s
|
||
+獨 F 22:s
|
||
+獰 F 23:s
|
||
+獸 F 24:s
|
||
+獵 F 25:s
|
||
+獻 F 26:s
|
||
+獺 F 27:s
|
||
+珈 F 28:s
|
||
+玳 F 29:s
|
||
+珎 F 30:s
|
||
+玻 F 31:s
|
||
+珀 F 32:s
|
||
+珥 F 33:s
|
||
+珮 F 34:s
|
||
+珞 F 35:s
|
||
+璢 F 36:s
|
||
+琅 F 37:s
|
||
+瑯 F 38:s
|
||
+琥 F 39:s
|
||
+珸 F 40:s
|
||
+琲 F 41:s
|
||
+琺 F 42:s
|
||
+瑕 F 43:s
|
||
+琿 F 44:s
|
||
+瑟 F 45:s
|
||
+瑙 F 46:s
|
||
+瑁 F 47:s
|
||
+瑜 F 48:s
|
||
+瑩 F 49:s
|
||
+瑰 F 50:s
|
||
+瑣 F 51:s
|
||
+瑪 F 52:s
|
||
+瑶 F 53:s
|
||
+瑾 F 54:s
|
||
+璋 F 55:s
|
||
+璞 F 56:s
|
||
+璧 F 57:s
|
||
+瓊 F 58:s
|
||
+瓏 F 59:s
|
||
+瓔 F 60:s
|
||
+珱 F 61:s
|
||
+瓠 F 62:s
|
||
+瓣 F 63:s
|
||
+瓧 F 64:s
|
||
+瓩 F 65:s
|
||
+瓮 F 66:s
|
||
+瓲 F 67:s
|
||
+瓰 F 68:s
|
||
+瓱 F 69:s
|
||
+瓸 F 70:s
|
||
+瓷 F 71:s
|
||
+甄 F 72:s
|
||
+甃 F 73:s
|
||
+甅 F 74:s
|
||
+甌 F 75:s
|
||
+甎 F 76:s
|
||
+甍 F 77:s
|
||
+甕 F 78:s
|
||
+甓 F 79:s
|
||
+甞 F 80:s
|
||
+甦 F 81:s
|
||
+甬 F 82:s
|
||
+甼 F 83:s
|
||
+畄 F 84:s
|
||
+畍 F 85:s
|
||
+畊 F 86:s
|
||
+畉 F 87:s
|
||
+畛 F 88:s
|
||
+畆 F 89:s
|
||
+畚 F 90:s
|
||
+畩 F 91:s
|
||
+畤 F 92:s
|
||
+畧 F 93:s
|
||
+畫 F 94:s
|
||
+畭 F 95:s
|
||
+畸 F 96:s
|
||
+當 F 97:s
|
||
+疆 F 98:s
|
||
+疇 F 99:s
|
||
+畴 F 100:s
|
||
+疊 F 101:s
|
||
+疉 F 102:s
|
||
+疂 F 103:s
|
||
+疔 F 104:s
|
||
+疚 F 105:s
|
||
+疝 F 106:s
|
||
+疥 F 107:s
|
||
+疣 F 108:s
|
||
+痂 F 109:s
|
||
+疳 F 110:s
|
||
+痃 F 111:s
|
||
+疵 F 112:s
|
||
+疽 F 113:s
|
||
+疸 F 114:s
|
||
+疼 F 115:s
|
||
+疱 F 116:s
|
||
+痍 F 117:s
|
||
+痊 F 118:s
|
||
+痒 F 119:s
|
||
+痙 F 120:s
|
||
+痣 F 121:s
|
||
+痞 F 122:s
|
||
+痾 F 123:s
|
||
+痿 F 124:s
|
||
+痼 F 125:s
|
||
+瘁 F 126:s
|
||
+痰 F 127:s
|
||
+痺 F 128:s
|
||
+痲 F 129:s
|
||
+痳 F 130:s
|
||
+瘋 F 131:s
|
||
+瘍 F 132:s
|
||
+瘉 F 133:s
|
||
+瘟 F 134:s
|
||
+瘧 F 135:s
|
||
+瘠 F 136:s
|
||
+瘡 F 137:s
|
||
+瘢 F 138:s
|
||
+瘤 F 139:s
|
||
+瘴 F 140:s
|
||
+瘰 F 141:s
|
||
+瘻 F 142:s
|
||
+癇 F 143:s
|
||
+癈 F 144:s
|
||
+癆 F 145:s
|
||
+癜 F 146:s
|
||
+癘 F 147:s
|
||
+癡 F 148:s
|
||
+癢 F 149:s
|
||
+癨 F 150:s
|
||
+癩 F 151:s
|
||
+癪 F 152:s
|
||
+癧 F 153:s
|
||
+癬 F 154:s
|
||
+癰 F 155:s
|
||
+癲 F 156:s
|
||
+癶 F 157:s
|
||
+癸 F 158:s
|
||
+發 F 159:s
|
||
+皀 F 160:s
|
||
+皃 F 161:s
|
||
+皈 F 162:s
|
||
+皋 F 163:s
|
||
+皎 F 164:s
|
||
+皖 F 165:s
|
||
+皓 F 166:s
|
||
+皙 F 167:s
|
||
+皚 F 168:s
|
||
+皰 F 169:s
|
||
+皴 F 170:s
|
||
+皸 F 171:s
|
||
+皹 F 172:s
|
||
+皺 F 173:s
|
||
+盂 F 174:s
|
||
+盍 F 175:s
|
||
+盖 F 176:s
|
||
+盒 F 177:s
|
||
+盞 F 178:s
|
||
+盡 F 179:s
|
||
+盥 F 180:s
|
||
+盧 F 181:s
|
||
+盪 F 182:s
|
||
+蘯 F 183:s
|
||
+盻 F 184:s
|
||
+眈 F 185:s
|
||
+眇 F 186:s
|
||
+眄 F 187:s
|
||
+眩 F 188:s
|
||
+眤 F 189:s
|
||
+眞 F 190:s
|
||
+眥 F 191:s
|
||
+眦 F 192:s
|
||
+眛 F 193:s
|
||
+眷 F 194:s
|
||
+眸 F 195:s
|
||
+睇 F 196:s
|
||
+睚 F 197:s
|
||
+睨 F 198:s
|
||
+睫 F 199:s
|
||
+睛 F 200:s
|
||
+睥 F 201:s
|
||
+睿 F 202:s
|
||
+睾 F 203:s
|
||
+睹 F 204:s
|
||
+瞎 F 205:s
|
||
+瞋 F 206:s
|
||
+瞑 F 207:s
|
||
+瞠 F 208:s
|
||
+瞞 F 209:s
|
||
+瞰 F 210:s
|
||
+瞶 F 211:s
|
||
+瞹 F 212:s
|
||
+瞿 F 213:s
|
||
+瞼 F 214:s
|
||
+瞽 F 215:s
|
||
+瞻 F 216:s
|
||
+矇 F 217:s
|
||
+矍 F 218:s
|
||
+矗 F 219:s
|
||
+矚 F 220:s
|
||
+矜 F 221:s
|
||
+矣 F 222:s
|
||
+矮 F 223:s
|
||
+矼 F 224:s
|
||
+砌 F 225:s
|
||
+砒 F 226:s
|
||
+礦 F 227:s
|
||
+砠 F 228:s
|
||
+礪 F 229:s
|
||
+硅 F 230:s
|
||
+碎 F 231:s
|
||
+硴 F 232:s
|
||
+碆 F 233:s
|
||
+硼 F 234:s
|
||
+碚 F 235:s
|
||
+碌 F 236:s
|
||
+碣 F 237:s
|
||
+碵 F 238:s
|
||
+碪 F 239:s
|
||
+碯 F 240:s
|
||
+磑 F 241:s
|
||
+磆 F 242:s
|
||
+磋 F 243:s
|
||
+磔 F 244:s
|
||
+碾 F 245:s
|
||
+碼 F 246:s
|
||
+磅 F 247:s
|
||
+磊 F 248:s
|
||
+磬 F 249:s
|
||
+磧 F 250:s
|
||
+磚 F 251:s
|
||
+磽 F 252:s
|
||
+磴 F 253:s
|
||
+礇 F 254:s
|
||
+礒 F 255:s
|
||
+礑 F 0:t
|
||
+礙 F 1:t
|
||
+礬 F 2:t
|
||
+礫 F 3:t
|
||
+祀 F 4:t
|
||
+祠 F 5:t
|
||
+祗 F 6:t
|
||
+祟 F 7:t
|
||
+祚 F 8:t
|
||
+祕 F 9:t
|
||
+祓 F 10:t
|
||
+祺 F 11:t
|
||
+祿 F 12:t
|
||
+禊 F 13:t
|
||
+禝 F 14:t
|
||
+禧 F 15:t
|
||
+齋 F 16:t
|
||
+禪 F 17:t
|
||
+禮 F 18:t
|
||
+禳 F 19:t
|
||
+禹 F 20:t
|
||
+禺 F 21:t
|
||
+秉 F 22:t
|
||
+秕 F 23:t
|
||
+秧 F 24:t
|
||
+秬 F 25:t
|
||
+秡 F 26:t
|
||
+秣 F 27:t
|
||
+稈 F 28:t
|
||
+稍 F 29:t
|
||
+稘 F 30:t
|
||
+稙 F 31:t
|
||
+稠 F 32:t
|
||
+稟 F 33:t
|
||
+禀 F 34:t
|
||
+稱 F 35:t
|
||
+稻 F 36:t
|
||
+稾 F 37:t
|
||
+稷 F 38:t
|
||
+穃 F 39:t
|
||
+穗 F 40:t
|
||
+穉 F 41:t
|
||
+穡 F 42:t
|
||
+穢 F 43:t
|
||
+穩 F 44:t
|
||
+龝 F 45:t
|
||
+穰 F 46:t
|
||
+穹 F 47:t
|
||
+穽 F 48:t
|
||
+窈 F 49:t
|
||
+窗 F 50:t
|
||
+窕 F 51:t
|
||
+窘 F 52:t
|
||
+窖 F 53:t
|
||
+窩 F 54:t
|
||
+竈 F 55:t
|
||
+窰 F 56:t
|
||
+窶 F 57:t
|
||
+竅 F 58:t
|
||
+竄 F 59:t
|
||
+窿 F 60:t
|
||
+邃 F 61:t
|
||
+竇 F 62:t
|
||
+竊 F 63:t
|
||
+竍 F 64:t
|
||
+竏 F 65:t
|
||
+竕 F 66:t
|
||
+竓 F 67:t
|
||
+站 F 68:t
|
||
+竚 F 69:t
|
||
+竝 F 70:t
|
||
+竡 F 71:t
|
||
+竢 F 72:t
|
||
+竦 F 73:t
|
||
+竭 F 74:t
|
||
+竰 F 75:t
|
||
+笂 F 76:t
|
||
+笏 F 77:t
|
||
+笊 F 78:t
|
||
+笆 F 79:t
|
||
+笳 F 80:t
|
||
+笘 F 81:t
|
||
+笙 F 82:t
|
||
+笞 F 83:t
|
||
+笵 F 84:t
|
||
+笨 F 85:t
|
||
+笶 F 86:t
|
||
+筐 F 87:t
|
||
+筺 F 88:t
|
||
+笄 F 89:t
|
||
+筍 F 90:t
|
||
+笋 F 91:t
|
||
+筌 F 92:t
|
||
+筅 F 93:t
|
||
+筵 F 94:t
|
||
+筥 F 95:t
|
||
+筴 F 96:t
|
||
+筧 F 97:t
|
||
+筰 F 98:t
|
||
+筱 F 99:t
|
||
+筬 F 100:t
|
||
+筮 F 101:t
|
||
+箝 F 102:t
|
||
+箘 F 103:t
|
||
+箟 F 104:t
|
||
+箍 F 105:t
|
||
+箜 F 106:t
|
||
+箚 F 107:t
|
||
+箋 F 108:t
|
||
+箒 F 109:t
|
||
+箏 F 110:t
|
||
+筝 F 111:t
|
||
+箙 F 112:t
|
||
+篋 F 113:t
|
||
+篁 F 114:t
|
||
+篌 F 115:t
|
||
+篏 F 116:t
|
||
+箴 F 117:t
|
||
+篆 F 118:t
|
||
+篝 F 119:t
|
||
+篩 F 120:t
|
||
+簑 F 121:t
|
||
+簔 F 122:t
|
||
+篦 F 123:t
|
||
+篥 F 124:t
|
||
+籠 F 125:t
|
||
+簀 F 126:t
|
||
+簇 F 127:t
|
||
+簓 F 128:t
|
||
+篳 F 129:t
|
||
+篷 F 130:t
|
||
+簗 F 131:t
|
||
+簍 F 132:t
|
||
+篶 F 133:t
|
||
+簣 F 134:t
|
||
+簧 F 135:t
|
||
+簪 F 136:t
|
||
+簟 F 137:t
|
||
+簷 F 138:t
|
||
+簫 F 139:t
|
||
+簽 F 140:t
|
||
+籌 F 141:t
|
||
+籃 F 142:t
|
||
+籔 F 143:t
|
||
+籏 F 144:t
|
||
+籀 F 145:t
|
||
+籐 F 146:t
|
||
+籘 F 147:t
|
||
+籟 F 148:t
|
||
+籤 F 149:t
|
||
+籖 F 150:t
|
||
+籥 F 151:t
|
||
+籬 F 152:t
|
||
+籵 F 153:t
|
||
+粃 F 154:t
|
||
+粐 F 155:t
|
||
+粤 F 156:t
|
||
+粭 F 157:t
|
||
+粢 F 158:t
|
||
+粫 F 159:t
|
||
+粡 F 160:t
|
||
+粨 F 161:t
|
||
+粳 F 162:t
|
||
+粲 F 163:t
|
||
+粱 F 164:t
|
||
+粮 F 165:t
|
||
+粹 F 166:t
|
||
+粽 F 167:t
|
||
+糀 F 168:t
|
||
+糅 F 169:t
|
||
+糂 F 170:t
|
||
+糘 F 171:t
|
||
+糒 F 172:t
|
||
+糜 F 173:t
|
||
+糢 F 174:t
|
||
+鬻 F 175:t
|
||
+糯 F 176:t
|
||
+糲 F 177:t
|
||
+糴 F 178:t
|
||
+糶 F 179:t
|
||
+糺 F 180:t
|
||
+紆 F 181:t
|
||
+紂 F 182:t
|
||
+紜 F 183:t
|
||
+紕 F 184:t
|
||
+紊 F 185:t
|
||
+絅 F 186:t
|
||
+絋 F 187:t
|
||
+紮 F 188:t
|
||
+紲 F 189:t
|
||
+紿 F 190:t
|
||
+紵 F 191:t
|
||
+絆 F 192:t
|
||
+絳 F 193:t
|
||
+絖 F 194:t
|
||
+絎 F 195:t
|
||
+絲 F 196:t
|
||
+絨 F 197:t
|
||
+絮 F 198:t
|
||
+絏 F 199:t
|
||
+絣 F 200:t
|
||
+經 F 201:t
|
||
+綉 F 202:t
|
||
+絛 F 203:t
|
||
+綏 F 204:t
|
||
+絽 F 205:t
|
||
+綛 F 206:t
|
||
+綺 F 207:t
|
||
+綮 F 208:t
|
||
+綣 F 209:t
|
||
+綵 F 210:t
|
||
+緇 F 211:t
|
||
+綽 F 212:t
|
||
+綫 F 213:t
|
||
+總 F 214:t
|
||
+綢 F 215:t
|
||
+綯 F 216:t
|
||
+緜 F 217:t
|
||
+綸 F 218:t
|
||
+綟 F 219:t
|
||
+綰 F 220:t
|
||
+緘 F 221:t
|
||
+緝 F 222:t
|
||
+緤 F 223:t
|
||
+緞 F 224:t
|
||
+緻 F 225:t
|
||
+緲 F 226:t
|
||
+緡 F 227:t
|
||
+縅 F 228:t
|
||
+縊 F 229:t
|
||
+縣 F 230:t
|
||
+縡 F 231:t
|
||
+縒 F 232:t
|
||
+縱 F 233:t
|
||
+縟 F 234:t
|
||
+縉 F 235:t
|
||
+縋 F 236:t
|
||
+縢 F 237:t
|
||
+繆 F 238:t
|
||
+繦 F 239:t
|
||
+縻 F 240:t
|
||
+縵 F 241:t
|
||
+縹 F 242:t
|
||
+繃 F 243:t
|
||
+縷 F 244:t
|
||
+縲 F 245:t
|
||
+縺 F 246:t
|
||
+繧 F 247:t
|
||
+繝 F 248:t
|
||
+繖 F 249:t
|
||
+繞 F 250:t
|
||
+繙 F 251:t
|
||
+繚 F 252:t
|
||
+繹 F 253:t
|
||
+繪 F 254:t
|
||
+繩 F 255:t
|
||
+繼 F 0:u
|
||
+繻 F 1:u
|
||
+纃 F 2:u
|
||
+緕 F 3:u
|
||
+繽 F 4:u
|
||
+辮 F 5:u
|
||
+繿 F 6:u
|
||
+纈 F 7:u
|
||
+纉 F 8:u
|
||
+續 F 9:u
|
||
+纒 F 10:u
|
||
+纐 F 11:u
|
||
+纓 F 12:u
|
||
+纔 F 13:u
|
||
+纖 F 14:u
|
||
+纎 F 15:u
|
||
+纛 F 16:u
|
||
+纜 F 17:u
|
||
+缸 F 18:u
|
||
+缺 F 19:u
|
||
+罅 F 20:u
|
||
+罌 F 21:u
|
||
+罍 F 22:u
|
||
+罎 F 23:u
|
||
+罐 F 24:u
|
||
+网 F 25:u
|
||
+罕 F 26:u
|
||
+罔 F 27:u
|
||
+罘 F 28:u
|
||
+罟 F 29:u
|
||
+罠 F 30:u
|
||
+罨 F 31:u
|
||
+罩 F 32:u
|
||
+罧 F 33:u
|
||
+罸 F 34:u
|
||
+羂 F 35:u
|
||
+羆 F 36:u
|
||
+羃 F 37:u
|
||
+羈 F 38:u
|
||
+羇 F 39:u
|
||
+羌 F 40:u
|
||
+羔 F 41:u
|
||
+羞 F 42:u
|
||
+羝 F 43:u
|
||
+羚 F 44:u
|
||
+羣 F 45:u
|
||
+羯 F 46:u
|
||
+羲 F 47:u
|
||
+羹 F 48:u
|
||
+羮 F 49:u
|
||
+羶 F 50:u
|
||
+羸 F 51:u
|
||
+譱 F 52:u
|
||
+翅 F 53:u
|
||
+翆 F 54:u
|
||
+翊 F 55:u
|
||
+翕 F 56:u
|
||
+翔 F 57:u
|
||
+翡 F 58:u
|
||
+翦 F 59:u
|
||
+翩 F 60:u
|
||
+翳 F 61:u
|
||
+翹 F 62:u
|
||
+飜 F 63:u
|
||
+耆 F 64:u
|
||
+耄 F 65:u
|
||
+耋 F 66:u
|
||
+耒 F 67:u
|
||
+耘 F 68:u
|
||
+耙 F 69:u
|
||
+耜 F 70:u
|
||
+耡 F 71:u
|
||
+耨 F 72:u
|
||
+耿 F 73:u
|
||
+耻 F 74:u
|
||
+聊 F 75:u
|
||
+聆 F 76:u
|
||
+聒 F 77:u
|
||
+聘 F 78:u
|
||
+聚 F 79:u
|
||
+聟 F 80:u
|
||
+聢 F 81:u
|
||
+聨 F 82:u
|
||
+聳 F 83:u
|
||
+聲 F 84:u
|
||
+聰 F 85:u
|
||
+聶 F 86:u
|
||
+聹 F 87:u
|
||
+聽 F 88:u
|
||
+聿 F 89:u
|
||
+肄 F 90:u
|
||
+肆 F 91:u
|
||
+肅 F 92:u
|
||
+肛 F 93:u
|
||
+肓 F 94:u
|
||
+肚 F 95:u
|
||
+肭 F 96:u
|
||
+冐 F 97:u
|
||
+肬 F 98:u
|
||
+胛 F 99:u
|
||
+胥 F 100:u
|
||
+胙 F 101:u
|
||
+胝 F 102:u
|
||
+胄 F 103:u
|
||
+胚 F 104:u
|
||
+胖 F 105:u
|
||
+脉 F 106:u
|
||
+胯 F 107:u
|
||
+胱 F 108:u
|
||
+脛 F 109:u
|
||
+脩 F 110:u
|
||
+脣 F 111:u
|
||
+脯 F 112:u
|
||
+腋 F 113:u
|
||
+隋 F 114:u
|
||
+腆 F 115:u
|
||
+脾 F 116:u
|
||
+腓 F 117:u
|
||
+腑 F 118:u
|
||
+胼 F 119:u
|
||
+腱 F 120:u
|
||
+腮 F 121:u
|
||
+腥 F 122:u
|
||
+腦 F 123:u
|
||
+腴 F 124:u
|
||
+膃 F 125:u
|
||
+膈 F 126:u
|
||
+膊 F 127:u
|
||
+膀 F 128:u
|
||
+膂 F 129:u
|
||
+膠 F 130:u
|
||
+膕 F 131:u
|
||
+膤 F 132:u
|
||
+膣 F 133:u
|
||
+腟 F 134:u
|
||
+膓 F 135:u
|
||
+膩 F 136:u
|
||
+膰 F 137:u
|
||
+膵 F 138:u
|
||
+膾 F 139:u
|
||
+膸 F 140:u
|
||
+膽 F 141:u
|
||
+臀 F 142:u
|
||
+臂 F 143:u
|
||
+膺 F 144:u
|
||
+臉 F 145:u
|
||
+臍 F 146:u
|
||
+臑 F 147:u
|
||
+臙 F 148:u
|
||
+臘 F 149:u
|
||
+臈 F 150:u
|
||
+臚 F 151:u
|
||
+臟 F 152:u
|
||
+臠 F 153:u
|
||
+臧 F 154:u
|
||
+臺 F 155:u
|
||
+臻 F 156:u
|
||
+臾 F 157:u
|
||
+舁 F 158:u
|
||
+舂 F 159:u
|
||
+舅 F 160:u
|
||
+與 F 161:u
|
||
+舊 F 162:u
|
||
+舍 F 163:u
|
||
+舐 F 164:u
|
||
+舖 F 165:u
|
||
+舩 F 166:u
|
||
+舫 F 167:u
|
||
+舸 F 168:u
|
||
+舳 F 169:u
|
||
+艀 F 170:u
|
||
+艙 F 171:u
|
||
+艘 F 172:u
|
||
+艝 F 173:u
|
||
+艚 F 174:u
|
||
+艟 F 175:u
|
||
+艤 F 176:u
|
||
+艢 F 177:u
|
||
+艨 F 178:u
|
||
+艪 F 179:u
|
||
+艫 F 180:u
|
||
+舮 F 181:u
|
||
+艱 F 182:u
|
||
+艷 F 183:u
|
||
+艸 F 184:u
|
||
+艾 F 185:u
|
||
+芍 F 186:u
|
||
+芒 F 187:u
|
||
+芫 F 188:u
|
||
+芟 F 189:u
|
||
+芻 F 190:u
|
||
+芬 F 191:u
|
||
+苡 F 192:u
|
||
+苣 F 193:u
|
||
+苟 F 194:u
|
||
+苒 F 195:u
|
||
+苴 F 196:u
|
||
+苳 F 197:u
|
||
+苺 F 198:u
|
||
+莓 F 199:u
|
||
+范 F 200:u
|
||
+苻 F 201:u
|
||
+苹 F 202:u
|
||
+苞 F 203:u
|
||
+茆 F 204:u
|
||
+苜 F 205:u
|
||
+茉 F 206:u
|
||
+苙 F 207:u
|
||
+茵 F 208:u
|
||
+茴 F 209:u
|
||
+茖 F 210:u
|
||
+茲 F 211:u
|
||
+茱 F 212:u
|
||
+荀 F 213:u
|
||
+茹 F 214:u
|
||
+荐 F 215:u
|
||
+荅 F 216:u
|
||
+茯 F 217:u
|
||
+茫 F 218:u
|
||
+茗 F 219:u
|
||
+茘 F 220:u
|
||
+莅 F 221:u
|
||
+莚 F 222:u
|
||
+莪 F 223:u
|
||
+莟 F 224:u
|
||
+莢 F 225:u
|
||
+莖 F 226:u
|
||
+茣 F 227:u
|
||
+莎 F 228:u
|
||
+莇 F 229:u
|
||
+莊 F 230:u
|
||
+荼 F 231:u
|
||
+莵 F 232:u
|
||
+荳 F 233:u
|
||
+荵 F 234:u
|
||
+莠 F 235:u
|
||
+莉 F 236:u
|
||
+莨 F 237:u
|
||
+菴 F 238:u
|
||
+萓 F 239:u
|
||
+菫 F 240:u
|
||
+菎 F 241:u
|
||
+菽 F 242:u
|
||
+萃 F 243:u
|
||
+菘 F 244:u
|
||
+萋 F 245:u
|
||
+菁 F 246:u
|
||
+菷 F 247:u
|
||
+萇 F 248:u
|
||
+菠 F 249:u
|
||
+菲 F 250:u
|
||
+萍 F 251:u
|
||
+萢 F 252:u
|
||
+萠 F 253:u
|
||
+莽 F 254:u
|
||
+萸 F 255:u
|
||
+蔆 F 0:v
|
||
+菻 F 1:v
|
||
+葭 F 2:v
|
||
+萪 F 3:v
|
||
+萼 F 4:v
|
||
+蕚 F 5:v
|
||
+蒄 F 6:v
|
||
+葷 F 7:v
|
||
+葫 F 8:v
|
||
+蒭 F 9:v
|
||
+葮 F 10:v
|
||
+蒂 F 11:v
|
||
+葩 F 12:v
|
||
+葆 F 13:v
|
||
+萬 F 14:v
|
||
+葯 F 15:v
|
||
+葹 F 16:v
|
||
+萵 F 17:v
|
||
+蓊 F 18:v
|
||
+葢 F 19:v
|
||
+蒹 F 20:v
|
||
+蒿 F 21:v
|
||
+蒟 F 22:v
|
||
+蓙 F 23:v
|
||
+蓍 F 24:v
|
||
+蒻 F 25:v
|
||
+蓚 F 26:v
|
||
+蓐 F 27:v
|
||
+蓁 F 28:v
|
||
+蓆 F 29:v
|
||
+蓖 F 30:v
|
||
+蒡 F 31:v
|
||
+蔡 F 32:v
|
||
+蓿 F 33:v
|
||
+蓴 F 34:v
|
||
+蔗 F 35:v
|
||
+蔘 F 36:v
|
||
+蔬 F 37:v
|
||
+蔟 F 38:v
|
||
+蔕 F 39:v
|
||
+蔔 F 40:v
|
||
+蓼 F 41:v
|
||
+蕀 F 42:v
|
||
+蕣 F 43:v
|
||
+蕘 F 44:v
|
||
+蕈 F 45:v
|
||
+蕁 F 46:v
|
||
+蘂 F 47:v
|
||
+蕋 F 48:v
|
||
+蕕 F 49:v
|
||
+薀 F 50:v
|
||
+薤 F 51:v
|
||
+薈 F 52:v
|
||
+薑 F 53:v
|
||
+薊 F 54:v
|
||
+薨 F 55:v
|
||
+蕭 F 56:v
|
||
+薔 F 57:v
|
||
+薛 F 58:v
|
||
+藪 F 59:v
|
||
+薇 F 60:v
|
||
+薜 F 61:v
|
||
+蕷 F 62:v
|
||
+蕾 F 63:v
|
||
+薐 F 64:v
|
||
+藉 F 65:v
|
||
+薺 F 66:v
|
||
+藏 F 67:v
|
||
+薹 F 68:v
|
||
+藐 F 69:v
|
||
+藕 F 70:v
|
||
+藝 F 71:v
|
||
+藥 F 72:v
|
||
+藜 F 73:v
|
||
+藹 F 74:v
|
||
+蘊 F 75:v
|
||
+蘓 F 76:v
|
||
+蘋 F 77:v
|
||
+藾 F 78:v
|
||
+藺 F 79:v
|
||
+蘆 F 80:v
|
||
+蘢 F 81:v
|
||
+蘚 F 82:v
|
||
+蘰 F 83:v
|
||
+蘿 F 84:v
|
||
+虍 F 85:v
|
||
+乕 F 86:v
|
||
+虔 F 87:v
|
||
+號 F 88:v
|
||
+虧 F 89:v
|
||
+虱 F 90:v
|
||
+蚓 F 91:v
|
||
+蚣 F 92:v
|
||
+蚩 F 93:v
|
||
+蚪 F 94:v
|
||
+蚋 F 95:v
|
||
+蚌 F 96:v
|
||
+蚶 F 97:v
|
||
+蚯 F 98:v
|
||
+蛄 F 99:v
|
||
+蛆 F 100:v
|
||
+蚰 F 101:v
|
||
+蛉 F 102:v
|
||
+蠣 F 103:v
|
||
+蚫 F 104:v
|
||
+蛔 F 105:v
|
||
+蛞 F 106:v
|
||
+蛩 F 107:v
|
||
+蛬 F 108:v
|
||
+蛟 F 109:v
|
||
+蛛 F 110:v
|
||
+蛯 F 111:v
|
||
+蜒 F 112:v
|
||
+蜆 F 113:v
|
||
+蜈 F 114:v
|
||
+蜀 F 115:v
|
||
+蜃 F 116:v
|
||
+蛻 F 117:v
|
||
+蜑 F 118:v
|
||
+蜉 F 119:v
|
||
+蜍 F 120:v
|
||
+蛹 F 121:v
|
||
+蜊 F 122:v
|
||
+蜴 F 123:v
|
||
+蜿 F 124:v
|
||
+蜷 F 125:v
|
||
+蜻 F 126:v
|
||
+蜥 F 127:v
|
||
+蜩 F 128:v
|
||
+蜚 F 129:v
|
||
+蝠 F 130:v
|
||
+蝟 F 131:v
|
||
+蝸 F 132:v
|
||
+蝌 F 133:v
|
||
+蝎 F 134:v
|
||
+蝴 F 135:v
|
||
+蝗 F 136:v
|
||
+蝨 F 137:v
|
||
+蝮 F 138:v
|
||
+蝙 F 139:v
|
||
+蝓 F 140:v
|
||
+蝣 F 141:v
|
||
+蝪 F 142:v
|
||
+蠅 F 143:v
|
||
+螢 F 144:v
|
||
+螟 F 145:v
|
||
+螂 F 146:v
|
||
+螯 F 147:v
|
||
+蟋 F 148:v
|
||
+螽 F 149:v
|
||
+蟀 F 150:v
|
||
+蟐 F 151:v
|
||
+雖 F 152:v
|
||
+螫 F 153:v
|
||
+蟄 F 154:v
|
||
+螳 F 155:v
|
||
+蟇 F 156:v
|
||
+蟆 F 157:v
|
||
+螻 F 158:v
|
||
+蟯 F 159:v
|
||
+蟲 F 160:v
|
||
+蟠 F 161:v
|
||
+蠏 F 162:v
|
||
+蠍 F 163:v
|
||
+蟾 F 164:v
|
||
+蟶 F 165:v
|
||
+蟷 F 166:v
|
||
+蠎 F 167:v
|
||
+蟒 F 168:v
|
||
+蠑 F 169:v
|
||
+蠖 F 170:v
|
||
+蠕 F 171:v
|
||
+蠢 F 172:v
|
||
+蠡 F 173:v
|
||
+蠱 F 174:v
|
||
+蠶 F 175:v
|
||
+蠹 F 176:v
|
||
+蠧 F 177:v
|
||
+蠻 F 178:v
|
||
+衄 F 179:v
|
||
+衂 F 180:v
|
||
+衒 F 181:v
|
||
+衙 F 182:v
|
||
+衞 F 183:v
|
||
+衢 F 184:v
|
||
+衫 F 185:v
|
||
+袁 F 186:v
|
||
+衾 F 187:v
|
||
+袞 F 188:v
|
||
+衵 F 189:v
|
||
+衽 F 190:v
|
||
+袵 F 191:v
|
||
+衲 F 192:v
|
||
+袂 F 193:v
|
||
+袗 F 194:v
|
||
+袒 F 195:v
|
||
+袮 F 196:v
|
||
+袙 F 197:v
|
||
+袢 F 198:v
|
||
+袍 F 199:v
|
||
+袤 F 200:v
|
||
+袰 F 201:v
|
||
+袿 F 202:v
|
||
+袱 F 203:v
|
||
+裃 F 204:v
|
||
+裄 F 205:v
|
||
+裔 F 206:v
|
||
+裘 F 207:v
|
||
+裙 F 208:v
|
||
+裝 F 209:v
|
||
+裹 F 210:v
|
||
+褂 F 211:v
|
||
+裼 F 212:v
|
||
+裴 F 213:v
|
||
+裨 F 214:v
|
||
+裲 F 215:v
|
||
+褄 F 216:v
|
||
+褌 F 217:v
|
||
+褊 F 218:v
|
||
+褓 F 219:v
|
||
+襃 F 220:v
|
||
+褞 F 221:v
|
||
+褥 F 222:v
|
||
+褪 F 223:v
|
||
+褫 F 224:v
|
||
+襁 F 225:v
|
||
+襄 F 226:v
|
||
+褻 F 227:v
|
||
+褶 F 228:v
|
||
+褸 F 229:v
|
||
+襌 F 230:v
|
||
+褝 F 231:v
|
||
+襠 F 232:v
|
||
+襞 F 233:v
|
||
+襦 F 234:v
|
||
+襤 F 235:v
|
||
+襭 F 236:v
|
||
+襪 F 237:v
|
||
+襯 F 238:v
|
||
+襴 F 239:v
|
||
+襷 F 240:v
|
||
+襾 F 241:v
|
||
+覃 F 242:v
|
||
+覈 F 243:v
|
||
+覊 F 244:v
|
||
+覓 F 245:v
|
||
+覘 F 246:v
|
||
+覡 F 247:v
|
||
+覩 F 248:v
|
||
+覦 F 249:v
|
||
+覬 F 250:v
|
||
+覯 F 251:v
|
||
+覲 F 252:v
|
||
+覺 F 253:v
|
||
+覽 F 254:v
|
||
+覿 F 255:v
|
||
+觀 F 0:w
|
||
+觚 F 1:w
|
||
+觜 F 2:w
|
||
+觝 F 3:w
|
||
+觧 F 4:w
|
||
+觴 F 5:w
|
||
+觸 F 6:w
|
||
+訃 F 7:w
|
||
+訖 F 8:w
|
||
+訐 F 9:w
|
||
+訌 F 10:w
|
||
+訛 F 11:w
|
||
+訝 F 12:w
|
||
+訥 F 13:w
|
||
+訶 F 14:w
|
||
+詁 F 15:w
|
||
+詛 F 16:w
|
||
+詒 F 17:w
|
||
+詆 F 18:w
|
||
+詈 F 19:w
|
||
+詼 F 20:w
|
||
+詭 F 21:w
|
||
+詬 F 22:w
|
||
+詢 F 23:w
|
||
+誅 F 24:w
|
||
+誂 F 25:w
|
||
+誄 F 26:w
|
||
+誨 F 27:w
|
||
+誡 F 28:w
|
||
+誑 F 29:w
|
||
+誥 F 30:w
|
||
+誦 F 31:w
|
||
+誚 F 32:w
|
||
+誣 F 33:w
|
||
+諄 F 34:w
|
||
+諍 F 35:w
|
||
+諂 F 36:w
|
||
+諚 F 37:w
|
||
+諫 F 38:w
|
||
+諳 F 39:w
|
||
+諧 F 40:w
|
||
+諤 F 41:w
|
||
+諱 F 42:w
|
||
+謔 F 43:w
|
||
+諠 F 44:w
|
||
+諢 F 45:w
|
||
+諷 F 46:w
|
||
+諞 F 47:w
|
||
+諛 F 48:w
|
||
+謌 F 49:w
|
||
+謇 F 50:w
|
||
+謚 F 51:w
|
||
+諡 F 52:w
|
||
+謖 F 53:w
|
||
+謐 F 54:w
|
||
+謗 F 55:w
|
||
+謠 F 56:w
|
||
+謳 F 57:w
|
||
+鞫 F 58:w
|
||
+謦 F 59:w
|
||
+謫 F 60:w
|
||
+謾 F 61:w
|
||
+謨 F 62:w
|
||
+譁 F 63:w
|
||
+譌 F 64:w
|
||
+譏 F 65:w
|
||
+譎 F 66:w
|
||
+證 F 67:w
|
||
+譖 F 68:w
|
||
+譛 F 69:w
|
||
+譚 F 70:w
|
||
+譫 F 71:w
|
||
+譟 F 72:w
|
||
+譬 F 73:w
|
||
+譯 F 74:w
|
||
+譴 F 75:w
|
||
+譽 F 76:w
|
||
+讀 F 77:w
|
||
+讌 F 78:w
|
||
+讎 F 79:w
|
||
+讒 F 80:w
|
||
+讓 F 81:w
|
||
+讖 F 82:w
|
||
+讙 F 83:w
|
||
+讚 F 84:w
|
||
+谺 F 85:w
|
||
+豁 F 86:w
|
||
+谿 F 87:w
|
||
+豈 F 88:w
|
||
+豌 F 89:w
|
||
+豎 F 90:w
|
||
+豐 F 91:w
|
||
+豕 F 92:w
|
||
+豢 F 93:w
|
||
+豬 F 94:w
|
||
+豸 F 95:w
|
||
+豺 F 96:w
|
||
+貂 F 97:w
|
||
+貉 F 98:w
|
||
+貅 F 99:w
|
||
+貊 F 100:w
|
||
+貍 F 101:w
|
||
+貎 F 102:w
|
||
+貔 F 103:w
|
||
+豼 F 104:w
|
||
+貘 F 105:w
|
||
+戝 F 106:w
|
||
+貭 F 107:w
|
||
+貪 F 108:w
|
||
+貽 F 109:w
|
||
+貲 F 110:w
|
||
+貳 F 111:w
|
||
+貮 F 112:w
|
||
+貶 F 113:w
|
||
+賈 F 114:w
|
||
+賁 F 115:w
|
||
+賤 F 116:w
|
||
+賣 F 117:w
|
||
+賚 F 118:w
|
||
+賽 F 119:w
|
||
+賺 F 120:w
|
||
+賻 F 121:w
|
||
+贄 F 122:w
|
||
+贅 F 123:w
|
||
+贊 F 124:w
|
||
+贇 F 125:w
|
||
+贏 F 126:w
|
||
+贍 F 127:w
|
||
+贐 F 128:w
|
||
+齎 F 129:w
|
||
+贓 F 130:w
|
||
+賍 F 131:w
|
||
+贔 F 132:w
|
||
+贖 F 133:w
|
||
+赧 F 134:w
|
||
+赭 F 135:w
|
||
+赱 F 136:w
|
||
+赳 F 137:w
|
||
+趁 F 138:w
|
||
+趙 F 139:w
|
||
+跂 F 140:w
|
||
+趾 F 141:w
|
||
+趺 F 142:w
|
||
+跏 F 143:w
|
||
+跚 F 144:w
|
||
+跖 F 145:w
|
||
+跌 F 146:w
|
||
+跛 F 147:w
|
||
+跋 F 148:w
|
||
+跪 F 149:w
|
||
+跫 F 150:w
|
||
+跟 F 151:w
|
||
+跣 F 152:w
|
||
+跼 F 153:w
|
||
+踈 F 154:w
|
||
+踉 F 155:w
|
||
+跿 F 156:w
|
||
+踝 F 157:w
|
||
+踞 F 158:w
|
||
+踐 F 159:w
|
||
+踟 F 160:w
|
||
+蹂 F 161:w
|
||
+踵 F 162:w
|
||
+踰 F 163:w
|
||
+踴 F 164:w
|
||
+蹊 F 165:w
|
||
+蹇 F 166:w
|
||
+蹉 F 167:w
|
||
+蹌 F 168:w
|
||
+蹐 F 169:w
|
||
+蹈 F 170:w
|
||
+蹙 F 171:w
|
||
+蹤 F 172:w
|
||
+蹠 F 173:w
|
||
+踪 F 174:w
|
||
+蹣 F 175:w
|
||
+蹕 F 176:w
|
||
+蹶 F 177:w
|
||
+蹲 F 178:w
|
||
+蹼 F 179:w
|
||
+躁 F 180:w
|
||
+躇 F 181:w
|
||
+躅 F 182:w
|
||
+躄 F 183:w
|
||
+躋 F 184:w
|
||
+躊 F 185:w
|
||
+躓 F 186:w
|
||
+躑 F 187:w
|
||
+躔 F 188:w
|
||
+躙 F 189:w
|
||
+躪 F 190:w
|
||
+躡 F 191:w
|
||
+躬 F 192:w
|
||
+躰 F 193:w
|
||
+軆 F 194:w
|
||
+躱 F 195:w
|
||
+躾 F 196:w
|
||
+軅 F 197:w
|
||
+軈 F 198:w
|
||
+軋 F 199:w
|
||
+軛 F 200:w
|
||
+軣 F 201:w
|
||
+軼 F 202:w
|
||
+軻 F 203:w
|
||
+軫 F 204:w
|
||
+軾 F 205:w
|
||
+輊 F 206:w
|
||
+輅 F 207:w
|
||
+輕 F 208:w
|
||
+輒 F 209:w
|
||
+輙 F 210:w
|
||
+輓 F 211:w
|
||
+輜 F 212:w
|
||
+輟 F 213:w
|
||
+輛 F 214:w
|
||
+輌 F 215:w
|
||
+輦 F 216:w
|
||
+輳 F 217:w
|
||
+輻 F 218:w
|
||
+輹 F 219:w
|
||
+轅 F 220:w
|
||
+轂 F 221:w
|
||
+輾 F 222:w
|
||
+轌 F 223:w
|
||
+轉 F 224:w
|
||
+轆 F 225:w
|
||
+轎 F 226:w
|
||
+轗 F 227:w
|
||
+轜 F 228:w
|
||
+轢 F 229:w
|
||
+轣 F 230:w
|
||
+轤 F 231:w
|
||
+辜 F 232:w
|
||
+辟 F 233:w
|
||
+辣 F 234:w
|
||
+辭 F 235:w
|
||
+辯 F 236:w
|
||
+辷 F 237:w
|
||
+迚 F 238:w
|
||
+迥 F 239:w
|
||
+迢 F 240:w
|
||
+迪 F 241:w
|
||
+迯 F 242:w
|
||
+邇 F 243:w
|
||
+迴 F 244:w
|
||
+逅 F 245:w
|
||
+迹 F 246:w
|
||
+迺 F 247:w
|
||
+逑 F 248:w
|
||
+逕 F 249:w
|
||
+逡 F 250:w
|
||
+逍 F 251:w
|
||
+逞 F 252:w
|
||
+逖 F 253:w
|
||
+逋 F 254:w
|
||
+逧 F 255:w
|
||
+逶 F 0:x
|
||
+逵 F 1:x
|
||
+逹 F 2:x
|
||
+迸 F 3:x
|
||
+遏 F 4:x
|
||
+遐 F 5:x
|
||
+遑 F 6:x
|
||
+遒 F 7:x
|
||
+逎 F 8:x
|
||
+遉 F 9:x
|
||
+逾 F 10:x
|
||
+遖 F 11:x
|
||
+遘 F 12:x
|
||
+遞 F 13:x
|
||
+遨 F 14:x
|
||
+遯 F 15:x
|
||
+遶 F 16:x
|
||
+隨 F 17:x
|
||
+遲 F 18:x
|
||
+邂 F 19:x
|
||
+遽 F 20:x
|
||
+邁 F 21:x
|
||
+邀 F 22:x
|
||
+邊 F 23:x
|
||
+邉 F 24:x
|
||
+邏 F 25:x
|
||
+邨 F 26:x
|
||
+邯 F 27:x
|
||
+邱 F 28:x
|
||
+邵 F 29:x
|
||
+郢 F 30:x
|
||
+郤 F 31:x
|
||
+扈 F 32:x
|
||
+郛 F 33:x
|
||
+鄂 F 34:x
|
||
+鄒 F 35:x
|
||
+鄙 F 36:x
|
||
+鄲 F 37:x
|
||
+鄰 F 38:x
|
||
+酊 F 39:x
|
||
+酖 F 40:x
|
||
+酘 F 41:x
|
||
+酣 F 42:x
|
||
+酥 F 43:x
|
||
+酩 F 44:x
|
||
+酳 F 45:x
|
||
+酲 F 46:x
|
||
+醋 F 47:x
|
||
+醉 F 48:x
|
||
+醂 F 49:x
|
||
+醢 F 50:x
|
||
+醫 F 51:x
|
||
+醯 F 52:x
|
||
+醪 F 53:x
|
||
+醵 F 54:x
|
||
+醴 F 55:x
|
||
+醺 F 56:x
|
||
+釀 F 57:x
|
||
+釁 F 58:x
|
||
+釉 F 59:x
|
||
+釋 F 60:x
|
||
+釐 F 61:x
|
||
+釖 F 62:x
|
||
+釟 F 63:x
|
||
+釡 F 64:x
|
||
+釛 F 65:x
|
||
+釼 F 66:x
|
||
+釵 F 67:x
|
||
+釶 F 68:x
|
||
+鈞 F 69:x
|
||
+釿 F 70:x
|
||
+鈔 F 71:x
|
||
+鈬 F 72:x
|
||
+鈕 F 73:x
|
||
+鈑 F 74:x
|
||
+鉞 F 75:x
|
||
+鉗 F 76:x
|
||
+鉅 F 77:x
|
||
+鉉 F 78:x
|
||
+鉤 F 79:x
|
||
+鉈 F 80:x
|
||
+銕 F 81:x
|
||
+鈿 F 82:x
|
||
+鉋 F 83:x
|
||
+鉐 F 84:x
|
||
+銜 F 85:x
|
||
+銖 F 86:x
|
||
+銓 F 87:x
|
||
+銛 F 88:x
|
||
+鉚 F 89:x
|
||
+鋏 F 90:x
|
||
+銹 F 91:x
|
||
+銷 F 92:x
|
||
+鋩 F 93:x
|
||
+錏 F 94:x
|
||
+鋺 F 95:x
|
||
+鍄 F 96:x
|
||
+錮 F 97:x
|
||
+錙 F 98:x
|
||
+錢 F 99:x
|
||
+錚 F 100:x
|
||
+錣 F 101:x
|
||
+錺 F 102:x
|
||
+錵 F 103:x
|
||
+錻 F 104:x
|
||
+鍜 F 105:x
|
||
+鍠 F 106:x
|
||
+鍼 F 107:x
|
||
+鍮 F 108:x
|
||
+鍖 F 109:x
|
||
+鎰 F 110:x
|
||
+鎬 F 111:x
|
||
+鎭 F 112:x
|
||
+鎔 F 113:x
|
||
+鎹 F 114:x
|
||
+鏖 F 115:x
|
||
+鏗 F 116:x
|
||
+鏨 F 117:x
|
||
+鏥 F 118:x
|
||
+鏘 F 119:x
|
||
+鏃 F 120:x
|
||
+鏝 F 121:x
|
||
+鏐 F 122:x
|
||
+鏈 F 123:x
|
||
+鏤 F 124:x
|
||
+鐚 F 125:x
|
||
+鐔 F 126:x
|
||
+鐓 F 127:x
|
||
+鐃 F 128:x
|
||
+鐇 F 129:x
|
||
+鐐 F 130:x
|
||
+鐶 F 131:x
|
||
+鐫 F 132:x
|
||
+鐵 F 133:x
|
||
+鐡 F 134:x
|
||
+鐺 F 135:x
|
||
+鑁 F 136:x
|
||
+鑒 F 137:x
|
||
+鑄 F 138:x
|
||
+鑛 F 139:x
|
||
+鑠 F 140:x
|
||
+鑢 F 141:x
|
||
+鑞 F 142:x
|
||
+鑪 F 143:x
|
||
+鈩 F 144:x
|
||
+鑰 F 145:x
|
||
+鑵 F 146:x
|
||
+鑷 F 147:x
|
||
+鑽 F 148:x
|
||
+鑚 F 149:x
|
||
+鑼 F 150:x
|
||
+鑾 F 151:x
|
||
+钁 F 152:x
|
||
+鑿 F 153:x
|
||
+閂 F 154:x
|
||
+閇 F 155:x
|
||
+閊 F 156:x
|
||
+閔 F 157:x
|
||
+閖 F 158:x
|
||
+閘 F 159:x
|
||
+閙 F 160:x
|
||
+閠 F 161:x
|
||
+閨 F 162:x
|
||
+閧 F 163:x
|
||
+閭 F 164:x
|
||
+閼 F 165:x
|
||
+閻 F 166:x
|
||
+閹 F 167:x
|
||
+閾 F 168:x
|
||
+闊 F 169:x
|
||
+濶 F 170:x
|
||
+闃 F 171:x
|
||
+闍 F 172:x
|
||
+闌 F 173:x
|
||
+闕 F 174:x
|
||
+闔 F 175:x
|
||
+闖 F 176:x
|
||
+關 F 177:x
|
||
+闡 F 178:x
|
||
+闥 F 179:x
|
||
+闢 F 180:x
|
||
+阡 F 181:x
|
||
+阨 F 182:x
|
||
+阮 F 183:x
|
||
+阯 F 184:x
|
||
+陂 F 185:x
|
||
+陌 F 186:x
|
||
+陏 F 187:x
|
||
+陋 F 188:x
|
||
+陷 F 189:x
|
||
+陜 F 190:x
|
||
+陞 F 191:x
|
||
+陝 F 192:x
|
||
+陟 F 193:x
|
||
+陦 F 194:x
|
||
+陲 F 195:x
|
||
+陬 F 196:x
|
||
+隍 F 197:x
|
||
+隘 F 198:x
|
||
+隕 F 199:x
|
||
+隗 F 200:x
|
||
+險 F 201:x
|
||
+隧 F 202:x
|
||
+隱 F 203:x
|
||
+隲 F 204:x
|
||
+隰 F 205:x
|
||
+隴 F 206:x
|
||
+隶 F 207:x
|
||
+隸 F 208:x
|
||
+隹 F 209:x
|
||
+雎 F 210:x
|
||
+雋 F 211:x
|
||
+雉 F 212:x
|
||
+雍 F 213:x
|
||
+襍 F 214:x
|
||
+雜 F 215:x
|
||
+霍 F 216:x
|
||
+雕 F 217:x
|
||
+雹 F 218:x
|
||
+霄 F 219:x
|
||
+霆 F 220:x
|
||
+霈 F 221:x
|
||
+霓 F 222:x
|
||
+霎 F 223:x
|
||
+霑 F 224:x
|
||
+霏 F 225:x
|
||
+霖 F 226:x
|
||
+霙 F 227:x
|
||
+霤 F 228:x
|
||
+霪 F 229:x
|
||
+霰 F 230:x
|
||
+霹 F 231:x
|
||
+霽 F 232:x
|
||
+霾 F 233:x
|
||
+靄 F 234:x
|
||
+靆 F 235:x
|
||
+靈 F 236:x
|
||
+靂 F 237:x
|
||
+靉 F 238:x
|
||
+靜 F 239:x
|
||
+靠 F 240:x
|
||
+靤 F 241:x
|
||
+靦 F 242:x
|
||
+靨 F 243:x
|
||
+勒 F 244:x
|
||
+靫 F 245:x
|
||
+靱 F 246:x
|
||
+靹 F 247:x
|
||
+鞅 F 248:x
|
||
+靼 F 249:x
|
||
+鞁 F 250:x
|
||
+靺 F 251:x
|
||
+鞆 F 252:x
|
||
+鞋 F 253:x
|
||
+鞏 F 254:x
|
||
+鞐 F 255:x
|
||
+鞜 F 0:y
|
||
+鞨 F 1:y
|
||
+鞦 F 2:y
|
||
+鞣 F 3:y
|
||
+鞳 F 4:y
|
||
+鞴 F 5:y
|
||
+韃 F 6:y
|
||
+韆 F 7:y
|
||
+韈 F 8:y
|
||
+韋 F 9:y
|
||
+韜 F 10:y
|
||
+韭 F 11:y
|
||
+齏 F 12:y
|
||
+韲 F 13:y
|
||
+竟 F 14:y
|
||
+韶 F 15:y
|
||
+韵 F 16:y
|
||
+頏 F 17:y
|
||
+頌 F 18:y
|
||
+頸 F 19:y
|
||
+頤 F 20:y
|
||
+頡 F 21:y
|
||
+頷 F 22:y
|
||
+頽 F 23:y
|
||
+顆 F 24:y
|
||
+顏 F 25:y
|
||
+顋 F 26:y
|
||
+顫 F 27:y
|
||
+顯 F 28:y
|
||
+顰 F 29:y
|
||
+顱 F 30:y
|
||
+顴 F 31:y
|
||
+顳 F 32:y
|
||
+颪 F 33:y
|
||
+颯 F 34:y
|
||
+颱 F 35:y
|
||
+颶 F 36:y
|
||
+飄 F 37:y
|
||
+飃 F 38:y
|
||
+飆 F 39:y
|
||
+飩 F 40:y
|
||
+飫 F 41:y
|
||
+餃 F 42:y
|
||
+餉 F 43:y
|
||
+餒 F 44:y
|
||
+餔 F 45:y
|
||
+餘 F 46:y
|
||
+餡 F 47:y
|
||
+餝 F 48:y
|
||
+餞 F 49:y
|
||
+餤 F 50:y
|
||
+餠 F 51:y
|
||
+餬 F 52:y
|
||
+餮 F 53:y
|
||
+餽 F 54:y
|
||
+餾 F 55:y
|
||
+饂 F 56:y
|
||
+饉 F 57:y
|
||
+饅 F 58:y
|
||
+饐 F 59:y
|
||
+饋 F 60:y
|
||
+饑 F 61:y
|
||
+饒 F 62:y
|
||
+饌 F 63:y
|
||
+饕 F 64:y
|
||
+馗 F 65:y
|
||
+馘 F 66:y
|
||
+馥 F 67:y
|
||
+馭 F 68:y
|
||
+馮 F 69:y
|
||
+馼 F 70:y
|
||
+駟 F 71:y
|
||
+駛 F 72:y
|
||
+駝 F 73:y
|
||
+駘 F 74:y
|
||
+駑 F 75:y
|
||
+駭 F 76:y
|
||
+駮 F 77:y
|
||
+駱 F 78:y
|
||
+駲 F 79:y
|
||
+駻 F 80:y
|
||
+駸 F 81:y
|
||
+騁 F 82:y
|
||
+騏 F 83:y
|
||
+騅 F 84:y
|
||
+駢 F 85:y
|
||
+騙 F 86:y
|
||
+騫 F 87:y
|
||
+騷 F 88:y
|
||
+驅 F 89:y
|
||
+驂 F 90:y
|
||
+驀 F 91:y
|
||
+驃 F 92:y
|
||
+騾 F 93:y
|
||
+驕 F 94:y
|
||
+驍 F 95:y
|
||
+驛 F 96:y
|
||
+驗 F 97:y
|
||
+驟 F 98:y
|
||
+驢 F 99:y
|
||
+驥 F 100:y
|
||
+驤 F 101:y
|
||
+驩 F 102:y
|
||
+驫 F 103:y
|
||
+驪 F 104:y
|
||
+骭 F 105:y
|
||
+骰 F 106:y
|
||
+骼 F 107:y
|
||
+髀 F 108:y
|
||
+髏 F 109:y
|
||
+髑 F 110:y
|
||
+髓 F 111:y
|
||
+體 F 112:y
|
||
+髞 F 113:y
|
||
+髟 F 114:y
|
||
+髢 F 115:y
|
||
+髣 F 116:y
|
||
+髦 F 117:y
|
||
+髯 F 118:y
|
||
+髫 F 119:y
|
||
+髮 F 120:y
|
||
+髴 F 121:y
|
||
+髱 F 122:y
|
||
+髷 F 123:y
|
||
+髻 F 124:y
|
||
+鬆 F 125:y
|
||
+鬘 F 126:y
|
||
+鬚 F 127:y
|
||
+鬟 F 128:y
|
||
+鬢 F 129:y
|
||
+鬣 F 130:y
|
||
+鬥 F 131:y
|
||
+鬧 F 132:y
|
||
+鬨 F 133:y
|
||
+鬩 F 134:y
|
||
+鬪 F 135:y
|
||
+鬮 F 136:y
|
||
+鬯 F 137:y
|
||
+鬲 F 138:y
|
||
+魄 F 139:y
|
||
+魃 F 140:y
|
||
+魏 F 141:y
|
||
+魍 F 142:y
|
||
+魎 F 143:y
|
||
+魑 F 144:y
|
||
+魘 F 145:y
|
||
+魴 F 146:y
|
||
+鮓 F 147:y
|
||
+鮃 F 148:y
|
||
+鮑 F 149:y
|
||
+鮖 F 150:y
|
||
+鮗 F 151:y
|
||
+鮟 F 152:y
|
||
+鮠 F 153:y
|
||
+鮨 F 154:y
|
||
+鮴 F 155:y
|
||
+鯀 F 156:y
|
||
+鯊 F 157:y
|
||
+鮹 F 158:y
|
||
+鯆 F 159:y
|
||
+鯏 F 160:y
|
||
+鯑 F 161:y
|
||
+鯒 F 162:y
|
||
+鯣 F 163:y
|
||
+鯢 F 164:y
|
||
+鯤 F 165:y
|
||
+鯔 F 166:y
|
||
+鯡 F 167:y
|
||
+鰺 F 168:y
|
||
+鯲 F 169:y
|
||
+鯱 F 170:y
|
||
+鯰 F 171:y
|
||
+鰕 F 172:y
|
||
+鰔 F 173:y
|
||
+鰉 F 174:y
|
||
+鰓 F 175:y
|
||
+鰌 F 176:y
|
||
+鰆 F 177:y
|
||
+鰈 F 178:y
|
||
+鰒 F 179:y
|
||
+鰊 F 180:y
|
||
+鰄 F 181:y
|
||
+鰮 F 182:y
|
||
+鰛 F 183:y
|
||
+鰥 F 184:y
|
||
+鰤 F 185:y
|
||
+鰡 F 186:y
|
||
+鰰 F 187:y
|
||
+鱇 F 188:y
|
||
+鰲 F 189:y
|
||
+鱆 F 190:y
|
||
+鰾 F 191:y
|
||
+鱚 F 192:y
|
||
+鱠 F 193:y
|
||
+鱧 F 194:y
|
||
+鱶 F 195:y
|
||
+鱸 F 196:y
|
||
+鳧 F 197:y
|
||
+鳬 F 198:y
|
||
+鳰 F 199:y
|
||
+鴉 F 200:y
|
||
+鴈 F 201:y
|
||
+鳫 F 202:y
|
||
+鴃 F 203:y
|
||
+鴆 F 204:y
|
||
+鴪 F 205:y
|
||
+鴦 F 206:y
|
||
+鶯 F 207:y
|
||
+鴣 F 208:y
|
||
+鴟 F 209:y
|
||
+鵄 F 210:y
|
||
+鴕 F 211:y
|
||
+鴒 F 212:y
|
||
+鵁 F 213:y
|
||
+鴿 F 214:y
|
||
+鴾 F 215:y
|
||
+鵆 F 216:y
|
||
+鵈 F 217:y
|
||
+鵝 F 218:y
|
||
+鵞 F 219:y
|
||
+鵤 F 220:y
|
||
+鵑 F 221:y
|
||
+鵐 F 222:y
|
||
+鵙 F 223:y
|
||
+鵲 F 224:y
|
||
+鶉 F 225:y
|
||
+鶇 F 226:y
|
||
+鶫 F 227:y
|
||
+鵯 F 228:y
|
||
+鵺 F 229:y
|
||
+鶚 F 230:y
|
||
+鶤 F 231:y
|
||
+鶩 F 232:y
|
||
+鶲 F 233:y
|
||
+鷄 F 234:y
|
||
+鷁 F 235:y
|
||
+鶻 F 236:y
|
||
+鶸 F 237:y
|
||
+鶺 F 238:y
|
||
+鷆 F 239:y
|
||
+鷏 F 240:y
|
||
+鷂 F 241:y
|
||
+鷙 F 242:y
|
||
+鷓 F 243:y
|
||
+鷸 F 244:y
|
||
+鷦 F 245:y
|
||
+鷭 F 246:y
|
||
+鷯 F 247:y
|
||
+鷽 F 248:y
|
||
+鸚 F 249:y
|
||
+鸛 F 250:y
|
||
+鸞 F 251:y
|
||
+鹵 F 252:y
|
||
+鹹 F 253:y
|
||
+鹽 F 254:y
|
||
+麁 F 255:y
|
||
+麈 F 0:z
|
||
+麋 F 1:z
|
||
+麌 F 2:z
|
||
+麒 F 3:z
|
||
+麕 F 4:z
|
||
+麑 F 5:z
|
||
+麝 F 6:z
|
||
+麥 F 7:z
|
||
+麩 F 8:z
|
||
+麸 F 9:z
|
||
+麪 F 10:z
|
||
+麭 F 11:z
|
||
+靡 F 12:z
|
||
+黌 F 13:z
|
||
+黎 F 14:z
|
||
+黏 F 15:z
|
||
+黐 F 16:z
|
||
+黔 F 17:z
|
||
+黜 F 18:z
|
||
+點 F 19:z
|
||
+黝 F 20:z
|
||
+黠 F 21:z
|
||
+黥 F 22:z
|
||
+黨 F 23:z
|
||
+黯 F 24:z
|
||
+黴 F 25:z
|
||
+黶 F 26:z
|
||
+黷 F 27:z
|
||
+黹 F 28:z
|
||
+黻 F 29:z
|
||
+黼 F 30:z
|
||
+黽 F 31:z
|
||
+鼇 F 32:z
|
||
+鼈 F 33:z
|
||
+皷 F 34:z
|
||
+鼕 F 35:z
|
||
+鼡 F 36:z
|
||
+鼬 F 37:z
|
||
+鼾 F 38:z
|
||
+齊 F 39:z
|
||
+齒 F 40:z
|
||
+齔 F 41:z
|
||
+齣 F 42:z
|
||
+齟 F 43:z
|
||
+齠 F 44:z
|
||
+齡 F 45:z
|
||
+齦 F 46:z
|
||
+齧 F 47:z
|
||
+齬 F 48:z
|
||
+齪 F 49:z
|
||
+齷 F 50:z
|
||
+齲 F 51:z
|
||
+齶 F 52:z
|
||
+龕 F 53:z
|
||
+龜 F 54:z
|
||
+龠 F 55:z
|
||
+堯 F 56:z
|
||
+槇 F 57:z
|
||
+遙 F 58:z
|
||
+瑤 F 59:z
|
||
--- groff-1.18.1.1.orig/font/devdvi/DESC.in
|
||
+++ groff-1.18.1.1/font/devdvi/DESC.in
|
||
@@ -6,6 +6,10 @@
|
||
sizes 500-1000000 0
|
||
styles R I B BI
|
||
family T
|
||
-fonts 13 0 0 0 0 0 0 0 0 0 MI S EX CW
|
||
+fonts 15 0 0 0 0 0 0 0 0 0 MI S EX CW M G
|
||
+fontset B G 100..FFFF
|
||
+fontset HB G 100..FFFF
|
||
+fontset SB G 100..FFFF
|
||
+fontset - M 100..FFFF
|
||
tcommand
|
||
postpro grodvi
|
||
--- groff-1.18.1.1.orig/font/devdvi/Makefile.sub
|
||
+++ groff-1.18.1.1/font/devdvi/Makefile.sub
|
||
@@ -3,15 +3,68 @@
|
||
TR TI TB TBI CW CWI HR HI HB HBI \
|
||
TREC TIEC TBEC TBIEC CWEC CWIEC HREC HIEC HBEC HBIEC \
|
||
TRTC TITC TBTC TBITC CWTC CWITC HRTC HITC HBTC HBITC \
|
||
- MI S EX SA SB \
|
||
+ MI S EX SA SB M G \
|
||
generate/CompileFonts generate/Makefile \
|
||
generate/msam.map generate/msbm.map \
|
||
generate/texb.map generate/texex.map generate/texi.map generate/texmi.map \
|
||
generate/texr.map generate/texsy.map generate/textt.map \
|
||
generate/ec.map generate/tc.map
|
||
|
||
-CLEANADD=DESC
|
||
+CLEANADD=DESC M G
|
||
|
||
DESC: DESC.in
|
||
cat $(srcdir)/DESC.in >DESC
|
||
test -z '$(DVIPRINT)' || echo print '$(DVIPRINT)' >>DESC
|
||
+
|
||
+M: M.proto-$(DVIFORMAT)
|
||
+ @echo Making $@
|
||
+ @-rm -f $@
|
||
+ cp M.proto-$(DVIFORMAT) M
|
||
+# @if [ x$(DVIFORMAT) = xNTT ]; then \
|
||
+# sed -e 's/ F / 959887,808326,151561 1 /' \
|
||
+# -e 's/:0$$/:dmjsy10/' \
|
||
+# -e 's/:1$$/:dmjroma10/' \
|
||
+# -e 's/:2$$/:dmjhira10/' \
|
||
+# -e 's/:3$$/:dmjkata10/' \
|
||
+# -e 's/:4$$/:dmjgreek10/' \
|
||
+# -e 's/:5$$/:dmjrussian10/' \
|
||
+# -e 's/:6$$/:dmjkeisen10/' \
|
||
+# -e 's/:a$$/:dmjka10/' \
|
||
+# -e 's/:b$$/:dmjkb10/' \
|
||
+# -e 's/:c$$/:dmjkc10/' \
|
||
+# -e 's/:d$$/:dmjkd10/' \
|
||
+# -e 's/:e$$/:dmjke10/' \
|
||
+# -e 's/:f$$/:dmjkf10/' \
|
||
+# -e 's/:g$$/:dmjkg10/' \
|
||
+# -e 's/:h$$/:dmjkh10/' \
|
||
+# -e 's/:i$$/:dmjki10/' \
|
||
+# -e 's/:j$$/:dmjkj10/' \
|
||
+# -e 's/:k$$/:dmjkk10/' \
|
||
+# -e 's/:l$$/:dmjkl10/' \
|
||
+# -e 's/:m$$/:dmjkm10/' \
|
||
+# -e 's/:n$$/:dmjkn10/' \
|
||
+# -e 's/:o$$/:dmjko10/' \
|
||
+# -e 's/:p$$/:dmjkp10/' \
|
||
+# -e 's/:q$$/:dmjkq10/' \
|
||
+# -e 's/:r$$/:dmjkr10/' \
|
||
+# -e 's/:s$$/:dmjks10/' \
|
||
+# -e 's/:t$$/:dmjkt10/' \
|
||
+# -e 's/:u$$/:dmjku10/' \
|
||
+# -e 's/:v$$/:dmjkv10/' \
|
||
+# -e 's/:w$$/:dmjkw10/' \
|
||
+# -e 's/:x$$/:dmjkx10/' \
|
||
+# -e 's/:y$$/:dmjky10/' \
|
||
+# -e 's/:z$$/:dmjkz10/' \
|
||
+# < M.proto-NTT > M ;\
|
||
+# else \
|
||
+# ../devnippon/createM -jis "1006514,815360,145600" 1 < M.proto-ASCII | \
|
||
+# sed -f FixMetric.sed > M ;\
|
||
+# fi
|
||
+
|
||
+G: M
|
||
+ @echo Making $@
|
||
+ @-rm -f $@
|
||
+ @sed -e 's/name M/name G/' \
|
||
+ -e 's/dmj/dgj/' \
|
||
+ -e 's/internalname min10/internalname goth10/' \
|
||
+ < M > G
|
||
--- groff-1.18.1.1.orig/font/devdvi/M.proto-ASCII
|
||
+++ groff-1.18.1.1/font/devdvi/M.proto-ASCII
|
||
@@ -0,0 +1,4 @@
|
||
+name M
|
||
+internalname min10
|
||
+checksum -375402250
|
||
+designsize 10485760
|
||
--- groff-1.18.1.1.orig/font/devdvi/FixMetric.sed
|
||
+++ groff-1.18.1.1/font/devdvi/FixMetric.sed
|
||
@@ -0,0 +1,77 @@
|
||
+s/1006514,.*0x212b$/370845,815360,145600 1 0x212b/
|
||
+s/1006514,.*0x212c$/370845,815360,145600 1 0x212c/
|
||
+s/1006514,.*0x2126$/370845,815360,145600 1 0x2126/
|
||
+s/1006514,.*0x2127$/370845,815360,145600 1 0x2127/
|
||
+s/1006514,.*0x2128$/370845,815360,145600 1 0x2128/
|
||
+s/1006514,.*0x212a$/370845,815360,145600 1 0x212a/
|
||
+s/1006514,.*0x212d$/370845,815360,145600 1 0x212d/
|
||
+s/1006514,.*0x212e$/370845,815360,145600 1 0x212e/
|
||
+s/1006514,.*0x213e$/370845,815360,145600 1 0x213e/
|
||
+s/1006514,.*0x2142$/370845,815360,145600 1 0x2142/
|
||
+s/1006514,.*0x2143$/370845,815360,145600 1 0x2143/
|
||
+s/1006514,.*0x2146$/370845,815360,145600 1 0x2146/
|
||
+s/1006514,.*0x2147$/370845,815360,145600 1 0x2147/
|
||
+s/1006514,.*0x2124$/370845,815360,145600 1 0x2124/
|
||
+s/1006514,.*0x2125$/370845,815360,145600 1 0x2125/
|
||
+s/1006514,.*0x214b$/528496,815360,145600 1 0x214b/
|
||
+s/1006514,.*0x214d$/528496,815360,145600 1 0x214d/
|
||
+s/1006514,.*0x214f$/528496,815360,145600 1 0x214f/
|
||
+s/1006514,.*0x2151$/528496,815360,145600 1 0x2151/
|
||
+s/1006514,.*0x2153$/528496,815360,145600 1 0x2153/
|
||
+s/1006514,.*0x2155$/528496,815360,145600 1 0x2155/
|
||
+s/1006514,.*0x2157$/528496,815360,145600 1 0x2157/
|
||
+s/1006514,.*0x2159$/528496,815360,145600 1 0x2159/
|
||
+s/1006514,.*0x215b$/528496,815360,145600 1 0x215b/
|
||
+s/1006514,.*0x2129$/528496,815360,145600 1 0x2129/
|
||
+s/1006514,.*0x212f$/528496,815360,145600 1 0x212f/
|
||
+s/1006514,.*0x2130$/528496,815360,145600 1 0x2130/
|
||
+s/1006514,.*0x2133$/528496,815360,145600 1 0x2133/
|
||
+s/1006514,.*0x2135$/528496,815360,145600 1 0x2135/
|
||
+s/1006514,.*0x2148$/528496,815360,145600 1 0x2148/
|
||
+s/1006514,.*0x2149$/528496,815360,145600 1 0x2149/
|
||
+s/1006514,.*0x216b$/528496,815360,145600 1 0x216b/
|
||
+s/1006514,.*0x216c$/528496,815360,145600 1 0x216c/
|
||
+s/1006514,.*0x216d$/528496,815360,145600 1 0x216d/
|
||
+s/1006514,.*0x2178$/528496,815360,145600 1 0x2178/
|
||
+s/1006514,.*0x214a$/528496,815360,145600 1 0x214a/
|
||
+s/1006514,.*0x214c$/528496,815360,145600 1 0x214c/
|
||
+s/1006514,.*0x214e$/528496,815360,145600 1 0x214e/
|
||
+s/1006514,.*0x2150$/528496,815360,145600 1 0x2150/
|
||
+s/1006514,.*0x2152$/528496,815360,145600 1 0x2152/
|
||
+s/1006514,.*0x2154$/528496,815360,145600 1 0x2154/
|
||
+s/1006514,.*0x2156$/528496,815360,145600 1 0x2156/
|
||
+s/1006514,.*0x2158$/528496,815360,145600 1 0x2158/
|
||
+s/1006514,.*0x215a$/528496,815360,145600 1 0x215a/
|
||
+s/1006514,.*0x2122$/528496,815360,145600 1 0x2122/
|
||
+s/1006514,.*0x2123$/528496,815360,145600 1 0x2123/
|
||
+s/1006514,.*0x2136$/783741,815360,145600 1 0x2136/
|
||
+s/1006514,.*0x2137$/783741,815360,145600 1 0x2137/
|
||
+s/1006514,.*0x2139$/783741,815360,145600 1 0x2139/
|
||
+s/1006514,.*0x2168$/783741,815360,145600 1 0x2168/
|
||
+s/1006514,.*0x2169$/783741,815360,145600 1 0x2169/
|
||
+s/1006514,.*0x216a$/783741,815360,145600 1 0x216a/
|
||
+s/1006514,.*0x2170$/783741,815360,145600 1 0x2170/
|
||
+s/1006514,.*0x2171$/783741,815360,145600 1 0x2171/
|
||
+s/1006514,.*0x2172$/783741,815360,145600 1 0x2172/
|
||
+s/1006514,.*0x2421$/783741,815360,145600 1 0x2421/
|
||
+s/1006514,.*0x2423$/783741,815360,145600 1 0x2423/
|
||
+s/1006514,.*0x2425$/783741,815360,145600 1 0x2425/
|
||
+s/1006514,.*0x2427$/783741,815360,145600 1 0x2427/
|
||
+s/1006514,.*0x2429$/783741,815360,145600 1 0x2429/
|
||
+s/1006514,.*0x2443$/783741,815360,145600 1 0x2443/
|
||
+s/1006514,.*0x2463$/783741,815360,145600 1 0x2463/
|
||
+s/1006514,.*0x2465$/783741,815360,145600 1 0x2465/
|
||
+s/1006514,.*0x2467$/783741,815360,145600 1 0x2467/
|
||
+s/1006514,.*0x246e$/783741,815360,145600 1 0x246e/
|
||
+s/1006514,.*0x2521$/783741,815360,145600 1 0x2521/
|
||
+s/1006514,.*0x2523$/783741,815360,145600 1 0x2523/
|
||
+s/1006514,.*0x2525$/783741,815360,145600 1 0x2525/
|
||
+s/1006514,.*0x2527$/783741,815360,145600 1 0x2527/
|
||
+s/1006514,.*0x2529$/783741,815360,145600 1 0x2529/
|
||
+s/1006514,.*0x2543$/783741,815360,145600 1 0x2543/
|
||
+s/1006514,.*0x2563$/783741,815360,145600 1 0x2563/
|
||
+s/1006514,.*0x2565$/783741,815360,145600 1 0x2565/
|
||
+s/1006514,.*0x2567$/783741,815360,145600 1 0x2567/
|
||
+s/1006514,.*0x256e$/783741,815360,145600 1 0x256e/
|
||
+s/1006514,.*0x2575$/783741,815360,145600 1 0x2575/
|
||
+s/1006514,.*0x2576$/783741,815360,145600 1 0x2576/
|
||
--- groff-1.18.1.1.orig/ChangeLog.jp
|
||
+++ groff-1.18.1.1/ChangeLog.jp
|
||
@@ -0,0 +1,345 @@
|
||
+2002-11-04 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * src/libs/libgroff/encoding.cc: for C or POSIX locale,
|
||
+ use ascii8 encoding handler
|
||
+ * font/devX*: new font desc for M, G
|
||
+ * src/xditview: support ENABLE_MULTIBYTE (Japanese only?)
|
||
+
|
||
+2002-10-09 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * update groff-1.18-7
|
||
+
|
||
+2002-09-23 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * src/roff/troff/input.cc: fix bug in wchar_charinfo()
|
||
+ check u<CODE> where <CODE> is 4- HEX chars
|
||
+ * src/device/grohtml/post-html.cc: works ENABLE_MULTIBYTE
|
||
+ * font/devhtml: add font M, G for Japanese
|
||
+
|
||
+2002-09-22 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * new multibyte patch
|
||
+
|
||
+2001-08-16 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * tmac/euc-jp.tmac:
|
||
+ fix disappearing `-' char
|
||
+
|
||
+2001-07-21 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * add ENABLE_MULTIBYTE support to src/xditview
|
||
+
|
||
+2001-07-20 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * introduce "fontset" in font/*/DESC
|
||
+ obsoletes "ondemand"
|
||
+
|
||
+2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * don't use input_encoding->is_wchar_code()
|
||
+ * fix troffrc empty line
|
||
+ * fix duplicate strcasecmp()
|
||
+
|
||
+2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * sub font selection move into environment::add_char()
|
||
+ it makes possible to use \[uni<code>]
|
||
+
|
||
+2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * use generic iconv_handler instead of euc_handler
|
||
+ * internal code now uses UCS-2
|
||
+
|
||
+2001-07-19 Fumitoshi UKAI <ukai@debian.or.jp
|
||
+
|
||
+ * wchar%x -> uni%X
|
||
+ - still no code conversion
|
||
+ - font description is not accurate
|
||
+ * change "fixed" to charset range
|
||
+
|
||
+2001-07-18 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * Configuration Change:
|
||
+ obsolete: --enable-japanese (#ifdef NIPPON)
|
||
+ new: --enable-multibyte (#ifdef ENABLE_MULTIBYTE)
|
||
+
|
||
+2001-07-18 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * create charinfo for wchar on demand (src/roff/troff/input.cc)
|
||
+ * use "fixed" for font wchar metric (src/libs/libgroff/font.cc)
|
||
+ - font/*/M,G
|
||
+
|
||
+2001-07-17 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * add utf8 encoding handler to src/libs/libgroff/encoding.cc
|
||
+ (this utf8 encodig handler is too slow!)
|
||
+
|
||
+2001-07-15 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * based on groff 1.17.2-1
|
||
+ * use src/include/encoding.h instead of eucmac.h
|
||
+ * introduce src/libs/libgroff/encoding.cc
|
||
+ * introduce tmac/euc-jp.tmac for EUC-JP documents
|
||
+
|
||
+2001-05-24 Fumitoshi UKAI <ukai@debian.or.jp>
|
||
+
|
||
+ * Apply for groff-1.17
|
||
+
|
||
+2000-01-06 Yoshiaki Yanagihara <yochi@debian.or.jp>
|
||
+
|
||
+ * Apply japanese patch "jgroff-0.101"
|
||
+ (thanks hanataka@abyss.rim.or.jp).
|
||
+ * Added japanese extention option at configure.in, aclocal.m4.
|
||
+
|
||
+Sat Jan 1 17:10:32 JST 2000 HANATAKA Shinya <hanataka@abyss.rim.or.jp>
|
||
+
|
||
+ * jgroff-0.100 をそのまま groff-1.14 に適用して jgroff-101
|
||
+ とした。
|
||
+ * grohtml を日本語に対応させる。
|
||
+ * 日本語マニュアル用に tmac.docj と tmac.andocj マクロを追加。
|
||
+
|
||
+Sun Mar 15 18:23:12 1998 Yoshiaki Yanagihara <yochi@debian.or.jp>
|
||
+
|
||
+ * jgroff のベースを groff-1.11a に変更し、jgroff-0.99パッチを
|
||
+ 適用したものを jgroff-0.100 とした。
|
||
+ 基本的に jgroff-0.99 と機能は同じ *はず*。
|
||
+
|
||
+Fri Dec 22 11:47:46 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
|
||
+
|
||
+ * バージョン0.99。
|
||
+
|
||
+Mon Dec 18 18:28:37 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
|
||
+
|
||
+ * tmac/Makefile.sub: ターゲット stamp-wrap、uninstall_sub が一部
|
||
+ OSのshで構文エラーとなるオリジナルバグを修正。
|
||
+
|
||
+Wed Dec 13 15:09:26 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
|
||
+
|
||
+ * jgroff.sh: オリジナルでインストールパスが変更されたのに合わせ、
|
||
+ GROFF_TMAC_PATH、GROFF_FONT_PATHをshare/groff配下に変更。
|
||
+
|
||
+Sat Dec 9 15:28:36 1995 Kitagawa Toshiyuki <tm-kita@kh.rim.or.jp>
|
||
+
|
||
+ * wchar.hからeucmac.hにファイル名を変更。
|
||
+
|
||
+Fri Dec 8 12:15:47 1995 Yoshio Takaeda <shio@yinyan.bekkoame.or.jp>
|
||
+
|
||
+ * troff/env.cc(add_char): 『ASCII文字 + 改行コード + EUC文字』という
|
||
+ パターンの時、改行コードがスペースに変換されないバグを修正。
|
||
+
|
||
+Thu Dec 7 21:35:06 1995 Yanagihara Yoshiaki <yosiaki@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/input.cc (process_input_stack): gcc-2.7.0で変数定義がスコープ
|
||
+ 違反となってしまう箇所を修正。
|
||
+
|
||
+Thu Dec 7 21:35:06 1995 Yanagihara Yoshiaki <yosiaki@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * jgroffのベースソースをgroff-1.10に変更。
|
||
+
|
||
+Thu Apr 6 16:56:32 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * devdvi/M.proto-NTT: DNPのpkフォントのチェックサム値が0なので、こ
|
||
+ れに合わせてchecksumの値を0に変更。
|
||
+
|
||
+Mon Apr 3 20:36:37 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/env.cc (possibly_break_line):
|
||
+ lineリスト中のkword_space_nodeを調整する処理で、line中にこのノード
|
||
+ が含まれていない場合は処理をスキップするようにした(EUCコードを含ま
|
||
+ ないroffを処理する場合にはkword_space_nodeは現れないので処理が高速
|
||
+ 化される)。
|
||
+
|
||
+Mon Apr 3 20:36:37 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/env.cc (add_char): hwkern、vlowerの初期化はdevice初期化後
|
||
+ に一度だけ行えば良いのでenvironmentクラスのコンストラクタでこれを
|
||
+ 行うように変更。
|
||
+
|
||
+Sat Apr 1 17:57:23 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/input.cc (mount_on_demand): on demandでマウントされるフォ
|
||
+ ント名をデバイスごとのDESCファイルで指定できるように変更。
|
||
+ ディレクティブondemandで指定したフォントがon demandでマウントされる。
|
||
+
|
||
+Fri Mar 31 20:23:43 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * libgroff/font.cc (load): 漢字フォントファイル用にディレクティブ
|
||
+ fixedkanjiを追加。これは各文字のメトリックが全て同じである事を指定
|
||
+ するもので、fixedkanjiが指定されている場合はcharsetは評価されない
|
||
+ ため漢字フォントのロードが速い。
|
||
+
|
||
+Thu Mar 30 18:20:24 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff: node識別を文字列比較で行っていたが高速化のため数値比較に
|
||
+ 変更した。
|
||
+
|
||
+Wed Mar 29 20:20:49 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/input.cc: 漢字フォント(MとG)をon demandでマウントするよう
|
||
+ に変更。これによって漢字を含まないroffファイルの処理時間が高速化さ
|
||
+ れた。
|
||
+
|
||
+Fri Mar 10 15:34:26 1995 Shigeki Yoshida <shige@theta.iis.u-tokyo.ac.jp>
|
||
+
|
||
+ * troff/input.cc (process): geqnで、
|
||
+
|
||
+ .EQ
|
||
+ 要素 sub 記号
|
||
+ .EN
|
||
+
|
||
+ を処理すると、"illegal token in argument to \Z"となってしまうバグ
|
||
+ (\Zシーケンスの引数にEUC文字が来た場合の対応漏れ)を修正。
|
||
+
|
||
+Mon Feb 6 11:22:33 1995 Yoshio Takaeda <e50110@sakura.kudpc.kyoto-u.ac.jp>
|
||
+
|
||
+ * troff/input.cc: 行頭禁則文字のEUCコードの一部が不正。
|
||
+
|
||
+Mon Jan 30 14:02:54 1995 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * バージョン0.97。
|
||
+
|
||
+Fri Dec 10 14:26:14 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
||
+
|
||
+ * devdvi/M.proto: NTT JTeXとASCII日本語TeX両方のdviファイルを扱えるよう
|
||
+ M.protoファイルを変更。
|
||
+
|
||
+Fri Dec 9 14:26:14 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
||
+
|
||
+ * troff/node.cc: boldfont_list[]にフォント名 B を登録していなかっ
|
||
+ たため、dviファイルにゴシック体が出力されていなかった。
|
||
+
|
||
+Fri Dec 9 14:23:22 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
||
+
|
||
+ * grotty/tty.cc (add_char): EUC文字に対してWCHAR_MODEを設定してい
|
||
+ なかったため、tty出力でゴシック体が二重打ちされていなかった。
|
||
+
|
||
+Fri Dec 9 14:19:33 1994 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
||
+
|
||
+ * devdvi/Makefile.sub: フォントファイル G で、nameディレクティブが
|
||
+ `name M'になっている。
|
||
+
|
||
+Wed Nov 30 13:24:54 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * バージョン0.96。
|
||
+
|
||
+ * grodvi/dvi.cc: FreeBSD 1.1.5Rのstrcmp(3)では引数にヌルポインタを
|
||
+ 渡すとコアダンプしてしまうので、これを回避するコードを追加した。
|
||
+
|
||
+Tue Nov 29 13:52:54 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/input.cc: EUCのスペース文字(0xa1a1)はASCIIのスペース文字と
|
||
+ して処理するよう修正。
|
||
+
|
||
+ * devnippon/createM: JISX0208において文字が未定義の部分については
|
||
+ フォントファイルに出力しないよう修正。
|
||
+
|
||
+Mon Nov 28 18:15:31 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * grodvi/dvi.cc: grodviを日本語化した。
|
||
+
|
||
+Fri Nov 25 15:39:05 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/env.cc: EUC文字で始まる行に対して均等割り付けが行われた場
|
||
+ 合、行頭に余分な空白が入る事があったのでこれを修正した。
|
||
+
|
||
+Fri Nov 18 20:19:55 1994 Masubuchi Toshimichi <tmasu@st.rim.or.jp>
|
||
+
|
||
+ * devnippon/createM.c: createMの終了ステータスが不定になるため、
|
||
+ makeが終了してしまう。createMの終了ステータスが0になるよう修正。
|
||
+
|
||
+ * devnippon/Makefile.sub: PATH環境変数にカレントディレクトリが含ま
|
||
+ れていない場合、devnippon/Mをmakeする時点でcreateMが見つからずmake
|
||
+ エラーになるバグを修正。
|
||
+
|
||
+Thu Nov 17 17:11:26 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * devnippon/createM.c: gets()をfgets()に変更。
|
||
+
|
||
+Sat Nov 12 13:38:19 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * バージョン0.95。
|
||
+
|
||
+ * troff/env.cc: .stt リクエストを追加(ローカルなマニュアル書式に合
|
||
+ わせるため -> このリクエストは非公開)。
|
||
+
|
||
+ * troff/input.cc (init_charset_table): ASCIIの行頭禁則文字として
|
||
+ ,:;>}を追加した。
|
||
+
|
||
+ * EUCフォントファイルは、make時にツールによって生成するよう変更。
|
||
+ これによりpatchサイズがかなり小さくなった。
|
||
+
|
||
+Fri Nov 11 20:53:00 1994 Kitagawa Toshiyuki <kitagawa@bsd2.kbnes.nec.co.jp>
|
||
+
|
||
+ * troff/env.cc (add_char): <EUC文字> + <ASCII文字>の場合、間に入れ
|
||
+ る空白は禁則に違反しないかぎりブレーク可能な空白が入るよう修正した。
|
||
+
|
||
+
|
||
+Tue Oct 25 04:46:09 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * バージョン0.94。
|
||
+
|
||
+ * libdriver/input.cc (do_file): -Tlatin1でEUCではない文字コードを
|
||
+ EUCと判断してしまうバグを修正。
|
||
+
|
||
+Mon Oct 24 07:16:19 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * troff/node.cc (is_boldfont): FreeBSD 1.1.5で、ゼロ番地参照のためコ
|
||
+ アダンプするバグを修正。
|
||
+
|
||
+ * indxbib/dirnamemax.c: FreeBSD 1.1.5はpathconf()を持っていないので
|
||
+ _POSIX_VERSIONをundefした。
|
||
+
|
||
+ * バージョン0.93。
|
||
+
|
||
+ * geqnを日本語化した。
|
||
+
|
||
+ * devps/DESCのwcharkernを設定すると行頭に空白が入ってしまうバグの
|
||
+ 修正方法を変更。
|
||
+
|
||
+Sat Oct 22 08:19:15 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * バージョン0.90。
|
||
+
|
||
+ * xtotroffを日本語化。
|
||
+
|
||
+Fri Oct 21 05:33:02 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * devps/DESCのwcharkernを設定すると行頭に空白が入ってしまう事があ
|
||
+ ったので、これを修正。
|
||
+
|
||
+ * pre-releaseバージョン。
|
||
+
|
||
+ * gxditviewを日本語化した(フォントメトリックの取り出しがいい加減)。
|
||
+
|
||
+Thu Oct 20 05:23:09 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * フォント番号3にボールド体以外のフォントをマウントした場合、漢字フォ
|
||
+ ントがゴシック体になってしまうバグを修正。
|
||
+
|
||
+Wed Oct 19 06:48:55 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * betaバージョン。
|
||
+
|
||
+Tue Oct 18 05:02:59 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * pic:
|
||
+ gpicを日本語対応した。
|
||
+
|
||
+ * tbl:
|
||
+ gtblを日本語対応した。
|
||
+
|
||
+ * troff/troff:
|
||
+ Times-Bold以外のボールド体がカレントフォントの時、漢字フォントがゴ
|
||
+ シックに切り替わらないバグを修正。
|
||
+
|
||
+ * troff/troff:
|
||
+ DESCにディレクティブwcharkernを追加し、ASCII文字とEUC文字の間に、
|
||
+ 指定したunit数だけbreak不可能な空白を入れるようにした。
|
||
+
|
||
+ * troff/troff:
|
||
+ DESCにディレクティブlowerwcharを追加し、ASCII文字に対してEUC文字を、
|
||
+ 指定したunit数だけ下げるようにした(ASCII文字が落ち込んで見えるため)。
|
||
+
|
||
+Fri Oct 14 08:29:06 1994 Kitagawa Toshiyuki (kitagawa@bsd2.kbnes.nec.co.jp)
|
||
+
|
||
+ * aplahバージョン。
|
||
--- groff-1.18.1.1.orig/tmac/troffrc
|
||
+++ groff-1.18.1.1/tmac/troffrc
|
||
@@ -13,7 +13,9 @@
|
||
.do ds troffrc!X100 X.tmac
|
||
.do ds troffrc!X100-12 X.tmac
|
||
.do ds troffrc!ascii tty.tmac
|
||
+.do ds troffrc!ascii8 tty.tmac
|
||
.do ds troffrc!latin1 tty.tmac
|
||
+.do ds troffrc!nippon tty.tmac
|
||
.do ds troffrc!utf8 tty.tmac
|
||
.do ds troffrc!cp1047 tty.tmac
|
||
.do ds troffrc!lj4 lj4.tmac
|
||
@@ -36,4 +38,13 @@
|
||
.\" Load hyphenation patterns from `hyphen.us' (in the tmac directory).
|
||
.do hpf hyphen.us
|
||
.
|
||
+.\" For CJK hack. The hardcoded list of locales is especially nasty, but
|
||
+.\" getting the locale charmap requires a troff extension.
|
||
+.ie "\V[LANG]"ja_JP.eucJP" .do mso euc-jp.tmac
|
||
+.el .ie "\V[LANG]"zh_CN" .do mso gb.tmac
|
||
+.el .ie "\V[LANG]"zh_CN.GBK" .do mso gb.tmac
|
||
+.el .ie "\V[LANG]"zh_SG" .do mso gb.tmac
|
||
+.el .ie "\V[LANG]"zh_SG.GBK" .do mso gb.tmac
|
||
+.el .if "\V[LANG]"zh_TW" .do mso big5.tmac
|
||
+.
|
||
.\" Don't let blank lines creep in here.
|
||
--- groff-1.18.1.1.orig/tmac/docj-nroff
|
||
+++ groff-1.18.1.1/tmac/docj-nroff
|
||
@@ -0,0 +1,247 @@
|
||
+.\" Copyright (c) 1991 The Regents of the University of California.
|
||
+.\" All rights reserved.
|
||
+.\"
|
||
+.\" Redistribution and use in source and binary forms, with or without
|
||
+.\" modification, are permitted provided that the following conditions
|
||
+.\" are met:
|
||
+.\" 1. Redistributions of source code must retain the above copyright
|
||
+.\" notice, this list of conditions and the following disclaimer.
|
||
+.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
+.\" notice, this list of conditions and the following disclaimer in the
|
||
+.\" documentation and/or other materials provided with the distribution.
|
||
+.\" 3. All advertising materials mentioning features or use of this software
|
||
+.\" must display the following acknowledgement:
|
||
+.\" This product includes software developed by the University of
|
||
+.\" California, Berkeley and its contributors.
|
||
+.\" 4. Neither the name of the University nor the names of its contributors
|
||
+.\" may be used to endorse or promote products derived from this software
|
||
+.\" without specific prior written permission.
|
||
+.\"
|
||
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+.\" SUCH DAMAGE.
|
||
+.\"
|
||
+.\" @(#)doc-nroff 5.6 (Berkeley) 8/5/91
|
||
+.\"
|
||
+.\" tmac.mdoc-nroff
|
||
+.ds aD \fI
|
||
+.ds aR \fI
|
||
+.ds cM \fB
|
||
+.ds dF \fR
|
||
+.ds eM \fI
|
||
+.ds eR \fR
|
||
+.ds eV \fR
|
||
+.ds fA \fI
|
||
+.ds fD \fB
|
||
+.ds fL \fB
|
||
+.ds fN \fB
|
||
+.ds fP \fP
|
||
+.ds fS
|
||
+.ds fT \fI
|
||
+.ds Hs \fR
|
||
+.ds iC \fB
|
||
+.ds lI \fR
|
||
+.ds lP \fR\|(\fP
|
||
+.ds rP \fR\|)\fP
|
||
+.ds lp \fR\|(\fP
|
||
+.ds rp \fR\|)\fP
|
||
+.ds lB \fR\|[\|\fP
|
||
+.ds rB \fR\|]\fP
|
||
+.ds mL \fB
|
||
+.ds nM \fB
|
||
+.ds nO \fR
|
||
+.ds pA \fI
|
||
+.ds Pu {\ .\ ,\ ;\ :\ (\ )\ [\ ]}
|
||
+.ds rA \fR
|
||
+.ds rT \fI
|
||
+.ds sH \fB
|
||
+.ds sP
|
||
+.ds sY \fB
|
||
+.ds sX \fI
|
||
+.ds tF \fR
|
||
+.ds tN
|
||
+.ds vA \fI
|
||
+.ds Vs \fR
|
||
+.ds vT \fB
|
||
+.ds xR \fR
|
||
+.nr sI .5i
|
||
+.nr Ti .5i
|
||
+.nr cR 1
|
||
+.nr Pp 1v
|
||
+.ds lS \0\0
|
||
+.nr lS \w'\0\0'u
|
||
+.nr dI 6n
|
||
+.de pL
|
||
+.ie \\n(cR .nr Hm 0
|
||
+.el .nr Hm .5i
|
||
+.nr Fm .5i
|
||
+.nr ll 78n
|
||
+.ll 78n
|
||
+.nr lt 78n
|
||
+.lt 78n
|
||
+.nr po 0i
|
||
+.po 0i
|
||
+.nr dV 1v
|
||
+.ad l
|
||
+.na
|
||
+..
|
||
+.ds <= \&<\&=
|
||
+.ds >= \&>\&=
|
||
+.ds Rq ''
|
||
+.ds Lq ``
|
||
+.ds ua ^
|
||
+.ds aa \'
|
||
+.ds ga \`
|
||
+.ds sL `
|
||
+.ds sR '
|
||
+.ds q \&"
|
||
+.ds Pi pi
|
||
+.ds Ne !=
|
||
+.ds Le <=
|
||
+.ds Ge >=
|
||
+.ds Lt <
|
||
+.ds Gt >
|
||
+.ds Pm +-
|
||
+.ds If infinity
|
||
+.ds Na \fINaN\fP
|
||
+.ds Ba \fR\&|\fP
|
||
+
|
||
+.de hK
|
||
+.nr % 1
|
||
+.ds hT \\*(dT
|
||
+.if !"\\*(cH"Null" \{\
|
||
+. ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
|
||
+. el .as hT \\|(\\|\\*(cH\\|)
|
||
+.\}
|
||
+.if "\\*(cH"Null" .if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
|
||
+.ie \\n(cR \{\
|
||
+. hM
|
||
+. wh -1v fM
|
||
+.\}
|
||
+.el \{\
|
||
+. wh 0 hM
|
||
+. wh -1.167i fM
|
||
+.\}
|
||
+.if \\n(nl==0:\\n(nl==-1 'bp
|
||
+.em lM
|
||
+..
|
||
+.nr fW \w'0'
|
||
+.de sW
|
||
+.nr sW \w\\$1
|
||
+.ie \\n(sW>=\\n(fW \{\
|
||
+. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
|
||
+. el .nr sW \\n(sW/\\n(fW
|
||
+.\}
|
||
+.el .nr sW 0
|
||
+..
|
||
+.de aW
|
||
+.nr sW \w\\*(A\\$1
|
||
+.ie \\n(sW>=\\n(fW \{\
|
||
+. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
|
||
+. el .nr sW \\n(sW/\\n(fW
|
||
+.\}
|
||
+.el .nr sW 0
|
||
+..
|
||
+.de Ql
|
||
+.if \\n(aC==0 \{\
|
||
+. ds mN Ql
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+.\}
|
||
+.ds qL \&\\*(sL
|
||
+.ds qR \&\\*(sR
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.de Sh
|
||
+.nr nS 0
|
||
+.nr sE 0
|
||
+.nr iS 0
|
||
+.ie "\\$1"NAME" \{\
|
||
+. hK
|
||
+' in 0
|
||
+.\}
|
||
+.el \{\
|
||
+. ie "\\$1"名前" \{\
|
||
+. hK
|
||
+' in 0
|
||
+. \}
|
||
+. el \{\
|
||
+. ie "\\$1"名称" \{\
|
||
+. hK
|
||
+' in 0
|
||
+. \}
|
||
+. el \{\
|
||
+. nr nS 0
|
||
+. nr nA 0
|
||
+. nr nF 0
|
||
+. nr nT 0
|
||
+. nr nY 0
|
||
+. nr aN 0
|
||
+. nr oT 0
|
||
+. if "\\$1"SEE" .nr nA 1
|
||
+. if "\\$1"関連項目" .nr nA 1
|
||
+. if "\\$1"FILES" .nr nF 1
|
||
+. if "\\$1"ファイル" .nr nF 1
|
||
+. if "\\$1"関連ファイル" .nr nF 1
|
||
+. if "\\$1"STANDARDS" .nr nT 1
|
||
+. if "\\$1"準拠" .nr nT 1
|
||
+. if "\\$1"規格" .nr nT 1
|
||
+. if "\\$1"SYNOPSIS" .nr nS 1
|
||
+. if "\\$1"書式" .nr nS 1
|
||
+. if "\\$1"DESCRIPTION" \{\
|
||
+. rr fB
|
||
+. rr Fb
|
||
+. ds Fb
|
||
+. nr fY 0
|
||
+. nr fZ 0
|
||
+. \}
|
||
+. if "\\$1"説明" \{\
|
||
+. rr fB
|
||
+. rr Fb
|
||
+. ds Fb
|
||
+. nr fY 0
|
||
+. nr fZ 0
|
||
+. \}
|
||
+. if "\\$1"解説" \{\
|
||
+. rr fB
|
||
+. rr Fb
|
||
+. ds Fb
|
||
+. nr fY 0
|
||
+. nr fZ 0
|
||
+. \}
|
||
+. if "\\$1"AUTHORS" .nr nY 1
|
||
+. if "\\$1"著者" .nr nY 1
|
||
+. if "\\$1"作者" .nr nY 1
|
||
+. in 0
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.pL
|
||
+'sp
|
||
+.ns
|
||
+.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
|
||
+.if !\\n(cR .ne 3
|
||
+'fi
|
||
+\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
|
||
+\&\fP\s0\&
|
||
+.in \\n(.iu+\\n(Tiu
|
||
+.if "\\$1"SEE" .nr sE 1
|
||
+.ns
|
||
+..
|
||
--- groff-1.18.1.1.orig/tmac/groff_trace.man
|
||
+++ groff-1.18.1.1/tmac/groff_trace.man
|
||
@@ -31,6 +31,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|
||
--- groff-1.18.1.1.orig/tmac/docj-ditroff
|
||
+++ groff-1.18.1.1/tmac/docj-ditroff
|
||
@@ -0,0 +1,305 @@
|
||
+.\" Copyright (c) 1991 The Regents of the University of California.
|
||
+.\" All rights reserved.
|
||
+.\"
|
||
+.\" Redistribution and use in source and binary forms, with or without
|
||
+.\" modification, are permitted provided that the following conditions
|
||
+.\" are met:
|
||
+.\" 1. Redistributions of source code must retain the above copyright
|
||
+.\" notice, this list of conditions and the following disclaimer.
|
||
+.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
+.\" notice, this list of conditions and the following disclaimer in the
|
||
+.\" documentation and/or other materials provided with the distribution.
|
||
+.\" 3. All advertising materials mentioning features or use of this software
|
||
+.\" must display the following acknowledgement:
|
||
+.\" This product includes software developed by the University of
|
||
+.\" California, Berkeley and its contributors.
|
||
+.\" 4. Neither the name of the University nor the names of its contributors
|
||
+.\" may be used to endorse or promote products derived from this software
|
||
+.\" without specific prior written permission.
|
||
+.\"
|
||
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+.\" SUCH DAMAGE.
|
||
+.\"
|
||
+.\" @(#)doc-ditroff 5.8 (Berkeley) 8/5/91
|
||
+.\"
|
||
+.\" tmac.mdoc-ditroff
|
||
+.if \n(.g .if !rC .nr C 0
|
||
+.ds aD \fI\s10
|
||
+.ds aR \f(CO\s10
|
||
+.ds cM \f(CB\s10
|
||
+.ds dF \fR\s10
|
||
+.ds eM \fI\s10
|
||
+.ds eR \fC\s10
|
||
+.ds eV \fC\s10
|
||
+.ds fA \f(CO\s10
|
||
+.ds fD \f(CB\s10
|
||
+.ds fL \f(CB\s10
|
||
+.ds fN \f(CB\s10
|
||
+.ds fP \fP\s0
|
||
+.ds fS \s0
|
||
+.ds fT \f(CO\s10
|
||
+.ds Hs \fR\s10
|
||
+.ds iC \f(CB\s10
|
||
+.ds lI \fC
|
||
+.ds lP \fR\|(\|\fP\s10
|
||
+.ds lp \fR(\fP\s10
|
||
+.ds rP \fR\|)\|\fP\s10
|
||
+.ds rp \fR)\fP\s10
|
||
+.ds lB \fR\^[\^\fP\s10
|
||
+.ds rB \fR\^]\fP\s10
|
||
+.ds mL \fB\s10
|
||
+.ds nM \f(CB\s10
|
||
+.ds nO \fR\s10
|
||
+.ds nT \s0
|
||
+.ds pA \fC\s10
|
||
+.ds Pu \fR{\ .\ ,\ :\ ;\ (\ )\ [\ ]\ \fR}
|
||
+.ds rA \fR\s10
|
||
+.ds rT \f(CO\s10
|
||
+.ds sH \fB\s10
|
||
+.ds sP \s0
|
||
+.ds sY \fB\s10
|
||
+.ds sX \fR\s10
|
||
+.ds tF \fR
|
||
+.ds tN \s9
|
||
+.ds vA \fI\s10
|
||
+.ds Vs \fR\s10
|
||
+.ds vT \f(CB\s10
|
||
+.ds xR \fC\s10
|
||
+.tr *\(**
|
||
+.nr sI \w\fC,u*5
|
||
+.nr Ti \n(sIu
|
||
+.nr Pp .5v
|
||
+.ds lS \0
|
||
+.nr lS \w'\0'u
|
||
+.nr dI 6n
|
||
+.de pL
|
||
+.nr Hm .5i
|
||
+.nr Fm .5i
|
||
+.nr ll 6.5i
|
||
+.ll 6.5i
|
||
+.nr lt 6.5i
|
||
+.lt 6.5i
|
||
+.nr po 1i
|
||
+.po 1.i
|
||
+.nr dV .5v
|
||
+..
|
||
+.ds <= \(<=
|
||
+.ds >= \(>=
|
||
+.ie \n(.g \{\
|
||
+. ds Lq \(lq
|
||
+. ds Rq \(rq
|
||
+.\}
|
||
+.el \{\
|
||
+. ds Lq \&``
|
||
+. ds Rq \&''
|
||
+.\}
|
||
+.ds ua \(ua
|
||
+.ds aa \(aa
|
||
+.ds ga \(ga
|
||
+.ds sR \&'
|
||
+.ds sL \&`
|
||
+.ds q \&"
|
||
+.ds Pi \(*p
|
||
+.ds Ne \(!=
|
||
+.ds Le \(<=
|
||
+.ds Ge \(>=
|
||
+.ds Lt <
|
||
+.ds Gt >
|
||
+.ds Pm \(+-
|
||
+.ds If \(if
|
||
+.ds Na \fINaN\fP
|
||
+.ds Ba \fR\&|\fP
|
||
+.nr gX 0
|
||
+.de hK
|
||
+.ds hT \\*(dT
|
||
+.if !"\\*(cH"Null" \{\
|
||
+. ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
|
||
+. el .as hT \\|(\\|\\*(cH\\|)
|
||
+.\}
|
||
+.if "\\*(cH"Null" \{\
|
||
+. if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
|
||
+.\}
|
||
+.wh 0 hM
|
||
+.wh -1.25i fM
|
||
+.nr nL \\n(nl
|
||
+.ie \\n(gX==1 \{\
|
||
+. rm n1
|
||
+. bp
|
||
+.\}
|
||
+.el \{\
|
||
+' bp
|
||
+.\}
|
||
+.if \\n(nL>0 \{\
|
||
+. if !\\nC \{\
|
||
+. nr % 1
|
||
+. \}
|
||
+.\}
|
||
+.nr gX 0
|
||
+.em lM
|
||
+..
|
||
+.nr fW \w\fC0
|
||
+.de sW
|
||
+.nr sW \w\fC\\$1
|
||
+.ie \\n(sW>=\\n(fW \{\
|
||
+. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
|
||
+. el .nr sW \\n(sW/\\n(fW
|
||
+.\}
|
||
+.el \{\
|
||
+. ie \\n(sW>0 .nr sW 1
|
||
+. el .nr sW 0
|
||
+.\}
|
||
+..
|
||
+.de aW
|
||
+.nr sW \w\fC\\*(A\\$1
|
||
+.ie \\n(sW>=\\n(fW \{\
|
||
+. ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
|
||
+. el .nr sW \\n(sW/\\n(fW
|
||
+.\}
|
||
+.el \{\
|
||
+. ie \\n(sW>0 .nr sW 1
|
||
+. el .nr sW 0
|
||
+.\}
|
||
+..
|
||
+.de Ql
|
||
+.if \\n(aC==0 \{\
|
||
+. ds mN Ql
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+.\}
|
||
+.nr aP \\n(aP+1
|
||
+.aW \\n(aP
|
||
+.nr aP \\n(aP-1
|
||
+.if \\n(sW>2 .Li
|
||
+.if \\n(sW<=2 \{\
|
||
+. if (\\n(aP>0) \{\
|
||
+. ds A\\n(aP Li
|
||
+. nr aP \\n(aP -1
|
||
+. \}
|
||
+. if (\\n(aP==0) \{\
|
||
+. rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
|
||
+. rm S1 S2 S3 S4 S5 S6 S7 S8 S9
|
||
+. rn A8 A9
|
||
+. rn A7 A8
|
||
+. rn A6 A7
|
||
+. rn A5 A6
|
||
+. rn A4 A5
|
||
+. rn A3 A4
|
||
+. rn A2 A3
|
||
+. rn A1 A2
|
||
+. ds A1 Li
|
||
+. nr fV \\n(aC+1
|
||
+. nr aC 0
|
||
+. fV
|
||
+. \}
|
||
+. ds qL \&\\*(sL
|
||
+. ds qR \&\\*(sR
|
||
+. En
|
||
+.\}
|
||
+..
|
||
+.de Sh
|
||
+.nr nS 0
|
||
+.nr sE 0
|
||
+.nr iS 0
|
||
+'ad
|
||
+.ie "\\$1"NAME" \{\
|
||
+. hK
|
||
+' in 0
|
||
+.\}
|
||
+.el \{\
|
||
+. ie "\\$1"名前" \{\
|
||
+. hK
|
||
+' in 0
|
||
+. \}
|
||
+. el \{\
|
||
+. ie "\\$1"名称" \{\
|
||
+. hK
|
||
+' in 0
|
||
+. \}
|
||
+. el \{\
|
||
+. nr nS 0
|
||
+. nr nA 0
|
||
+. nr nF 0
|
||
+. nr nT 0
|
||
+. nr nY 0
|
||
+. nr oT 0
|
||
+. if "\\$1"SYNOPSIS" \{\
|
||
+. na
|
||
+. nr nS 1
|
||
+. \}
|
||
+. if "\\$1"書式" \{\
|
||
+. na
|
||
+. nr nS 1
|
||
+. \}
|
||
+. if "\\$1"DESCRIPTION" \{\
|
||
+. nr fY 0
|
||
+. nr fZ 0
|
||
+. nr fB 0
|
||
+. nr Fb 0
|
||
+. ds Fb
|
||
+. \}
|
||
+. if "\\$1"説明" \{\
|
||
+. nr fY 0
|
||
+. nr fZ 0
|
||
+. nr fB 0
|
||
+. nr Fb 0
|
||
+. ds Fb
|
||
+. \}
|
||
+. if "\\$1"解説" \{\
|
||
+. nr fY 0
|
||
+. nr fZ 0
|
||
+. nr fB 0
|
||
+. nr Fb 0
|
||
+. ds Fb
|
||
+. \}
|
||
+. if "\\$1"SEE" \{\
|
||
+. nr nA 1
|
||
+. na
|
||
+. \}
|
||
+. if "\\$1"関連項目" \{\
|
||
+. nr nA 1
|
||
+. na
|
||
+. \}
|
||
+. if "\\$1"FILES" .nr nF 1
|
||
+. if "\\$1"ファイル" .nr nF 1
|
||
+. if "\\$1"関連ファイル" .nr nF 1
|
||
+. if "\\$1"STANDARDS" .nr nT 1
|
||
+. if "\\$1"準拠" .nr nT 1
|
||
+. if "\\$1"規格" .nr nT 1
|
||
+. if "\\$1"AUTHORS" .nr nY 1
|
||
+. if "\\$1"著者" .nr nY 1
|
||
+. if "\\$1"作者" .nr nY 1
|
||
+. if "\\$1"SEE" .nr sE 1
|
||
+. if "\\$1"関連項目" .nr sE 1
|
||
+. in 0
|
||
+. nr aN 0
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.pL
|
||
+'sp
|
||
+.ns
|
||
+.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
|
||
+.if !\\n(cR .ne 3
|
||
+'fi
|
||
+\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
|
||
+\&\fP\s0\&
|
||
+.in \\n(.iu+\\n(Tiu
|
||
+.ns
|
||
+..
|
||
--- groff-1.18.1.1.orig/tmac/tty.tmac
|
||
+++ groff-1.18.1.1/tmac/tty.tmac
|
||
@@ -68,7 +68,7 @@
|
||
.ie '\*(.T'cp1047' \
|
||
. do mso cp1047.tmac
|
||
.el \
|
||
-. if '\*(.T'latin1' \
|
||
+. if !'\*(.T'ascii' \
|
||
. do mso latin1.tmac
|
||
.
|
||
.\" If you want the character definitions in tty-char.tmac to be loaded
|
||
--- groff-1.18.1.1.orig/tmac/gb.tmac
|
||
+++ groff-1.18.1.1/tmac/gb.tmac
|
||
@@ -0,0 +1,15 @@
|
||
+.\" Kinsoku table for the GB2312 encoding of Chinese, recoded from
|
||
+.\" kinsoku.el in Emacs 22.0.50.
|
||
+.\" Checked by Simon Law, who reckons this is "mostly right". That will
|
||
+.\" probably do for now ...
|
||
+.\"
|
||
+.cflags 256 、。<E38081><E38082>,.・:;?!゛゜´¨ ̄<C2A8>ヽゝ〃々〇―
|
||
+.cflags 256 /<><EFBC8F><EFBFBD><EFBFBD>\~∥|<>≦≧<E289A6><E289A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
+.cflags 512 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
+.\" Simon Law supplied these.
|
||
+.cflags 512 <20>`^_ヾゞ仝〆ー‐
|
||
+.\"
|
||
+.\" http://tcl.apache.org/sources/tcl/tools/encoding/gb2312.txt lists U+FF0D
|
||
+.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
|
||
+.\"
|
||
+.hc <20>
|
||
--- groff-1.18.1.1.orig/tmac/docj.tmac
|
||
+++ groff-1.18.1.1/tmac/docj.tmac
|
||
@@ -0,0 +1,3427 @@
|
||
+.\" Copyright (c) 1991 The Regents of the University of California.
|
||
+.\" All rights reserved.
|
||
+.\"
|
||
+.\" Redistribution and use in source and binary forms, with or without
|
||
+.\" modification, are permitted provided that the following conditions
|
||
+.\" are met:
|
||
+.\" 1. Redistributions of source code must retain the above copyright
|
||
+.\" notice, this list of conditions and the following disclaimer.
|
||
+.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
+.\" notice, this list of conditions and the following disclaimer in the
|
||
+.\" documentation and/or other materials provided with the distribution.
|
||
+.\" 3. All advertising materials mentioning features or use of this software
|
||
+.\" must display the following acknowledgement:
|
||
+.\" This product includes software developed by the University of
|
||
+.\" California, Berkeley and its contributors.
|
||
+.\" 4. Neither the name of the University nor the names of its contributors
|
||
+.\" may be used to endorse or promote products derived from this software
|
||
+.\" without specific prior written permission.
|
||
+.\"
|
||
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+.\" SUCH DAMAGE.
|
||
+.\"
|
||
+.\" @(#)doc 5.8 (Berkeley) 8/5/91
|
||
+.\" Modified by jjc@jclark.com as follows: the doc-* files are assumed to be
|
||
+.\" installed as mdoc/doc-* rather than tmac.doc-* (the filename
|
||
+.\" `tmac.doc-common' would be too long); when using groff, the doc-* files
|
||
+.\" are loaded using the `mso' request.
|
||
+.\"
|
||
+.\" .mdoc-parse - attempt to parse troff request arguments
|
||
+.\" %beginstrip%
|
||
+.if \n(.g \{\
|
||
+.cp 0
|
||
+.ftr C CR
|
||
+.\}
|
||
+.if \n(.g .ig
|
||
+.de sO
|
||
+.so /usr/share/tmac/\\$1
|
||
+..
|
||
+.if !\n(.g .ig
|
||
+.de sO
|
||
+.mso mdoc/\\$1
|
||
+..
|
||
+.if t \{\
|
||
+. sO docj-ditroff
|
||
+.\}
|
||
+.if n \{\
|
||
+. sO docj-nroff
|
||
+.\}
|
||
+.sO doc-common
|
||
+.sO doc-syms
|
||
+.\" NS Db macro - start/stop DEBUG MODE
|
||
+.\" NS Db register DEBUG MODE
|
||
+.\" NS iN register DEBUG MODE (inline if 1, to stderr if 0 (default))
|
||
+.nr Db 0
|
||
+.de Db
|
||
+.ie \\n(.$==0 \{\
|
||
+. ie \\n(Db==0 \{\
|
||
+.tm DEBUGGING ON
|
||
+. nr Db 1
|
||
+. \}
|
||
+. el \{\
|
||
+.tm DEBUGGING OFF
|
||
+. nr Db 0
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. if "\\$1"on" \{\
|
||
+.tm DEBUGGING ON
|
||
+. nr Db 1
|
||
+. \}
|
||
+. if "\\$1"off" \{\
|
||
+.tm DEBUGGING OFF
|
||
+. nr Db 0
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS aV macro - parse argument vector (recursive) (.aV arg ... )
|
||
+.\" NS fV macro - parse argument vector (recursive) (.fV)
|
||
+.\" NS aC register argument counter (aV/fV)
|
||
+.\" NS fV register argument counter (must set to \\n(.$ prior to reuqest) (fV)
|
||
+.\" NS A[0-9] argument vector (aV/fV)
|
||
+.\" NS C[0-9] reg. arg type(1=macro, 2=arg, 3=punct-suf, 4=punct-pre) (aV/fV)
|
||
+.\" NS S[0-9] space vector (sV)
|
||
+.\" NS aP register argument pointer (aV)
|
||
+.\" NS yU local string used for debugging
|
||
+.\" NS iI local register (indent for inline debug mode)
|
||
+.\" NS mN name of calling request (set in each user requestable macro)
|
||
+.de aV
|
||
+.nr aC \\n(aC+1
|
||
+.ie "\\$1"|" \{\
|
||
+. if "\\*(mN"Op" .ds A\\n(aC \fR\\$1\fP
|
||
+. if "\\*(mN"Ar" .ds A\\n(aC \fR\\$1\fP
|
||
+. if "\\*(mN"Fl" .ds A\\n(aC \fR\\$1\fP
|
||
+. if "\\*(mN"Cm" .ds A\\n(aC \fR\\$1\fP
|
||
+. if "\\*(mN"It" .ds A\\n(aC \fR\\$1\fP
|
||
+.\}
|
||
+.el .ds A\\n(aC \\$1
|
||
+.aU \\n(aC
|
||
+.nr C\\n(aC \\n(aT
|
||
+.s\\n(aT
|
||
+.if \\n(Db \{\
|
||
+. if \\n(aT==1 .ds yU Executable
|
||
+. if \\n(aT==2 .ds yU String
|
||
+. if \\n(aT==3 .ds yU Closing Punctuation or suffix
|
||
+. if \\n(aT==4 .ds yU Opening Punctuation or prefix
|
||
+. if \\n(iN==1 \{\
|
||
+. br
|
||
+. nr iI \\n(.iu
|
||
+. in -\\n(iIu
|
||
+. if \\n(aC==1 \{\
|
||
+\&\fBDEBUG(argv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c
|
||
+. \}
|
||
+\&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW
|
||
+\&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU
|
||
+. \}
|
||
+. if \\n(iN==0 \{\
|
||
+. if \\n(aC==1 \{\
|
||
+. tm DEBUG(argv) MACRO: `.\\*(mN' Line #: \\n(.c
|
||
+. \}
|
||
+. tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW
|
||
+. tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU
|
||
+. \}
|
||
+.\}
|
||
+.ie \\n(.$==1 \{\
|
||
+. nr aP 0
|
||
+. ie \\n(dZ==1 \{\
|
||
+. if \\n(oM>1 .as b1 \\*(S0
|
||
+. \}
|
||
+. el \{\
|
||
+. if \\n(oM>0 \{\
|
||
+. if \\n(fC==0 .as b1 \\*(S0
|
||
+. \}
|
||
+. \}
|
||
+. ds S0 \\*(S\\n(aC
|
||
+. if \\n(Db \{\
|
||
+. if \\n(iN==1 \{\
|
||
+\&MACRO REQUEST: \t.\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
|
||
+. br
|
||
+. in \\n(iIu
|
||
+. \}
|
||
+. if \\n(iN==0 \{\
|
||
+.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.el .aV \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.de fV
|
||
+.nr aC \\n(aC+1
|
||
+.if "\\*(A\\n(aC"|" \{\
|
||
+. if "\\*(mN"Op" .ds A\\n(aC \fR\\*(A\\n(aC\fP
|
||
+. if "\\*(mN"Ar" .ds A\\n(aC \fR\\*(A\\n(aC\fP
|
||
+. if "\\*(mN"Fl" .ds A\\n(aC \fR\&\\*(A\\n(aC\fP
|
||
+. if "\\*(mN"Cm" .ds A\\n(aC \fR\\*(A\\n(aC\fP
|
||
+. if "\\*(mN"It" .ds A\\n(aC \fR\\*(A\\n(aC\fP
|
||
+.\}
|
||
+.aU \\n(aC
|
||
+.nr C\\n(aC \\n(aT
|
||
+.s\\n(aT
|
||
+.if \\n(Db \{\
|
||
+. if \\n(aT==1 .ds yU Executable
|
||
+. if \\n(aT==2 .ds yU String
|
||
+. if \\n(aT==3 .ds yU Closing Punctuation or suffix
|
||
+. if \\n(aT==4 .ds yU Opening Punctuation or prefix
|
||
+. if \\n(iN==1 \{\
|
||
+. br
|
||
+. nr iI \\n(.iu
|
||
+. in -\\n(iIu
|
||
+. if \\n(aC==1 \{\
|
||
+\&\fBDEBUG(fargv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c
|
||
+. \}
|
||
+\&\t\fBArgc:\fP \\n(aC \fBArgv:\fP `\\*(A\\n(aC' \fBLength:\fP \\n(sW
|
||
+\&\t\fBSpace:\fP `\\*(S\\n(aC' \fBClass:\fP \\*(yU
|
||
+. \}
|
||
+. if \\n(iN==0 \{\
|
||
+. if \\n(aC==1 \{\
|
||
+. tm DEBUG(fargv) MACRO: `.\\*(mN' Line #: \\n(.c
|
||
+. \}
|
||
+. tm \tArgc: \\n(aC Argv: `\\*(A\\n(aC' Length: \\n(sW
|
||
+. tm \tSpace: `\\*(S\\n(aC' Class: \\*(yU
|
||
+. \}
|
||
+.\}
|
||
+.ie \\n(fV==1 \{\
|
||
+. nr aP 0
|
||
+. ie \\n(dZ==1 \{\
|
||
+. if \\n(oM>1 .as b1 \\*(S0
|
||
+. \}
|
||
+. el \{\
|
||
+. if \\n(oM>0 \{\
|
||
+. if \\n(fC==0 .as b1 \\*(S0
|
||
+. \}
|
||
+. \}
|
||
+. ds S0 \\*(S\\n(aC
|
||
+. nr fV 0
|
||
+. if \\n(Db \{\
|
||
+. ie \\n(iN \{\
|
||
+\&\tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
|
||
+. br
|
||
+. in \\n(iIu
|
||
+. \}
|
||
+. el \{\
|
||
+.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. nr fV \\n(fV-1
|
||
+. fV
|
||
+.\}
|
||
+..
|
||
+.\" NS aX macro - stuff saved strings into `b1' (used by -diag list)
|
||
+.de aX
|
||
+.nr aP \\n(aP+1
|
||
+.as b1 \&\\*(A\\n(aP
|
||
+.ie \\n(fV==1 \{\
|
||
+. nr aP 0
|
||
+. nr fV 0
|
||
+.\}
|
||
+.el \{\
|
||
+. as b1 \&\\*(sV
|
||
+. nr fV \\n(fV-1
|
||
+. aX
|
||
+.\}
|
||
+..
|
||
+.\" NS aI macro - append arg to arg vector: .aI [arg] [type] (used by .En only)
|
||
+.de aI
|
||
+.ie \\n(aC<9 \{\
|
||
+. nr aC \\n(aC+1
|
||
+. ds A\\n(aC \\$1
|
||
+. nr C\\n(aC \\$2
|
||
+. s\\$2
|
||
+. ds xV S\\n(aC
|
||
+.\}
|
||
+.el \{\
|
||
+. tm Usage: Too many arguments (maximum of 8 accepted) (#\\n(.c)
|
||
+. tm \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
|
||
+.\}
|
||
+..
|
||
+.\"
|
||
+.\" NS aZ macro - print buffer (pB) and clean up arg vectors (aY)
|
||
+.de aZ
|
||
+.pB
|
||
+.aY
|
||
+..
|
||
+.\" NS aY macro - clean up arg vector
|
||
+.de aY
|
||
+.rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
|
||
+.rm A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
|
||
+.rm S1 S2 S3 S4 S5 S6 S7 S8 S9
|
||
+.nr aC 0
|
||
+.nr aP 0
|
||
+..
|
||
+.\" NS pB macro - test for end of vector (eol) (print b1 buffer or divert)
|
||
+.de pB
|
||
+.ie \\n(dZ==1 \{\
|
||
+. if \\n(oM==1 \{\&\\*(b1
|
||
+. rm S0
|
||
+. ds b1
|
||
+. \}
|
||
+. if \\n(oM==0 \{\
|
||
+. x2
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. ie \\n(oM==0 \{\&\\*(b1
|
||
+. rm S0
|
||
+. ds b1
|
||
+. \}
|
||
+. el \{\
|
||
+. if ((\\n(sM==1)&(\\n(tP==0)) \{\
|
||
+. x1
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.hy
|
||
+..
|
||
+.\" NS x1 macro - save buffer and divert if tP flag set
|
||
+.\" NS eB diversion string
|
||
+.\" NS b2 string save of buffer
|
||
+.\" NS lK register count of lines read from input file
|
||
+.de x1
|
||
+.nr dZ \\n(dZ+1
|
||
+.ds b2 \\*(b1
|
||
+.ds b1
|
||
+.nr lK \\n(.c
|
||
+.ev 2
|
||
+.fi
|
||
+.di eB
|
||
+..
|
||
+.\"
|
||
+.\" NS x2 macro - end diversion and print
|
||
+.\" NS b0 string local temporary
|
||
+.de x2
|
||
+.br
|
||
+.di
|
||
+.ev
|
||
+.ie (\\n(.c-\\n(lK>1) \{\
|
||
+. ds b0 \&\\*(eB\\
|
||
+. ds b1 \\*(b2\\*(b0\\*(b1
|
||
+.\}
|
||
+.el .ds b1 \\*(b2\\*(b1
|
||
+\&\\*(b1
|
||
+.rm eB b2 b0 b1
|
||
+.nr dZ \\n(dZ-1
|
||
+..
|
||
+.\" NS Fl macro - flags (appends - and prints flags)
|
||
+.\" NS cF register save current font
|
||
+.\" NS cZ register save current font size
|
||
+.de Fl
|
||
+.as b1 \&\\*(fL
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \{\
|
||
+. as b1 \&\|\-\|\fP\s0
|
||
+. pB
|
||
+. \}
|
||
+. el \{\
|
||
+. ds mN Fl
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>0 \{\
|
||
+. ie (\\n(aC-\\n(aP)==0 \{\
|
||
+. as b1 \&\|\-\fP\s0
|
||
+. aZ
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(C\\n(aP==1 \{\
|
||
+. as b1 \&\|\-\fP\s0
|
||
+. \\*(A\\n(aP
|
||
+. \}
|
||
+. el \{\
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. if \\n(C\\n(aP==3 \{\
|
||
+. as b1 \&\|\-\|
|
||
+. \}
|
||
+. fR
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\"
|
||
+.\" NS fR macro - Fl flag recursion routine (special handling)
|
||
+.\" NS jM local register
|
||
+.\" NS jN local register
|
||
+.\"
|
||
+.de fR
|
||
+.hy 0
|
||
+.nr jM \\n(C\\n(aP
|
||
+.ie \\n(jM==1 \{\
|
||
+. as b1 \&\fP\s0
|
||
+. \\*(A\\n(aP
|
||
+.\}
|
||
+.el \{\
|
||
+. nr jN \\n(aP
|
||
+. ie \\n(jM==2 \{\
|
||
+. ie !"\\*(A\\n(aP"\\*(Ba" \{\
|
||
+. ie !"\\*(A\\n(aP"\fR|\fP" \{\
|
||
+. ie "\\*(A\\n(aP"-" .as b1 \&\|\-\^\-\|
|
||
+. el .as b1 \&\|\-\\*(A\\n(aP
|
||
+. \}
|
||
+. el .as b1 \&\\*(A\\n(aP
|
||
+. \}
|
||
+. el .as b1 \&\\*(A\\n(aP
|
||
+. \}
|
||
+. el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
|
||
+. ie \\n(aC==\\n(aP \{\
|
||
+. if \\n(jM==4 .as b1 \&\|\-
|
||
+. as b1 \&\fP\s0
|
||
+. aZ
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ie ((\\n(C\\n(aP==3)&(\\n(C\\n(jN==4)) .as b1 \&\|\-
|
||
+. el .as b1 \&\\*(S\\n(jN
|
||
+. fR \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.rr jM jN
|
||
+..
|
||
+.\"
|
||
+.\" NS nR macro - general name recursion routine
|
||
+.\" NS jM local register
|
||
+.\" NS jN local register
|
||
+.de nR
|
||
+.hy 0
|
||
+.nr jM \\n(C\\n(aP
|
||
+.ie \\n(jM==1 \{\
|
||
+. as b1 \&\f\\n(cF\s\\n(cZ
|
||
+. \\*(A\\n(aP
|
||
+.\}
|
||
+.el \{\
|
||
+. nr jN \\n(aP
|
||
+. ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
|
||
+. el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
|
||
+. ie \\n(aC==\\n(aP \{\
|
||
+. as b1 \&\f\\n(cF\s\\n(cZ
|
||
+. aZ
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aP \\n(aP+1
|
||
+. as b1 \&\\*(S\\n(jN
|
||
+. nR
|
||
+. \}
|
||
+.\}
|
||
+.rr jM jN
|
||
+..
|
||
+.\" NS Ar macro - command line `argument' macro
|
||
+.\"
|
||
+.de Ar
|
||
+.as b1 \\*(aR
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \{\
|
||
+. as b1 file\ ...\fP\s0
|
||
+. pB
|
||
+. \}
|
||
+. el \{\
|
||
+. ds mN Ar
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>0 \{\
|
||
+. ie (\\n(aC-\\n(aP)==0 \{\
|
||
+. as b1 \&file\ ...\fP\s0
|
||
+. aZ
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(C\\n(aP==1 \{\
|
||
+. as b1 \&file\ ...\fP\s0
|
||
+. \\*(A\\n(aP
|
||
+. \}
|
||
+. el \{\
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. if \\n(C\\n(aP==3 \{\
|
||
+. as b1 \&file\ ...
|
||
+. \}
|
||
+. nR
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS Ad macro - Addresses
|
||
+.de Ad
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Ad address ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Ad
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(aD
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Cd macro - Config declaration (for section 4 SYNOPSIS) (not callable)
|
||
+.\" needs work - not very translatable
|
||
+.de Cd
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Cd Configuration file declaration (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Cd
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.br
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(nM
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. ie \\n(nS \{\
|
||
+. if "\\*(mN"Cd" \{\
|
||
+. rs
|
||
+. ie \\n(nS>1 .br
|
||
+. el \{\
|
||
+. if \\n(iS==0 .nr iS \\n(Dsu
|
||
+. \}
|
||
+. in +\\n(iSu
|
||
+. ti -\\n(iSu
|
||
+. nr nS \\n(nS+1
|
||
+. \}
|
||
+. nR
|
||
+. in -\\n(iSu
|
||
+. \}
|
||
+. el .nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Cm macro - Interactive command modifier (flag)
|
||
+.de Cm
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Cm Interactive command modifier ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Cm
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(cM
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Dv macro - define variable
|
||
+.de Dv
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Dv define_variable ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Dv
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(eR
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Em macro - Emphasis
|
||
+.de Em
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \{\
|
||
+. tm Usage: .Em text ... \\*(Pu (#\\n(.c)
|
||
+. \}
|
||
+. el \{\
|
||
+. ds mN Em
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(eM
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Er macro - Errnotype
|
||
+.de Er
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Er ERRNOTYPE ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Er
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(eR
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Ev macro - Environment variable
|
||
+.de Ev
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Ev ENVIRONMENT_VARIABLE ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Ev
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(eV
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Fd macro - function declaration - not callable (& no err check)
|
||
+.\" NS fD register subroutine test (in synopsis only)
|
||
+.\" NS fY register subroutine count (in synopsis only) (fortran only)
|
||
+.\" NS fZ register also subroutine count (in synopsis only)
|
||
+.de Fd
|
||
+.ds mN Fd
|
||
+.if \\n(nS>0 \{\
|
||
+.\" if a variable type was the last thing given, want vertical space
|
||
+. if \\n(fX>0 \{\
|
||
+. Pp
|
||
+. nr fX 0
|
||
+. \}
|
||
+.\" if a subroutine was the last thing given, want vertical space
|
||
+. if \\n(fZ>0 \{\
|
||
+. ie \\n(fD==0 \{\
|
||
+. Pp
|
||
+. rs
|
||
+. \}
|
||
+. el .br
|
||
+. \}
|
||
+. nr fD \\n(fD+1
|
||
+.\}
|
||
+.nr cF \\n(.f
|
||
+.nr cZ \\n(.s
|
||
+\&\\*(fD\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+.br
|
||
+.ft \\n(cF
|
||
+.fs \\n(cZ
|
||
+..
|
||
+.\" NS Fr macro - function return value - not callable (at the moment)
|
||
+.de Fr
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Fr Function_return_value... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Fr
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(aR
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Ic macro - Interactive command
|
||
+.de Ic
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Ic Interactive command ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Ic
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(iC
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Li macro - literals
|
||
+.de Li
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage .Li argument ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Li
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(lI
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Or macro - Pipe symbol (OR)
|
||
+.de Or
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Or ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Or
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(iC
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Ms macro - Math symbol
|
||
+.de Ms
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Ms Math symbol ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Ms
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(sY
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Nm macro - Name of command or page topic
|
||
+.\" NS n1 string - save first invocation of .Nm
|
||
+.\" NS iS register - indent second command line in a synopsis
|
||
+.de Nm
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \{\
|
||
+. ie "\\*(n1"" .tm Usage: .Nm Name(s) ... \\*(Pu (#\\n(.c)
|
||
+. el \&\\*(nM\\*(n1\fP\s0
|
||
+. \}
|
||
+. el \{\
|
||
+. ds mN Nm
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>0 \{\
|
||
+. ie \\n(aC==\\n(aP \{\
|
||
+. as b1 \&\\*(nM\\*(n1\fP\s0
|
||
+. aZ
|
||
+. \}
|
||
+. el \{\
|
||
+. as b1 \\*(nM
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(C\\n(aP==1 \{\
|
||
+. as b1 \&\\*(n1\fP\s0
|
||
+. \\*(A\\n(aP
|
||
+. \}
|
||
+. el \{\
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. if \\n(nS \{\
|
||
+. if "\\*(mN"Nm" \{\
|
||
+. rs
|
||
+. in -\\n(iSu
|
||
+. ie \\n(nS>1 .br
|
||
+. el \{\
|
||
+. if \\n(iS==0 \{\
|
||
+. sw \\$1
|
||
+. nr iS ((\\n(sWu+1)*\\n(fW)u
|
||
+. \}
|
||
+. \}
|
||
+. in +\\n(iSu
|
||
+. ti -\\n(iSu
|
||
+. nr nS \\n(nS+1
|
||
+. \}
|
||
+. \}
|
||
+. if "\\*(n1"" .ds n1 \\*(A\\n(aP
|
||
+. nR
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS Pa macro - Pathname
|
||
+.de Pa
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \&\\*(pA~\fP\s0
|
||
+. el \{\
|
||
+. ds mN Pa
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(pA
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Sy macro - Symbolics
|
||
+.de Sy
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Sy symbolic_text ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Sy
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(sY
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Tn macro - Trade Name Macro
|
||
+.de Tn
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Tn
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(tN\\*(tF
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS nN macro - Trade Name Macro for inside of reference
|
||
+.de nN
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Tn
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(tN
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS Va macro - variable name macro
|
||
+.de Va
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Va variable_name(s) ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Va
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(vA
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\"
|
||
+.\" NS No macro - Normal text macro (default text style if mess up)
|
||
+.de No
|
||
+.as b1 \\*(nO
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .No must be called with arguments (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN No
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(C\\n(aP==1 \{\
|
||
+. \\*(A\\n(aP
|
||
+. \}
|
||
+. el \{\
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\"------------------------------------------------------------------------
|
||
+.\" NS Op macro - Option Expression
|
||
+.de Op
|
||
+.if \\n(aC==0 \{\
|
||
+. ds mN Op
|
||
+.\}
|
||
+.\" .ds qL \&\\*(lO
|
||
+.\" .ds qR \&\\*(rO
|
||
+.ds qL \&\\*(lB
|
||
+.ds qR \&\\*(rB
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
|
||
+..
|
||
+.\" NS Aq macro - Enclose string in angle brackets
|
||
+.de Aq
|
||
+.if \\n(aC==0 .ds mN Aq
|
||
+.ds qL \&<
|
||
+.ds qR \&>
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Bq macro - Enclose string in square brackets
|
||
+.de Bq
|
||
+.if \\n(aC==0 .ds mN Bq
|
||
+.ds qL \&\\*(lB
|
||
+.ds qR \&\\*(rB
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Dq macro - Enclose string in double quotes
|
||
+.de Dq
|
||
+.if \\n(aC==0 .ds mN Dq
|
||
+.ds qL \&\\*(Lq
|
||
+.ds qR \&\\*(Rq
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Eq macro - Enclose string in double quotes
|
||
+.de Eq
|
||
+.if \\n(aC==0 .ds mN Eq
|
||
+.ds qL \\$1
|
||
+.ds qR \\$2
|
||
+.En \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Pq macro - Enclose string in parenthesis
|
||
+.de Pq
|
||
+.if \\n(aC==0 .ds mN Pq
|
||
+.ds qL \&\\*(lP
|
||
+.ds qR \&\\*(rP
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Ql macro - Quoted literal is in file mdocj-[dit|n|g]roff (too large
|
||
+.\" an if-else to carry along recursively for `if n ...')
|
||
+.\"
|
||
+.\" NS Sq macro - Enclose string in single quotes
|
||
+.de Qq
|
||
+.if \\n(aC==0 .ds mN Qq
|
||
+.ds qL \&\\*q
|
||
+.ds qR \&\\*q
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Sq macro - Enclose string in single quotes
|
||
+.de Sq
|
||
+.if \\n(aC==0 .ds mN Sq
|
||
+.ds qL \&\\*(sL
|
||
+.ds qR \&\\*(sR
|
||
+.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\"
|
||
+.\" NS Es macro - Set up strings for .En call
|
||
+.de Es
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$>2 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. el \{\
|
||
+. ds qL \\$1
|
||
+. ds qR \\$2
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds qL \\*(A\\n(aP
|
||
+. nr aP \\n(aP+1
|
||
+. ds qR \\*(A\\n(aP
|
||
+. ie \\n(aC>\\n(aP .c\\n(C\\n(aP
|
||
+. el .aZ
|
||
+.\}
|
||
+..
|
||
+.\" .tm En beg arg(A[\\n(aP])==\\*(A\\n(aP;
|
||
+.\" .tm En oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
|
||
+.\" NS En macro - Enclose string with given args (eg [ and ] etc)
|
||
+.\" NS qL string variable set by calling macro
|
||
+.\" NS qR string variable set by calling macro
|
||
+.\" NS aJ register (for vR)
|
||
+.de En
|
||
+.ie \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \{\
|
||
+. as b1 \&\\*(qL\\*(qR
|
||
+. pB
|
||
+. \}
|
||
+. el \{\
|
||
+.\". as mN (En)
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. as b1 \&\\*(qL
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. as b1 \&\\*(qL
|
||
+.\}
|
||
+.if \\n(aC>0 \{\
|
||
+. ie (\\n(aC-\\n(aP)==0 \{\
|
||
+. as b1 \&\\*(qR
|
||
+. aZ
|
||
+. \}
|
||
+. el \{\
|
||
+. ie \\n(C\\n(aC==3 \{\
|
||
+. nr aJ \\n(aC-1
|
||
+. vR
|
||
+. nr aJ \\n(aJ+1
|
||
+. ds A\\n(aJ \&\\*(qR\\*(A\\n(aJ
|
||
+. nr aJ 0
|
||
+. \}
|
||
+. el .aI \&\\*(qR 3
|
||
+. nr aP \\n(aP+1
|
||
+. if \\n(C\\n(aP==1 .\\*(A\\n(aP
|
||
+. if \\n(C\\n(aP>1 \{\
|
||
+. nr aP \\n(aP-1
|
||
+. No
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS vR macro - vector routine (for En, trace backwards past trail punct)
|
||
+.de vR
|
||
+.if \\n(C\\n(aJ==3 \{\
|
||
+. nr aJ \\n(aJ-1
|
||
+. vR
|
||
+.\}
|
||
+..
|
||
+.\"------------------------------------------------------------------------
|
||
+.\" NS Ao macro - Angle open
|
||
+.de Ao
|
||
+.if \\n(aC==0 .ds mN Ao
|
||
+.ds qL \&<
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Ac macro - Angle close
|
||
+.de Ac
|
||
+.if \\n(aC==0 .ds mN Ac
|
||
+.ds qR \&>
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Bo macro - Bracket open
|
||
+.de Bo
|
||
+.if \\n(aC==0 .ds mN Bo
|
||
+.ds qL \&[
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Bc macro - Bracket close
|
||
+.de Bc
|
||
+.if \\n(aC==0 .ds mN Bc
|
||
+.ds qR \&]
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Do macro - Double Quote open
|
||
+.de Do
|
||
+.if \\n(aC==0 .ds mN Do
|
||
+.ds qL \&\\*(Lq
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Dc macro - Double Quote close
|
||
+.de Dc
|
||
+.if \\n(aC==0 .ds mN Dc
|
||
+.ds qR \&\\*(Rq
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Eo macro - Enclose open
|
||
+.de Eo
|
||
+.if \\n(aC==0 .ds mN Eo
|
||
+.ds qL \\$1
|
||
+.eO \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Ec macro - Enclose close
|
||
+.de Ec
|
||
+.if \\n(aC==0 .ds mN Ec
|
||
+.ds qR \\$1
|
||
+.eC \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Oo macro - Option open
|
||
+.de Oo
|
||
+.if \\n(aC==0 .ds mN Oo
|
||
+.ds qL \&[
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Oc macro - Option close
|
||
+.de Oc
|
||
+.if \\n(aC==0 .ds mN Oc
|
||
+.ds qR \&]
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Po macro - Parenthesis open
|
||
+.de Po
|
||
+.if \\n(aC==0 .ds mN Po
|
||
+.ds qL \&(
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Pc macro - Parenthesis close
|
||
+.de Pc
|
||
+.if \\n(aC==0 .ds mN Pc
|
||
+.ds qR \&)
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Qo macro - Straight Double Quote open
|
||
+.de Qo
|
||
+.if \\n(aC==0 .ds mN Qo
|
||
+.ds qL \&\\*q
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Qc macro - Straight Double Quote close
|
||
+.de Qc
|
||
+.if \\n(aC==0 .ds mN Qc
|
||
+.ds qR \&\\*q
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS So macro - Single Quote open
|
||
+.de So
|
||
+.if \\n(aC==0 .ds mN So
|
||
+.ds qL \&\\*(sL
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Sc macro - Single Quote close
|
||
+.de Sc
|
||
+.if \\n(aC==0 .ds mN Sc
|
||
+.ds qR \&\\*(sR
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Xo macro - Extend open (continue)
|
||
+.de Xo
|
||
+.if \\n(aC==0 .ds mN Xo
|
||
+.\" .nr mN 1
|
||
+.ds qL
|
||
+.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS Xe macro - Extend close (end)
|
||
+.de Xc
|
||
+.\" .nr mN 0
|
||
+.if \\n(aC==0 .ds mN Xc
|
||
+.ds qR
|
||
+.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS eO macro - enclose string open
|
||
+.\" NS oM register (extension possible)
|
||
+.de eO
|
||
+.nr oM \\n(oM+1
|
||
+.\" .tm eO last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
|
||
+.ie \\n(aC==0 \{\
|
||
+. ie \\n(.$>0 \{\
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. as b1 \\*(qL
|
||
+. \}
|
||
+. el \{\
|
||
+. as b1 \\*(qL
|
||
+. if (\\n(dZ==0)&(\\n(sM==1) \{\
|
||
+. nr dZ \\n(dZ+1
|
||
+. ds b2 \\*(b1
|
||
+. ds b1
|
||
+. nr lK \\n(.c
|
||
+. ev 2
|
||
+. fi
|
||
+. di eB
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. as b1 \\*(qL
|
||
+.\}
|
||
+.ie \\n(aC>0 \{\
|
||
+. if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(C\\n(aP==1 .\\*(A\\n(aP
|
||
+. el \{\
|
||
+. nr aP \\n(aP-1
|
||
+. No
|
||
+. \}
|
||
+. \}
|
||
+. if \\n(aC==\\n(aP \{\
|
||
+. if \\n(tP==1 \{\
|
||
+.\" .tm SETTING Xt!!!
|
||
+. nr Xt 1
|
||
+. \}
|
||
+.\".\" . ds S0
|
||
+.\"CHANGED ds S0 \\*(iV
|
||
+. aY
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. if \\n(oM>1 .as b1 \\*(sV
|
||
+.\}
|
||
+..
|
||
+.\"
|
||
+.\" NS eC macro - enclose string close
|
||
+.\" NS aa local register
|
||
+.de eC
|
||
+.nr oM \\n(oM-1
|
||
+.\" tm eC last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
|
||
+.as b1 \\*(qR
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$>0 \{\
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+. el \{\
|
||
+. ie "\\*(xB"" \{\
|
||
+. pB
|
||
+. \}
|
||
+. el \{\
|
||
+. pB
|
||
+.\\*(L\\n(lC
|
||
+. nr Xt 0
|
||
+. ds xB
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>0 \{\
|
||
+. ie \\n(aC==\\n(aP \{\
|
||
+. ie \\n(oM==0 \{\
|
||
+. aZ
|
||
+. \}
|
||
+. el .aY
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aa \\n(aP+1
|
||
+. if \\n(C\\n(aa==2 .as b1 \\*(S\\n(aC
|
||
+.\" tm CURRENT arg (aP==\\*(A\\n(aP and ap+1==\\*(A\\n(aa) tP==\\n(tP Xt==\\n(Xt
|
||
+. rr aa
|
||
+. if \\n(tP>0 \{\
|
||
+.\" tm UNSETTING Xt==\\n(Xt!!!!
|
||
+. if \\n(Xt>0 .nr Xt \\n(Xt-1
|
||
+.\" tm NOW Xt==\\n(Xt!!!!
|
||
+. \}
|
||
+. No
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\"------------------------------------------------------------------------
|
||
+.\" NS Pf macro - Prefix (calls .pF)
|
||
+.de Pf
|
||
+.if \\n(aC==0 .ds mN Pf
|
||
+.ds qL \&\\$1
|
||
+.pF \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\" NS pF macro - Prefix (for prefixing open quotes, brackets etc)
|
||
+.de pF
|
||
+.ie \\n(aC==0 \{\
|
||
+. as b1 \&\\*(qL
|
||
+. ie \\n(.$<2 \{\
|
||
+. tm Warning: Missing arguments - prefix .Pf)
|
||
+. pB
|
||
+. \}
|
||
+. el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+.\}
|
||
+.el \{\
|
||
+. ie (\\n(aC-\\n(aP)>1 \{\
|
||
+. nr aP \\n(aP+1
|
||
+. as b1 \&\\*(A\\n(aP
|
||
+. \}
|
||
+. el .tm Warning: .Pf: trailing prefix (#\\n(.c)
|
||
+.\}
|
||
+.if \\n(aC>0 \{\
|
||
+. ie (\\n(aC-\\n(aP)==0 .aZ
|
||
+. el \{\
|
||
+. nr aP \\n(aP+1
|
||
+. c\\n(C\\n(aP
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS Ns macro - remove space (space remove done by .aV or .fV)
|
||
+.de Ns
|
||
+.if \\n(aC==0 \{\
|
||
+. ds mN Ns
|
||
+. ie \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. el .tm Usage: .Ns must be called with arguments (#\\n(.c)
|
||
+.\}
|
||
+.No
|
||
+..
|
||
+.de Ap
|
||
+.if \\n(aC==0 \{\
|
||
+. ds mN Ap
|
||
+. tm Usage: Ap "cannot be first request on a line (no .Ap)" (#\\n(.c)
|
||
+.\}
|
||
+.as b1 \&'
|
||
+.No
|
||
+..
|
||
+.\" NS Hv macro - Hard (unpaddable) Space vector
|
||
+.\" NS iV string inter-vector space
|
||
+.\" NS sV string inter-argument space
|
||
+.de Hv
|
||
+.ds iV \\*(sV
|
||
+.ds sV \\*(hV
|
||
+..
|
||
+.\" NS Sv macro - Soft Space vector (troff limitation)
|
||
+.de Sv
|
||
+.ds sV \\*(iV
|
||
+..
|
||
+.\" NS Tv macro - Tab Space vector
|
||
+.de Tv
|
||
+.ds sV \\*(tV
|
||
+..
|
||
+.\" NS Sm macro - Space mode
|
||
+.\" NS sM register - default is one (space mode on)
|
||
+.nr sM 1
|
||
+.de Sm
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm "Usage: .Sm [off | on]" (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Sm
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>0 \{\
|
||
+. nr aP \\n(aP+1
|
||
+. if "\\*(A\\n(aP"on" \{\
|
||
+. ds sV \\*(iV
|
||
+. nr sM 1
|
||
+. \}
|
||
+. if "\\*(A\\n(aP"off" \{\
|
||
+. ds sV
|
||
+. rm S0 S1 S2 S3 S4 S5 S6 S7 S8 S9
|
||
+. nr sM 0
|
||
+. \}
|
||
+. ie \\n(aC>\\n(aP \{\
|
||
+. No
|
||
+. \}
|
||
+. el .aY
|
||
+.\}
|
||
+..
|
||
+.\"------------------------------------------------------------------------
|
||
+.\" Size and Argument type macros
|
||
+.\" NS aT macro - argument type
|
||
+.\" NS aU macro - argument type (same as .aT but uses A[1-9] strings
|
||
+.\" NS aT register argument type
|
||
+.if \n(.g \{\
|
||
+.de aT
|
||
+.nr aT 0
|
||
+.ie \\n(sW>2:(\A'\\$1'==0) \{\
|
||
+. nr aT 2
|
||
+.\}
|
||
+.el \{\
|
||
+. if \\n(sW==1 \{\
|
||
+. ie \\n(z\\$1>2 \{\
|
||
+. nr aT \\n(z\\$1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+. if \\n(sW==2 \{\
|
||
+. ie \\n(\\$1 \{\
|
||
+. nr aT 1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.de aU
|
||
+.nr aT 0
|
||
+.aW \\$1
|
||
+.ie \\n(sW>2:(\A'\\*(A\\$1'==0) .nr aT 2
|
||
+.el \{\
|
||
+. if \\n(sW==1 \{\
|
||
+. ie \\n(z\\*(A\\$1>2 \{\
|
||
+. nr aT \\n(z\\*(A\\$1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+. if \\n(sW==2 \{\
|
||
+. ie (\\n(\\*(A\\$1) \{\
|
||
+. nr aT 1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\}
|
||
+.if !\n(.g \{\
|
||
+.de aT
|
||
+.nr aT 0
|
||
+.ie \\n(sW>2 \{\
|
||
+. nr aT 2
|
||
+.\}
|
||
+.el \{\
|
||
+. if \\n(sW==1 \{\
|
||
+. ie \\n(z\\$1>2 \{\
|
||
+. nr aT \\n(z\\$1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+. if \\n(sW==2 \{\
|
||
+. ie \\n(\\$1 \{\
|
||
+. nr aT 1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.de aU
|
||
+.nr aT 0
|
||
+.aW \\$1
|
||
+.ie \\n(sW>2 .nr aT 2
|
||
+.el \{\
|
||
+. if \\n(sW==1 \{\
|
||
+. ie \\n(z\\*(A\\$1>2 \{\
|
||
+. nr aT \\n(z\\*(A\\$1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+. if \\n(sW==2 \{\
|
||
+. ie (\\n(\\*(A\\$1) \{\
|
||
+. nr aT 1
|
||
+. \}
|
||
+. el .nr aT 2
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\}
|
||
+.\" NS s1 macro - set spacing for class type 1
|
||
+.\" NS s2 macro - set spacing for class type 2
|
||
+.\" NS s3 macro - set spacing for class type 3
|
||
+.\" NS s1 macro - set spacing for class type 1
|
||
+.\" NS s2 macro - set spacing for class type 2
|
||
+.\" NS s3 macro - set spacing for class type 3
|
||
+.\" NS s4 macro - set spacing for class type 4
|
||
+.\" NS S[0-9] string spacing
|
||
+.\" NS xX local register
|
||
+.\" NS aa local register
|
||
+.de s0
|
||
+.tm MDOC-ERROR: bogus type 0 (can't set space '\\*(A\\n(aC') (#\\n(.c)
|
||
+..
|
||
+.de s1
|
||
+.if \\n(\\*(A\\n(aC==3 \{\
|
||
+. nr xX \\n(aC-1
|
||
+. rm S\\n(xX
|
||
+. ds S\\n(aC \\*(sV
|
||
+.\}
|
||
+.if \\n(\\*(A\\n(aC==2 \{\
|
||
+. nr xX \\n(aC-1
|
||
+.\" this kludge can probably go away, but need to double check first
|
||
+. ie "\\*(A\\n(aC"Nb" .ds S\\n(xX \\*(hV
|
||
+. el .rm S\\n(xX
|
||
+.\}
|
||
+..
|
||
+.de s2
|
||
+.ds S\\n(aC \\*(sV
|
||
+..
|
||
+.de s3
|
||
+.if \\n(aC>1 \{\
|
||
+. nr xX \\n(aC-1
|
||
+. rm S\\n(xX
|
||
+.\}
|
||
+.ds S\\n(aC \\*(sV
|
||
+..
|
||
+.de s4
|
||
+.nr aa 0
|
||
+..
|
||
+.\" Class switches (on current argument aP)
|
||
+.\" NS c0 macro - catch errors (non-existent class type 0)
|
||
+.\" NS c1 macro - call request if type 1
|
||
+.\" NS c2 macro - call .No if type 2
|
||
+.\" NS c3 macro - call .No if type 3
|
||
+.\" NS c4 macro - call .No if type 4
|
||
+.de c0
|
||
+.tm MDOC-ERROR: bogus class 0 (can't determine '\\*(A\\n(aC') (#\\n(.c)
|
||
+..
|
||
+.de c1
|
||
+.\\*(A\\n(aP
|
||
+..
|
||
+.de c2
|
||
+.nr aP \\n(aP-1
|
||
+.No
|
||
+..
|
||
+.de c3
|
||
+.nr aP \\n(aP-1
|
||
+.No
|
||
+..
|
||
+.de c4
|
||
+.nr aP \\n(aP-1
|
||
+.No
|
||
+..
|
||
+.\" NS y1 macro - ignore if class 1
|
||
+.\" NS y2 macro - ignore if class 2
|
||
+.\" NS y3 macro - append if type 3
|
||
+.\" NS y4 macro - append if type 4
|
||
+.de y1
|
||
+.nr aa 1
|
||
+..
|
||
+.de y2
|
||
+.nr aa 1
|
||
+..
|
||
+.de y3
|
||
+.as b1 \\*(A\\n(aP
|
||
+.nr aP \\n(aP+1
|
||
+.n\\C\\n(aP
|
||
+..
|
||
+.de y4
|
||
+.as b1 \\*(A\\n(aP
|
||
+.nr aP \\n(aP+1
|
||
+.n\\C\\n(aP
|
||
+..
|
||
+.\"--------------------------------------------------------------------------
|
||
+.\" Ns Bf macro - Begin Font Mode (will be begin-mode/end-mode in groff & TeX)
|
||
+.\" Ns Ef macro - End Font Mode
|
||
+.de Bf
|
||
+.ds mN Bf
|
||
+.ie \\n(.$>0 \{\
|
||
+. nr bF \\n(.f
|
||
+. nr bZ \\n(.s
|
||
+. if "\\$1"Em" \&\\*(eM\c
|
||
+. if "\\$1"Li" \&\\*(lI\c
|
||
+. if "\\$1"Sy" \&\\*(sY\c
|
||
+. if "\\$1"-emphasis" \&\\*(eM\c
|
||
+. if "\\$1"-literal" \&\\*(lI\c
|
||
+. if "\\$1"-symbolic" \&\\*(sY\c
|
||
+.\}
|
||
+.el .tm Usage .Bf [Em | emphasis | Li | literal | Sy | symbolic] (#\\n(.c)
|
||
+..
|
||
+.de Ef
|
||
+.ds mN Ef
|
||
+.ie \\n(.$>0 .tm Usage .Ef (does not take arguments) (#\\n(.c)
|
||
+.el \&\f\\n(bF\s\\n(bZ
|
||
+..
|
||
+.\" Ns Bk macro - Begin Keep
|
||
+.\" Ns Ek macro - End Keep
|
||
+.\" Ns kS string - keep type
|
||
+.de Bk
|
||
+.ds mN Bk
|
||
+.ie \\n(.$==0 \{\
|
||
+.tm Usage: .Bk [-lines | -words] (#\\n(.c)
|
||
+.\}
|
||
+.el \{\
|
||
+. if !"\\*(kS"" .tm .Bk: nesting keeps not implemented yet. (#\\n(.c)
|
||
+. if "\\$1"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
|
||
+. if "\\$1"-words" .Hv
|
||
+. ds kS \\$1
|
||
+.\}
|
||
+..
|
||
+.de Ek
|
||
+.ds mN Ek
|
||
+.ie \\n(.$>0 .tm Usage .Ek (does not take arguments) (#\\n(.c)
|
||
+.el \{\
|
||
+. if "\\*(kS"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
|
||
+. if "\\*(kS"-words" .Sv
|
||
+. rm kS
|
||
+.\}
|
||
+..
|
||
+.\" NS Bd macro - Begin Display display-type [offset string]
|
||
+.\" NS Ed macro - end Display
|
||
+.\" NS O[0-9] registers - stack of indent
|
||
+.\" NS d[0-9] registers - display-type stack
|
||
+.de Bd
|
||
+.ds mN Bd
|
||
+.ie \\n(.$==0 \{\
|
||
+.tm Usage: .Bd [-literal | -filled | -ragged | -unfilled] [-offset [string]] [-compact] (#\\n(.c)
|
||
+.\}
|
||
+.el \{\
|
||
+. ds aa
|
||
+. nr bV 0
|
||
+. nr iD 0
|
||
+. nr dP \\n(dP+1
|
||
+. if "\\$1"-literal" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. ds d\\n(dP dL
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. ie t \{\&\\*(lI
|
||
+' ta 9n 18n 27n 36n 45n 54n 63n 72n
|
||
+. \}
|
||
+. el \{\
|
||
+' ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
|
||
+. \}
|
||
+. nf
|
||
+. \}
|
||
+. if "\\$1"-filled" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. ds d\\n(dP dF
|
||
+. br
|
||
+. \}
|
||
+. if "\\$1"-ragged" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. ds d\\n(dP dR
|
||
+. na
|
||
+. \}
|
||
+. if "\\$1"-unfilled" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. ds d\\n(dP dU
|
||
+. nf
|
||
+. \}
|
||
+.\" .tm Here is argc: \\n(.$ and here is iD \\n(iD
|
||
+. if ((\\n(iD>=1)&(\\n(.$>\\n(iD)) \{\
|
||
+. bV \\$2 \\$3 \\$4
|
||
+. \}
|
||
+. if \\n(O\\n(dP>0 'in \\n(.iu+\\n(O\\n(dPu
|
||
+. if (\\n(bV==0) \{\
|
||
+. if (\\n(nS==0) \{\
|
||
+. ie "\\*(d\\n(dP"dR" .sp \\n(dVu
|
||
+. el 'sp \\n(dVu
|
||
+. \}
|
||
+. \}
|
||
+. if \\n(cR==0 .ne 2v
|
||
+. nr bV 0
|
||
+. nr iD 0
|
||
+.\}
|
||
+..
|
||
+.\" NS bV macro - resolve remaining .Bd arguments
|
||
+.de bV
|
||
+.\" .tm in bV with args: \\$1 \\$2 \\$3
|
||
+.nr iD 1
|
||
+.ds bY
|
||
+.if "\\$1"-offset" \{\
|
||
+. ds bY \\$2
|
||
+. if "\\*(bY"left" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. nr O\\n(dP 0
|
||
+. \}
|
||
+. if "\\*(bY"right" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. nr O\\n(dP (\\n(.l/3)u
|
||
+. \}
|
||
+. if "\\*(bY"center" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. nr O\\n(dP (\\n(.l-\\n(.i)/4u
|
||
+. \}
|
||
+. if "\\*(bY"indent" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. nr O\\n(dP \\n(dIu
|
||
+. \}
|
||
+. if "\\*(bY"indent-two" \{\
|
||
+. nr iD \\n(iD+1
|
||
+. nr O\\n(dP \\n(dIu+\\n(dIu
|
||
+. \}
|
||
+. if \\n(iD==1 \{\
|
||
+. nr iD \\n(iD+1
|
||
+. sW "\\*(bY"
|
||
+. ie \\n(sW>2 \{\
|
||
+. ie ((\\*(bY>9n)&(\\*(bY<100n)) \{\
|
||
+. nr O\\n(dP \\*(bY
|
||
+. \}
|
||
+. el .nr O\\n(dP (\\n(sW)*\\n(fWu
|
||
+. \}
|
||
+. el \{\
|
||
+. if \\n(sW==2 .aT \\*(bY
|
||
+. ie \\n(aT==1 \{\
|
||
+. nr O\\n(dP \\n(\\*(bY
|
||
+. \}
|
||
+. el .nr O\\n(dP \\*(bY
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.if "\\$1"-compact" \{\
|
||
+. nr bV 1
|
||
+.\}
|
||
+.if \\n(iD<\\n(.$ \{\
|
||
+. ie "\\*(bY"" \{\
|
||
+. bV \\$2 \\$3
|
||
+. \}
|
||
+. el \{\
|
||
+. bV \\$3
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS Ed macro - end display
|
||
+.de Ed
|
||
+.ds mN Ed
|
||
+.br
|
||
+.if \\n(dP==0 .tm mdoc: Extraneous .Ed
|
||
+.if "\\*(d\\n(dP"dL" \{\
|
||
+. ft \\n(cF
|
||
+. fz \\n(cZ
|
||
+.\}
|
||
+.in \\n(.iu-\\n(O\\n(dPu
|
||
+.rr O\\n(dP
|
||
+.rm d\\n(dP
|
||
+.nr dP \\n(dP-1
|
||
+.fi
|
||
+.if t .ad
|
||
+..
|
||
+.\"--------------------------------------------------------------------------
|
||
+.\" NS Bl macro - begin list (.Bl list-type)
|
||
+.\" NS L[0-9] registers - stack of list types
|
||
+.de Bl
|
||
+.ie \\n(.$==0 \{\
|
||
+.tm Usage: .Bl [[-hang | -tag] [-width]] [ -item | -enum | -bullet | -diag] (#\\n(.c)
|
||
+.\}
|
||
+.el \{\
|
||
+. ds mN Bl
|
||
+. nr aP 0
|
||
+. nr lC \\n(lC+1
|
||
+. ds A1 \\$2
|
||
+. ds A2 \\$3
|
||
+. ds A3 \\$4
|
||
+. ds A4 \\$5
|
||
+. ds A5 \\$6
|
||
+. ds A6 \\$7
|
||
+. ds A7 \\$8
|
||
+. ds A8 \\$9
|
||
+. nr fV \\n(.$-1
|
||
+. if "\\$1"-hang" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC hL
|
||
+. nr w\\n(lC 6n
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-tag" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC tL
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-item" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC iT
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-enum" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC nU
|
||
+. nr w\\n(lC 3n
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-bullet" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC bU
|
||
+. nr w\\n(lC 2n
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-dash" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC hU
|
||
+. nr w\\n(lC 2n
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-hyphen" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC hU
|
||
+. nr w\\n(lC 2n
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-inset" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC lL
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-diag" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC mL
|
||
+. nr mL 1
|
||
+. \}
|
||
+. if "\\$1"-ohang" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC oL
|
||
+. nr tC 1
|
||
+. \}
|
||
+. if "\\$1"-column" \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ds L\\n(lC cL
|
||
+. \}
|
||
+. ie \\n(aP==0 \{\
|
||
+. tm \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. tm Usage: .Bl [[-inset|-tag] -width] [-item|-enum|-bullet|-diag] (#\\n(.c)
|
||
+. \}
|
||
+. el \{\
|
||
+. tY
|
||
+. if (\\n(aP==1)&(\\n(aP<\\n(.$) \{\
|
||
+. nr aP 0
|
||
+. lV
|
||
+. if "\\*(L\\n(lC"cL" \{\
|
||
+. W\\n(wV
|
||
+. nr w\\n(lC 0
|
||
+' in -\\n(eWu
|
||
+. ie \\n(v\\n(lC==1 \{\
|
||
+. nr aa 0
|
||
+. \}
|
||
+. el \{\
|
||
+. sp \\n(dVu
|
||
+. \}
|
||
+. nf
|
||
+. nr wV 0
|
||
+. \}
|
||
+. \}
|
||
+. \}
|
||
+. nr aP 0
|
||
+.\" . ds b1
|
||
+. aY
|
||
+.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
|
||
+.\}
|
||
+..
|
||
+.if \n(.g \{\
|
||
+. nr i 10
|
||
+. while \ni<100 \{\
|
||
+. nr num!\nin 1
|
||
+. nr i +1
|
||
+. \}
|
||
+.\}
|
||
+.\" NS lV macro - resolve remaining .Bl arguments
|
||
+.de lV
|
||
+.nr aP \\n(aP+1
|
||
+.if \\n(fV>=\\n(aP \{\
|
||
+. nr iD 0
|
||
+. if "\\*(A\\n(aP"-compact" \{\
|
||
+. nr iD 1
|
||
+. nr v\\n(lC 1
|
||
+. \}
|
||
+. if "\\*(A\\n(aP"-width" \{\
|
||
+. nr iD 1
|
||
+. nr aP \\n(aP+1
|
||
+. nr tW 1
|
||
+. ds t\\n(lC TagwidtH
|
||
+. ds tS \\*(A\\n(aP
|
||
+. aW \\n(aP
|
||
+. ie \\n(sW>2 \{\
|
||
+. nr w\\n(lC (\\n(sW)*\\n(fWu
|
||
+. if \\n(sW==3 \{\
|
||
+. ie \\n(.g \{\
|
||
+. if \A'\\*(tS' .if r num!\\*(tS \{\
|
||
+. nr w\\n(lC \\*(tS
|
||
+. \}
|
||
+. \}
|
||
+. el \{\
|
||
+. if (\\*(tS>9n)&(\\*(tS<99n) \{\
|
||
+. nr w\\n(lC \\*(tSu
|
||
+. \}
|
||
+. \}
|
||
+. \}
|
||
+. \}
|
||
+. el \{\
|
||
+. aT \\*(tS
|
||
+. ie \\n(aT==1 \{\
|
||
+. nr w\\n(lC \\n(\\*(tS
|
||
+. \}
|
||
+. el \{\
|
||
+. nr w\\n(lC \\*(tSu
|
||
+. \}
|
||
+. \}
|
||
+. \}
|
||
+. if "\\*(A\\n(aP"-offset" \{\
|
||
+. nr iD 1
|
||
+. nr aP \\n(aP+1
|
||
+. ie "\\*(A\\n(aP"indent" \{\
|
||
+. nr o\\n(lC \\n(Dsu
|
||
+. \}
|
||
+. el \{\
|
||
+. ds tS \\*(A\\n(aP
|
||
+. aW \\n(aP
|
||
+. ie \\n(sW>2 \{\
|
||
+. nr o\\n(lC (\\n(sW)*\\n(fWu
|
||
+. ie \\n(.g \{\
|
||
+. if \A'\\*(tS' .if r num!\\*(tS \{\
|
||
+. nr o\\n(lC \\*(tS
|
||
+. \}
|
||
+. \}
|
||
+. el \{\
|
||
+. if (\\*(tS>9n)&(\\*(tS<100n) \{\
|
||
+. nr o\\n(lC \\*(tS
|
||
+. \}
|
||
+. \}
|
||
+. \}
|
||
+. el \{\
|
||
+. ie \\n(C\\n(aP==1 .nr o\\n(lC \\n(\\*(tS
|
||
+. el .nr o\\n(lC \\*(tS
|
||
+. \}
|
||
+. \}
|
||
+. \}
|
||
+. if \\n(iD==0 \{\
|
||
+. if "\\*(L\\n(lC"cL" \{\
|
||
+. nr wV \\n(wV+1
|
||
+. ds A\\n(wV \\*(A\\n(aP
|
||
+. \}
|
||
+. \}
|
||
+. if \\n(fV>\\n(aP .lV
|
||
+.\}
|
||
+..
|
||
+.\" NS El macro - end list
|
||
+.\" NS iD local register
|
||
+.de El
|
||
+.ie \\n(.$>0 \{\
|
||
+. tm Usage: .El (#\\n(.c)
|
||
+.\}
|
||
+.el \{\
|
||
+. ds mN El
|
||
+. nr iD 0
|
||
+. if "\\*(L\\n(lC"cL" \{\
|
||
+. nr iD 1
|
||
+. cC
|
||
+. \}
|
||
+. if "\\*(L\\n(lC"nU" \{\
|
||
+. nr nU 0
|
||
+. \}
|
||
+. if \\n(mL>0 \{\
|
||
+. nr iD 1
|
||
+. nr mL 0
|
||
+. tZ
|
||
+. nr lC \\n(lC-1
|
||
+. tY
|
||
+. \}
|
||
+. if "\\*(L\\n(lC"iT" \{\
|
||
+' in \\n(.iu-\\n(o\\n(lCu
|
||
+. tZ
|
||
+. nr lC \\n(lC-1
|
||
+. tY
|
||
+. nr iD 1
|
||
+. \}
|
||
+. if "\\*(L\\n(lC"oL" \{\
|
||
+' in \\n(.iu-\\n(o\\n(lCu
|
||
+. tZ
|
||
+. nr lC \\n(lC-1
|
||
+. tY
|
||
+. nr iD 1
|
||
+. \}
|
||
+. if "\\*(L\\n(lC"lL" \{\
|
||
+' in \\n(.iu-\\n(o\\n(lCu
|
||
+. tZ
|
||
+. nr lC \\n(lC-1
|
||
+. tY
|
||
+. nr iD 1
|
||
+. \}
|
||
+. if \\n(iD==0 \{\
|
||
+. lE
|
||
+. \}
|
||
+. br
|
||
+. nr iD 0
|
||
+.\}
|
||
+..
|
||
+.\" NS It macro - list item
|
||
+.\" NS iD local register
|
||
+.\" NS aA save pA font string for section FILES (no underline if nroff)
|
||
+.de It
|
||
+.if "\\*(L\\n(lC"" \{\
|
||
+. tm Usage .Bl -list-type [-width [string] | -compact | -offset [string]] (#\\n(.c)
|
||
+. tm .It \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
|
||
+.\}
|
||
+.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
|
||
+.ne 3v
|
||
+.ie \\n(.$>0 \{\
|
||
+. ds mN It
|
||
+. ds b1
|
||
+. nr iD 0
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. if "\\*(L\\n(lC"mL" \{\
|
||
+. nr iD 1
|
||
+. nr aP 0
|
||
+. aX
|
||
+. \\*(L\\n(lC
|
||
+. \}
|
||
+. if "\\*(L\\n(lC"cL" \{\
|
||
+. ds b1
|
||
+. nr aP 0
|
||
+. nr iD 1
|
||
+. \\*(L\\n(lC
|
||
+. \}
|
||
+. if "\\*(L\\n(lC"iT" \{\
|
||
+. nr aP 0
|
||
+. nr iD 1
|
||
+. \\*(L\\n(lC
|
||
+. \}
|
||
+. if \\n(iD==0 \{\
|
||
+. fV
|
||
+.\" tm ------------------------------------------------------------------------
|
||
+.\" tm It list-type==\\*(L\\n(lC, aP==\\n(aP
|
||
+.\" tm It beg arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
|
||
+. nr oM \\n(oM+1
|
||
+. nr tP 1
|
||
+. nr aP \\n(aP+1
|
||
+. nr tX \\n(C\\n(aP
|
||
+. ds tX \\*(A\\n(aP
|
||
+. if \\n(nF==1 \{\
|
||
+. ds aA \\*(pA
|
||
+. if n .ds pA \\*(nO
|
||
+. \}
|
||
+. ie \\n(C\\n(aP==1 \{\
|
||
+. \\*(A\\n(aP
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aP \\n(aP-1
|
||
+. No
|
||
+. \}
|
||
+.\" tm in It here is b1==\\*(b1
|
||
+.\" tm It mid arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
|
||
+. ie \\n(Xt==1 .ds xB \&\\*(L\\n(lC
|
||
+. el .\\*(L\\n(lC
|
||
+. \}
|
||
+. nr iD 0
|
||
+.\}
|
||
+.el .\\*(L\\n(lC
|
||
+..
|
||
+.\" NS lL macro - .It item of list-type inset
|
||
+.de lL
|
||
+.lY
|
||
+.br
|
||
+\&\\*(b1
|
||
+.nr oM \\n(oM-1
|
||
+.nr tP 0
|
||
+.ds b1
|
||
+.aY
|
||
+'fi
|
||
+..
|
||
+.\" NS hL macro - .It item of list-type hanging label (as opposed to tagged)
|
||
+.de hL
|
||
+.lX
|
||
+.nr bb \\n(w\\n(lCu+\\n(lSu
|
||
+.ti -\\n(bbu
|
||
+.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
|
||
+.el \&\\*(b1\h'|\\n(bbu'\c
|
||
+.nr oM \\n(oM-1
|
||
+.ds b1
|
||
+.nr tP 0
|
||
+.aY
|
||
+'fi
|
||
+..
|
||
+.\" NS oL macro - .It item of list-type overhanging label
|
||
+.de oL
|
||
+.lY
|
||
+\&\\*(b1
|
||
+.br
|
||
+.nr oM \\n(oM-1
|
||
+.ds b1
|
||
+.nr tP 0
|
||
+.aY
|
||
+'fi
|
||
+..
|
||
+.\" NS iT macro - .It item of list-type [empty label]
|
||
+.de iT
|
||
+.lY
|
||
+.br
|
||
+.\" .ds b1
|
||
+.aY
|
||
+'fi
|
||
+..
|
||
+.\" NS nU macro - Enumerated list
|
||
+.\" NS nU register count
|
||
+.\" NS hU macro - Hyphen paragraph list (sub bullet list)
|
||
+.\" NS bU macro - Bullet paragraph list
|
||
+.de nU
|
||
+.nr oM \\n(oM+1
|
||
+.nr nU \\n(nU+1
|
||
+.ds b1 \&\\n(nU.
|
||
+.uL
|
||
+..
|
||
+.de bU
|
||
+.nr oM \\n(oM+1
|
||
+.nr bU \\n(bU+1
|
||
+.ds b1 \&\\*(sY\&\(bu\fP
|
||
+.uL
|
||
+..
|
||
+.de hU
|
||
+.nr oM \\n(oM+1
|
||
+.nr bU \\n(bU+1
|
||
+.ds b1 \&\\*(sY\&\-\fP
|
||
+.uL
|
||
+..
|
||
+.\" NS uL macro - .It item of list-type enum/bullet/hyphen
|
||
+.de uL
|
||
+.lX
|
||
+.nr bb \\n(w\\n(lCu+\\n(lSu
|
||
+.ti -\\n(bbu
|
||
+.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
|
||
+.el \&\\*(b1\h'|\\n(bbu'\c
|
||
+.nr oM \\n(oM-1
|
||
+.\" .nr dZ \\n(dZ+1
|
||
+.ds b1
|
||
+.nr tP 0
|
||
+.aY
|
||
+'fi
|
||
+..
|
||
+.\" NS mL macro - .It item of list-type diagnostic-message
|
||
+.de mL
|
||
+.nr cF \\n(.f
|
||
+.nr cZ \\n(.s
|
||
+.ie \\n(mL==1 \{\
|
||
+. nr zB \\n(.c
|
||
+. ie (\\n(zB-\\n(zA)>1 .Pp
|
||
+. el .br
|
||
+. nr zA \\n(zB
|
||
+. nr zB 0
|
||
+.\}
|
||
+.el \{\
|
||
+. nr zA \\n(.c
|
||
+. br
|
||
+.\}
|
||
+\&\\*(sY\\*(b1\f\\n(cF\s\\n(cZ\\*(lS\c
|
||
+.aY
|
||
+.ds b1
|
||
+'fi
|
||
+..
|
||
+.\" NS tL macro - .It item of list-type "tag"
|
||
+.de tL
|
||
+.\" tm in tL here is b1==\\*(b1
|
||
+.if \\n(tW==0 .lW
|
||
+.lX
|
||
+.nr bb \\n(w\\n(lCu+\\n(lSu
|
||
+.ti -\\n(bbu
|
||
+.ie (\w\\*(b1u)>(\\n(w\\n(lCu) \{\&\\*(b1
|
||
+. br
|
||
+.\}
|
||
+.el \&\\*(b1\h'|\\n(bbu'\c
|
||
+.if \\n(nF==1 \{\
|
||
+. if n .ds pA \\*(aA
|
||
+.\}
|
||
+.nr oM \\n(oM-1
|
||
+.nr tP 0
|
||
+.\" .nr dZ \\n(dZ+1
|
||
+.ds b1
|
||
+.aY
|
||
+'fi
|
||
+..
|
||
+.\" NS lW macro - resolve unknown label/tag width (if .Bl [inset | tag] only)
|
||
+.de lW
|
||
+.if !"TagwidtH"\\*(t\\n(lC" \{\
|
||
+. ie \\n(tX==1 \{\
|
||
+. ds t\\n(lN \\*(tX
|
||
+. nr w\\n(lN \\n(\\*(tX
|
||
+. \}
|
||
+. el \{\
|
||
+. ds t\\n(lN No
|
||
+. nr w\\n(lN \\n(No
|
||
+. \}
|
||
+. if !"\\*(t\\n(lC"\\*(t\\n(lN" .nr tC 1
|
||
+.\}
|
||
+..
|
||
+.\" NS lX macro - set up vertical spacing (if compact) and offset+indent (all)
|
||
+.de lX
|
||
+.ie \\n(tC \{\
|
||
+. nr tC 0
|
||
+. nr tW 0
|
||
+. if \\n(v\\n(lC==0 .sp \\n(dVu
|
||
+. in \\n(.iu+\\n(w\\n(lCu+\\n(o\\n(lCu+\\n(lSu
|
||
+.\}
|
||
+.el \{\
|
||
+. ie \\n(v\\n(lC==1 \{\
|
||
+. nr aa 0
|
||
+. \}
|
||
+. el \{\
|
||
+. sp \\n(dVu
|
||
+. \}
|
||
+.\}
|
||
+.if !\\n(cR .ne 2v
|
||
+..
|
||
+.\" NS lY macro - set up vertical spacing (if compact) and offset+indent (all)
|
||
+.de lY
|
||
+.ie \\n(tC \{\
|
||
+. nr tC 0
|
||
+. nr tW 0
|
||
+. if \\n(v\\n(lC==0 .sp \\n(dVu
|
||
+. in \\n(.iu+\\n(o\\n(lCu
|
||
+.\}
|
||
+.el \{\
|
||
+. ie \\n(v\\n(lC==1 \{\
|
||
+. nr aa 0
|
||
+. \}
|
||
+. el \{\
|
||
+. sp \\n(dVu
|
||
+. \}
|
||
+.\}
|
||
+.if !\\n(cR .ne 2v
|
||
+..
|
||
+.\" NS tS temporary string
|
||
+.\" NS hL macro - hanging list function
|
||
+.\" NS tS temporary string
|
||
+.\" NS hL macro - hanging list function
|
||
+.\" NS lT macro - tagged list function
|
||
+.\" NS lE macro - list end function
|
||
+.\" NS tX string (initial string)
|
||
+.\" NS tX register (initial class)
|
||
+.\" NS tC parameter change flag
|
||
+.\" NS Xt save current list-type flag
|
||
+.\" NS lC register - list type stack counter
|
||
+.\" NS tP register tag flag (for diversions)
|
||
+.\" NS w[0-9] register tag stack (nested tags)
|
||
+.\" NS t[0-9] register tag string stack (nested tags)
|
||
+.\" NS o[0-9] register offset stack (nested tags)
|
||
+.\" NS v[0-9] register vertical tag break stack
|
||
+.\" NS h[0-9] register horizontal tag stack (continuous if 1, break if 0)
|
||
+.nr lC 0
|
||
+.nr wV 0
|
||
+.nr w1 0
|
||
+.nr o1 0
|
||
+.nr v1 0
|
||
+.nr h1 0
|
||
+.ds t\n(lC
|
||
+.de lE
|
||
+.\" IN lC o[\\n(lC]==\\n(o\\n(lC, w[\\n(lC]==\\n(w\\n(lC,
|
||
+.ie \\n(o\\n(lC>0 \{\
|
||
+' in \\n(.iu-(\\n(w\\n(lCu)-(\\n(o\\n(lCu)-\\n(lSu
|
||
+. rr o\\n(lC
|
||
+.\}
|
||
+.el 'in \\n(.iu-\\n(w\\n(lCu-\\n(lSu
|
||
+.if \\n(lC<=0 .tm Extraneous .El call (#\\n(.c)
|
||
+.tZ
|
||
+.nr lC \\n(lC-1
|
||
+.tY
|
||
+..
|
||
+.\" NS tY macro - set up next block for list
|
||
+.\" NS tZ macro - decrement stack
|
||
+.\" NS tY register (next possible lC value)
|
||
+.de tY
|
||
+.nr tY (\\n(lC+1)
|
||
+.nr w\\n(tY 0
|
||
+.nr h\\n(tY 0
|
||
+.nr o\\n(tY 0
|
||
+.ds t\\n(tY \\*(t\\n(lC
|
||
+.ds L\\n(tY
|
||
+.nr v\\n(tY 0
|
||
+..
|
||
+.de tZ
|
||
+.rm L\\n(tY
|
||
+.rr w\\n(tY
|
||
+.rr h\\n(tY
|
||
+.rr o\\n(tY
|
||
+.rm t\\n(tY
|
||
+.rr v\\n(tY
|
||
+.nr tY \\n(tY-1
|
||
+..
|
||
+.\" initial values
|
||
+.nr w1 0
|
||
+.nr o1 0
|
||
+.nr h1 0
|
||
+.ds t1
|
||
+.nr v1 0
|
||
+.nr tY 1
|
||
+.\" NS Xr macro - cross reference (man page only)
|
||
+.de Xr
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Xr
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(C\\n(aP==1 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ie \\n(C\\n(aP>2 .y\\n(C\\n(aP
|
||
+. el \{\
|
||
+. as b1 \&\\*(xR\\*(A\\n(aP\fP\s0
|
||
+. if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. if \\n(C\\n(aP==2 \{\
|
||
+. as b1 \&(\\*(A\\n(aP)
|
||
+. nr aP \\n(aP+1
|
||
+. \}
|
||
+. if \\n(aC>=\\n(aP \{\
|
||
+. c\\n(C\\n(aP
|
||
+. \}
|
||
+. \}
|
||
+. \}
|
||
+. aZ
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS Sx macro - cross section reference
|
||
+.de Sx
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Sx Usage: .Sx Section Header \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Sx
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. as b1 \\*(sX
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS cC macro - column-list end-list
|
||
+.\" NS eW macro - column indent width
|
||
+.\" NS cI register - column indent width
|
||
+.\" NS W[1-5] macro - establish tabs for list-type column
|
||
+.de cC
|
||
+'in \\n(.iu-\\n(o\\n(lCu-\\n(w\\n(lCu
|
||
+.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
|
||
+.fi
|
||
+.tZ
|
||
+.nr lC \\n(lC-1
|
||
+.tY
|
||
+..
|
||
+.de W1
|
||
+.ta \w\\*(A1 u
|
||
+.nr eW \w\\*(A1 u
|
||
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
|
||
+..
|
||
+.de W2
|
||
+.ta \w\\*(A1 u +\w\\*(A2 u
|
||
+.nr eW \w\\*(A1 u+\w\\*(A2 u
|
||
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
|
||
+..
|
||
+.de W3
|
||
+.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u
|
||
+.nr eW \w\\*(A1 u+\w\\*(A2 u+\w\\*(A3 u
|
||
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
|
||
+..
|
||
+.de W4
|
||
+.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u
|
||
+.nr eW \w\\*(A1 u+\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u
|
||
+'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
|
||
+..
|
||
+.de W5
|
||
+.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u
|
||
+.nr eW \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u
|
||
+' in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
|
||
+..
|
||
+.\" This is packed abnormally close, intercol width should be an option
|
||
+.de W6
|
||
+.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
|
||
+.nr eW \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
|
||
+' in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
|
||
+..
|
||
+.\" NS cL macro - column items
|
||
+.de cL
|
||
+.if \\n(w\\n(lC==0 .nr w\\n(lC \\n(eWu
|
||
+.if \\n(.u==0 \{\
|
||
+. fi
|
||
+' in \\n(.iu+\\n(eWu
|
||
+.\}
|
||
+.ti -\\n(eWu
|
||
+.fV
|
||
+.nr aP \\n(aP+1
|
||
+.ie \\n(aC>=\\n(aP \{\
|
||
+. if "\\*(A\\n(aP"Ta" \{\
|
||
+. nr jJ \\n(aP-1
|
||
+. rm S\\n(jJ
|
||
+. rr jJ
|
||
+. \}
|
||
+. c\\n(C\\n(aP
|
||
+.\}
|
||
+.el .tm Usage: .It column_string [Ta [column_string ...] ] (#\\n(.c)
|
||
+..
|
||
+.\" NS Ta macro - append tab (\t)
|
||
+.de Ta
|
||
+.ie \\n(aC>0 \{\
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(aC>=\\n(aP \{\
|
||
+. if "\\*(A\\n(aP"Ta" \{\
|
||
+. nr jJ \\n(aP-1
|
||
+. rm S\\n(jJ
|
||
+. rr jJ
|
||
+. \}
|
||
+. as b1 \\t
|
||
+. c\\n(C\\n(aP
|
||
+. \}
|
||
+. el \{\
|
||
+. as b1 \\t\\c
|
||
+. rm S\\n(aP
|
||
+. pB
|
||
+. aY
|
||
+.\" . ds b1
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. tm Usage: Ta must follow column entry: e.g. (#\\n(.c)
|
||
+. tm .It column_string [Ta [column_string ...] ]
|
||
+.\}
|
||
+..
|
||
+.\"
|
||
+.\" NS Dl macro - display (one line) literal
|
||
+.de Dl
|
||
+'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
|
||
+.in \\n(.iu+\\n(Dsu
|
||
+.ie \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \{\
|
||
+. tm Usage: .Dl argument ... (#\\n(.c)
|
||
+. \}
|
||
+. el \{\
|
||
+. ds mN Dl
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. Li
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. tm Usage: .Dl not callable by other macros (#\\n(.c)
|
||
+.\}
|
||
+.in \\n(.iu-\\n(Dsu
|
||
+..
|
||
+.\"
|
||
+.\" NS D1 macro - display (one line)
|
||
+.de D1
|
||
+'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
|
||
+.in \\n(.iu+\\n(Dsu
|
||
+.ie \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 \{\
|
||
+. tm Usage: .D1 argument ... (#\\n(.c)
|
||
+. \}
|
||
+. el \{\
|
||
+. ds mN D1
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. nr aP \\n(aP+1
|
||
+. ie \\n(C\\n(aP==1 .\\*(A\\n(aP
|
||
+. el .No
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. tm Usage: .D1 not callable by other macros (#\\n(.c)
|
||
+.\}
|
||
+.in \\n(.iu-\\n(Dsu
|
||
+..
|
||
+.\" NS Ex macro - DEFUNCT
|
||
+.de Ex
|
||
+.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\"
|
||
+.\" NS Ex macro - DEFUNCT
|
||
+.de Ex
|
||
+.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+..
|
||
+.\"
|
||
+.\" NS Vt macro - Variable type (for forcing old style variable declarations)
|
||
+.\" this is not done in the same manner as .Ot for fortrash - clean up later
|
||
+.de Vt
|
||
+.\" if a function declaration was the last thing given, want vertical space
|
||
+.if \\n(fD>0 \{\
|
||
+. Pp
|
||
+. nr fD 0
|
||
+.\}
|
||
+.\" if a subroutine was the last thing given, want vertical space
|
||
+.if \\n(fZ>0 \{\
|
||
+. ie \\n(fX==0 \{\
|
||
+. Pp
|
||
+. rs
|
||
+. \}
|
||
+. el .br
|
||
+.\}
|
||
+.nr fX \\n(fX+1
|
||
+.nr cF \\n(.f
|
||
+.nr cZ \\n(.s
|
||
+\\*(fT\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+.ie \\n(oT==0 .br
|
||
+.el \&\ \&
|
||
+.ft \\n(cF
|
||
+.fs \\n(cZ
|
||
+..
|
||
+.\"
|
||
+.\" NS Ft macro - Function type
|
||
+.nr fZ 0
|
||
+.de Ft
|
||
+.if \\n(nS>0 \{\
|
||
+. if \\n(fZ>0 \{\
|
||
+. Pp
|
||
+. nr fD 0
|
||
+. nr fX 0
|
||
+. \}
|
||
+. if \\n(fD>0 \{\
|
||
+. Pp
|
||
+. nr fD 0
|
||
+. nr fX 0
|
||
+. \}
|
||
+. if \\n(fX>0 \{\
|
||
+. Pp
|
||
+. nr fX 0
|
||
+. \}
|
||
+. nr fY 1
|
||
+.\}
|
||
+.nr cF \\n(.f
|
||
+.nr cZ \\n(.s
|
||
+\&\\*(fT\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+.ft \\n(cF
|
||
+.fs \\n(cZ
|
||
+.\" .br
|
||
+..
|
||
+.\"
|
||
+.\" NS Ot macro - Old Function type (fortran - no newline)
|
||
+.\" Ns oT register
|
||
+.nr oT 0
|
||
+.de Ot
|
||
+.nr oT 1
|
||
+.if \\n(nS>0 \{\
|
||
+. if \\n(fZ>0 \{\
|
||
+. Pp
|
||
+. nr fD 0
|
||
+. nr fX 0
|
||
+. \}
|
||
+. if \\n(fD>0 \{\
|
||
+. Pp
|
||
+. nr fD 0
|
||
+. nr fX 0
|
||
+. \}
|
||
+. if \\n(fX>0 \{\
|
||
+. Pp
|
||
+. nr fX 0
|
||
+. \}
|
||
+. nr fY 1
|
||
+.\}
|
||
+.if \\n(.$==4 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3 \\$4
|
||
+.if \\n(.$==3 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3
|
||
+.if \\n(.$==2 .as b1 \&\\*(fT\&\\$1 \\$2
|
||
+.if \\n(.$==1 .as b1 \&\\*(fT\&\\$1
|
||
+.as b1 \&\ \fP
|
||
+..
|
||
+.\"
|
||
+.\" NS Fa macro - Function arguments
|
||
+.de Fa
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Fa Function Arguments ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Fa
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.ie \\n(fC>0 \{\
|
||
+. fC
|
||
+.\}
|
||
+.el \{\
|
||
+. if \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(fA
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+. if \\n(nS>0 \{\
|
||
+. if \\n(fZ>0 .br
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\" NS fC macro - interal .Fa for .FO and .Fc
|
||
+.de fC
|
||
+.ie \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+.\" . nr aa \\n(aP
|
||
+.\" . if \\n(nS>0 \{\
|
||
+. ds Fb
|
||
+. nr fB 0
|
||
+. nr Fb 0
|
||
+. fB \\*(A\\n(aP
|
||
+. if \\n(fB>1 \{\
|
||
+. rm A\\n(aP
|
||
+. rn Fb A\\n(aP
|
||
+. \}
|
||
+.\" . \}
|
||
+. if \\n(fC>1 \{\
|
||
+. as b1 \&\f\\n(cF\s\\n(cZ,\\*(S\\n(aP\\*(fA\\*(A\\n(aP\fP\s0
|
||
+.\" . as b1 \&\\,\\*(S\\n(aP\fP\s0\\*(fA\\*(A\\n(aP\fP\s0
|
||
+. \}
|
||
+. if \\n(fC==1 \{\
|
||
+. as b1 \&\|\\*(fA\\*(A\\n(aP\fP\s0
|
||
+. \}
|
||
+. nr fC \\n(fC+1
|
||
+. fC
|
||
+.\}
|
||
+.el \{\
|
||
+. aY
|
||
+.\}
|
||
+..
|
||
+.\" NS Fn macro - functions
|
||
+.\" NS fY register - dick with old style function declarations (fortran)
|
||
+.\" NS fZ register - break a line when more than one function in a synopsis
|
||
+.\"
|
||
+.de Fn
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Fn function_name function_arg(s) ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN Fn
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(nS>0 \{\
|
||
+.\" if there is/has been more than one subroutine declaration
|
||
+. if \\n(fY==0 \{\
|
||
+. if \\n(fZ>0 \{\
|
||
+. Pp
|
||
+. nr fX 0
|
||
+. nr fD 0
|
||
+. \}
|
||
+. \}
|
||
+. if \\n(fY==1 \{\
|
||
+. br
|
||
+. nr fX 0
|
||
+. nr fD 0
|
||
+. nr fY 0
|
||
+. \}
|
||
+. if \\n(fD>0 \{\
|
||
+. Pp
|
||
+. nr fX 0
|
||
+. \}
|
||
+. if \\n(fX>0 \{\
|
||
+. Pp
|
||
+. nr fD 0
|
||
+. \}
|
||
+. nr fZ \\n(fZ+1
|
||
+. nr fY 0
|
||
+. rs
|
||
+. ie \\n(nS>1 .br
|
||
+. el \{\
|
||
+. if \\n(iS==0 \{\
|
||
+. nr iS ((8)*\\n(fW)u
|
||
+. \}
|
||
+. \}
|
||
+. in +\\n(iSu
|
||
+. ti -\\n(iSu
|
||
+. nr nS \\n(nS+1
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
|
||
+. ie \\n(aC>\\n(aP \{\
|
||
+. as b1 \\*(fA
|
||
+. nr aP \\n(aP+1
|
||
+. f\\n(C\\n(aP
|
||
+. \}
|
||
+. el \{\
|
||
+. as b1 \|\\*(rp
|
||
+. aZ
|
||
+. \}
|
||
+. if \\n(nS>0 \{\
|
||
+. in -\\n(iSu
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
+.\"
|
||
+.\" NS f1 macro - class switch
|
||
+.\" NS f2 macro - handle function arguments
|
||
+.\" NS f3 macro - punctuation
|
||
+.\" NS f4 macro - write out function
|
||
+.de f1
|
||
+.as b1 \\*(rp\f\\n(cF\s\\n(cZ
|
||
+.\\*(A\\n(aP
|
||
+..
|
||
+.de f2
|
||
+.if \\n(nS>0 \{\
|
||
+. ds Fb
|
||
+. nr fB 0
|
||
+. nr Fb 0
|
||
+. fB \\*(A\\n(aP
|
||
+. if \\n(fB>1 \{\
|
||
+. rm A\\n(aP
|
||
+. rn Fb A\\n(aP
|
||
+. \}
|
||
+.\}
|
||
+.as b1 \\*(A\\n(aP
|
||
+.ie \\n(aC>\\n(aP \{\
|
||
+. nr aa \\n(aP
|
||
+. nr aP \\n(aP+1
|
||
+. if \\n(C\\n(aP==2 \{\
|
||
+. as b1 \&\|\f\\n(cF\s\\n(cZ,\\*(S\\n(aa\fP\s0\|
|
||
+. \}
|
||
+. f\\n(C\\n(aP
|
||
+.\}
|
||
+.el \{\
|
||
+. as b1 \\*(rp\f\\n(cF\s\\n(cZ
|
||
+. aZ
|
||
+.\}
|
||
+..
|
||
+.de f3
|
||
+.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP
|
||
+.ie \\n(aC>\\n(aP \{\
|
||
+. No
|
||
+.\}
|
||
+.el .aZ
|
||
+..
|
||
+.de f4
|
||
+.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP
|
||
+.ie \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. No
|
||
+.\}
|
||
+.el .aZ
|
||
+..
|
||
+.de Fo
|
||
+.hy 0
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .Fo function_name
|
||
+. el \{\
|
||
+. ds mN Fo
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(nS>0 \{\
|
||
+.\" if there is/has been more than one subroutine declaration
|
||
+. if \\n(fY==0 \{\
|
||
+. if \\n(fZ>0 \{\
|
||
+. Pp
|
||
+. nr fX 0
|
||
+. nr fD 0
|
||
+. \}
|
||
+. \}
|
||
+. if \\n(fY==1 \{\
|
||
+. br
|
||
+. nr fX 0
|
||
+. nr fD 0
|
||
+. nr fY 0
|
||
+. \}
|
||
+. if \\n(fD>0 \{\
|
||
+. Pp
|
||
+. nr fX 0
|
||
+. \}
|
||
+. if \\n(fX>0 \{\
|
||
+. Pp
|
||
+. nr fD 0
|
||
+. \}
|
||
+. nr fZ \\n(fZ+1
|
||
+. nr fY 0
|
||
+. rs
|
||
+. ie \\n(nS>1 .br
|
||
+. el \{\
|
||
+. if \\n(iS==0 \{\
|
||
+. nr iS ((8)*\\n(fW)u
|
||
+. \}
|
||
+. \}
|
||
+. in +\\n(iSu
|
||
+. ti -\\n(iSu
|
||
+. nr nS \\n(nS+1
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr oM \\n(oM+1
|
||
+. nr fC 1
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
|
||
+. aY
|
||
+.\}
|
||
+..
|
||
+.de Fc
|
||
+.if \\n(aC==0 \{\
|
||
+. if \\n(.$>0 \{\
|
||
+. ds mN Fo
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.nr fC 0
|
||
+.nr oM \\n(oM-1
|
||
+.as b1 \|\\*(rp
|
||
+.ie \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. \\*(A\\n(aP
|
||
+.\}
|
||
+.el \{\
|
||
+. aZ
|
||
+.\}
|
||
+.if \\n(nS>0 \{\
|
||
+. in -\\n(iSu
|
||
+.\}
|
||
+.hy
|
||
+..
|
||
+.\" NS fb macro - if SYNOPSIS, set hard space inbetween function args
|
||
+.\" NS fb register - count of words in a function argument
|
||
+.\" NS Fb register - counter
|
||
+.\" NS Fb string - temporary string
|
||
+.de fB
|
||
+.\" .tm fB==\\n(fB, Fb==\\n(Fb, 1==\\$1 2==\\$2 3==\\$3 4==\\$4 5==\\$5 6==\\$6
|
||
+.if \\n(fB==0 \{\
|
||
+. nr fB \\n(.$
|
||
+. nr Fb 0
|
||
+. ds Fb
|
||
+.\}
|
||
+.nr Fb \\n(Fb+1
|
||
+.as Fb \&\\$1
|
||
+.if \\n(Fb<\\n(fB \{\
|
||
+. as Fb \&\\*(hV
|
||
+. fB \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+.\}
|
||
+..
|
||
+.\" NS Fc - Function close - not implemented yet
|
||
+.\" NS Fo - Function open - not implemented yet
|
||
+.\"
|
||
+.\" Very crude references, stash all reference info into strings (usual
|
||
+.\" use of b1 buffer, then b1 contents copied to string of retrievable
|
||
+.\" naming convention), print out reference on .Re request and clean up.
|
||
+.\" Ordering very limited, no fancy citations, but can do articles, journals
|
||
+.\" and books - need to add several missing options (like city etc).
|
||
+.\" should be able to grab a refer entry, massage it a wee bit (prefix
|
||
+.\" a `.' to the %[A-Z]) and not worry (ha!)
|
||
+.\"
|
||
+.\" NS Rs macro - Reference Start
|
||
+.\" NS rS register - Reference Start flag
|
||
+.\" NS rS string - Reference Start buffer name for next save (of b1 buffer)
|
||
+.de Rs
|
||
+.nr rS 1
|
||
+.rC
|
||
+.if \\n(nA==1 .Pp
|
||
+.nr Kl 0
|
||
+..
|
||
+.\" NS Re macro - Reference End
|
||
+.de Re
|
||
+.rZ
|
||
+.rC
|
||
+.nr rS 0
|
||
+..
|
||
+.\" NS rC macro - reference cleanup
|
||
+.de rC
|
||
+.nr uK 0
|
||
+.nr jK 0
|
||
+.nr nK 0
|
||
+.nr oK 0
|
||
+.nr qK 0
|
||
+.nr rK 0
|
||
+.nr tK 0
|
||
+.nr vK 0
|
||
+.nr dK 0
|
||
+.nr pK 0
|
||
+.nr bK 0
|
||
+.ds rS
|
||
+.rm U1 U2 U3 U4 U5 U6 U7 U8
|
||
+.rm uK jK nK oK rK qK tK vK dK pK bK
|
||
+..
|
||
+.\" NS rZ macro - reference print
|
||
+.de rZ
|
||
+.if \\n(uK \{\&\\*(U1,
|
||
+. nr aK 1
|
||
+. if (\\n(uK>1 \{\
|
||
+. aK
|
||
+. \}
|
||
+. nr Kl -\\n(uK
|
||
+.\}
|
||
+.if \\n(tK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \{\
|
||
+. ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q.
|
||
+. \}
|
||
+. el \{\&\\*(eM\\*(tK\\*(nO.
|
||
+. \}
|
||
+. \}
|
||
+. if \\n(Kl>0 \{\
|
||
+. ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q,
|
||
+. \}
|
||
+. el \{\&\\*(eM\\*(tK\\*(nO,
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(bK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(eM\\*(bK\\*(nO.
|
||
+. if \\n(Kl>0 \&\\*(eM\\*(bK\\*(nO,
|
||
+.\}
|
||
+.if \\n(jK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(eM\\*(jK\\*(nO.
|
||
+. if \\n(Kl>0 \&\\*(eM\\*(jK\\*(nO,
|
||
+.\}
|
||
+.if \\n(rK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(rK.
|
||
+. if \\n(Kl>0 \&\\*(rK,
|
||
+.\}
|
||
+.if \\n(nK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(nK.
|
||
+. if \\n(Kl>0 \&\\*(nK,
|
||
+.\}
|
||
+.if \\n(vK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(vK.
|
||
+. if \\n(Kl>0 \&\\*(vK,
|
||
+.\}
|
||
+.if \\n(pK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(pK.
|
||
+. if \\n(Kl>0 \&\\*(pK,
|
||
+.\}
|
||
+.if \\n(qK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(qK.
|
||
+. if \\n(Kl>0 \&\\*(qK,
|
||
+.\}
|
||
+.if \\n(dK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(dK.
|
||
+. if \\n(Kl>0 \&\\*(dK,
|
||
+.\}
|
||
+.if \\n(oK \{\
|
||
+. nr Kl \\n(Kl-1
|
||
+. if \\n(Kl==0 \&\\*(oK.
|
||
+. if \\n(Kl>0 \&\\*(oK,
|
||
+.\}
|
||
+.if \\n(Kl>0 .tm unresolved reference problem
|
||
+..
|
||
+.\" NS aK macro - print out reference authors
|
||
+.de aK
|
||
+.nr aK \\n(aK+1
|
||
+.ie (\\n(uK-\\n(aK)==0 \{\&and \\*(U\\n(aK,
|
||
+.\}
|
||
+.el \{\&\\*(U\\n(aK,
|
||
+. aK
|
||
+.\}
|
||
+..
|
||
+.\" NS %A macro - reference author(s)
|
||
+.\" NS uK register - reference author(s) counter
|
||
+.\" NS U[1-9] strings - reference author(s) names
|
||
+.de %A
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%A Author_name (#\\n(.c)
|
||
+. el \{\
|
||
+. nr uK \\n(uK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS U\\n(uK
|
||
+. ds mN %A
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %B macro - [reference] Book Name
|
||
+.\" NS bK string - Book Name
|
||
+.\" NS bK register - Book Name flag
|
||
+.de %B
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%B Book Name (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %B
|
||
+. if \\n(rS>0 \{\
|
||
+. nr bK \\n(bK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS bK
|
||
+. \}
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. ie \\n(rS==0 \{\
|
||
+. as b1 \&\\*(eM
|
||
+. nR
|
||
+. \}
|
||
+. el .rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %D macro - [reference] Date
|
||
+.\" NS dK string - Date String
|
||
+.\" NS dK register - Date flag
|
||
+.de %D
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%D Date (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %D
|
||
+. nr dK \\n(dK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS dK
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %J macro - [reference] Journal Name
|
||
+.\" NS jK register - [reference] Journal Name flag
|
||
+.\" NS jK string - [reference] Journal Name
|
||
+.de %J
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%J Journal Name (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %J
|
||
+. nr jK \\n(jK+1
|
||
+. ds rS jK
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %N macro - [reference] issue number
|
||
+.\" NS nK register - [reference] issue number flag
|
||
+.\" NS nK string - [reference] issue number
|
||
+.de %N
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%N issue number (#\\n(.c)
|
||
+. el \{\
|
||
+. nr nK \\n(nK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS nK
|
||
+. ds mN %N
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %O macro - [reference] optional information
|
||
+.\" NS oK register - [reference] optional information flag
|
||
+.\" NS oK string - [reference] optional information
|
||
+.de %O
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%O optional information ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %O
|
||
+. nr oK \\n(oK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS oK
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %P macro - [reference] page numbers
|
||
+.\" NS pK register - [reference] page number flag
|
||
+.\" NS pK string - [reference] page number
|
||
+.de %P
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%P page numbers ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %P
|
||
+. nr pK \\n(pK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS pK
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %Q macro - Corporate or Foreign Author
|
||
+.\" NS qK string - Corporate or Foreign Author
|
||
+.\" NS qK register - Corporate or Foreign Author flag
|
||
+.de %Q
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%Q Corporate or Foreign Author (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %Q
|
||
+. nr qK \\n(qK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS qK
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %R macro - [reference] report name
|
||
+.\" NS rK string - [reference] report name
|
||
+.\" NS rK register - [reference] report flag
|
||
+.de %R
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%R reference report (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %R
|
||
+. nr rK \\n(rK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS rK
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS %T macro - reference title
|
||
+.\" NS tK string - reference title
|
||
+.\" NS tK register - reference title flag
|
||
+.de %T
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%T (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %T
|
||
+. if \\n(rS>0 \{\
|
||
+. nr tK \\n(tK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS tK
|
||
+. \}
|
||
+. ds A1 \\$1
|
||
+. ds A2 \\$2
|
||
+. ds A3 \\$3
|
||
+. ds A4 \\$4
|
||
+. ds A5 \\$5
|
||
+. ds A6 \\$6
|
||
+. ds A7 \\$7
|
||
+. ds A8 \\$8
|
||
+. ds A9 \\$9
|
||
+. nr fV \\n(.$
|
||
+. fV
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+.\" . ie \\n(jS==1 \{\
|
||
+.\" . nr cF \\n(.f
|
||
+.\" . nr cZ \\n(.s
|
||
+.\" . ds qL \&\\*(Lq\\*(rA
|
||
+.\" . ds qR \&\\*(Rq\f\\n(cF\s\\n(cZ
|
||
+.\" . En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+.\" . \}
|
||
+.\" . el \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. ie \\n(rS==0 \{\
|
||
+. as b1 \&\\*(eM
|
||
+. nR
|
||
+. \}
|
||
+. el .rR
|
||
+.\" . \}
|
||
+.\}
|
||
+..
|
||
+.\" NS %V macro - reference volume
|
||
+.\" NS vK string - reference volume
|
||
+.\" NS vK register - reference volume flag
|
||
+.de %V
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .%V Volume , ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN %V
|
||
+. nr vK \\n(vK+1
|
||
+. nr Kl \\n(Kl+1
|
||
+. ds rS vK
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. rR
|
||
+.\}
|
||
+..
|
||
+.\" NS rR macro - reference recursion routine
|
||
+.\" NS jM local register
|
||
+.\" NS jN local register
|
||
+.de rR
|
||
+.hy 0
|
||
+.nr jM \\n(C\\n(aP
|
||
+.ie \\n(jM==1 \{\
|
||
+.\" . as b1 \&\f\\n(cF\s\\n(cZ
|
||
+. ie "\\*(A\\n(aP"Tn" \{\
|
||
+. nN
|
||
+. \}
|
||
+. el \{\
|
||
+. if \\n(aC>8 .tm Usage: \\*(mN - maximum 8 arguments (#\\n(.c)
|
||
+. aI rR 1
|
||
+. \\*(A\\n(aP
|
||
+. \}
|
||
+.\}
|
||
+.el \{\
|
||
+. nr jN \\n(aP
|
||
+. ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
|
||
+. el .as b1 \&\\*(A\\n(aP
|
||
+.\" . el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
|
||
+. ie \\n(aC==\\n(aP \{\
|
||
+.\" . as b1 \&\f\\n(cF\s\\n(cZ
|
||
+. rD
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aP \\n(aP+1
|
||
+. as b1 \&\\*(S\\n(jN
|
||
+. rR
|
||
+. \}
|
||
+.\}
|
||
+.rr jM jN
|
||
+..
|
||
+.\" NS rD macro - save b1 buffer in to appropriate name
|
||
+.de rD
|
||
+.as \\*(rS \\*(b1
|
||
+.ds b1
|
||
+.ds rS
|
||
+.aY
|
||
+..
|
||
+.\" NS Hf macro - source include header files.
|
||
+.de Hf
|
||
+.Pp
|
||
+File:
|
||
+.Pa \\$1
|
||
+.Pp
|
||
+.nr cF \\n(.f
|
||
+.nr cZ \\n(.s
|
||
+.ie t \{\
|
||
+\&\\*(lI
|
||
+.br
|
||
+.ta +9n 18n 27n 36n 45n 54n 63n 72n
|
||
+.\}
|
||
+.el \{\
|
||
+.ta +8n 16n 24n 32n 40n 48n 56n 64n 72n
|
||
+.\}
|
||
+.nf
|
||
+.so \\$1
|
||
+.fi
|
||
+.ft \\n(cF
|
||
+.fz \\n(cZ
|
||
+.Pp
|
||
+..
|
||
+.\" NS An macro - author name
|
||
+.\" NS aN register
|
||
+.nr aN 0
|
||
+.de An
|
||
+.if \\n(nY==1 \{\
|
||
+. ie \\n(aN==1 \{\
|
||
+. br
|
||
+. \}
|
||
+. el \{\
|
||
+. nr aN 1
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC==0 \{\
|
||
+. ie \\n(.$==0 .tm Usage: .An author_name ... \\*(Pu (#\\n(.c)
|
||
+. el \{\
|
||
+. ds mN An
|
||
+. aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
|
||
+. \}
|
||
+.\}
|
||
+.if \\n(aC>\\n(aP \{\
|
||
+. nr aP \\n(aP+1
|
||
+. nr cF \\n(.f
|
||
+. nr cZ \\n(.s
|
||
+. nR
|
||
+.\}
|
||
+..
|
||
+.\" NS Sf macro -defunct
|
||
+.de Sf
|
||
+.tm .Sf defunct, use prefix or Ns
|
||
+..
|
||
+.ds rV "function returns the value 0 if successful; otherwise the value -1 is returned and the global variable \\*(vAerrno\fP is set to indicate the error.
|
||
+.\" Ns Rv macro - return values
|
||
+.\" Ns rV string - standard return message
|
||
+.de Rv
|
||
+.ie \\n(.$==0 \{\
|
||
+.tm Usage: .Rv [-std] (#\\n(.c)
|
||
+.\}
|
||
+.el \{\
|
||
+. ds mN Rv
|
||
+.\" . nr aP 0
|
||
+.\" . nr lR \\n(lR+1
|
||
+.\" . ds A1 \\$2
|
||
+.\" . ds A2 \\$3
|
||
+.\" . ds A3 \\$4
|
||
+.\" . ds A4 \\$5
|
||
+.\" . ds A5 \\$6
|
||
+.\" . ds A6 \\$7
|
||
+.\" . ds A7 \\$8
|
||
+.\" . ds A8 \\$9
|
||
+.\" . nr fV \\n(.$-1
|
||
+. if "\\$1"-std" \{\
|
||
+. nr cH \\*(cH
|
||
+. if (\\n(cH<2):(\\n(cH>3) .tm Usage: .Rv -std sections 2 and 3 only
|
||
+. br
|
||
+\&The
|
||
+.Fn \\$2
|
||
+\&\\*(rV
|
||
+. \}
|
||
+.\}
|
||
+..
|
||
--- groff-1.18.1.1.orig/tmac/Makefile.sub
|
||
+++ groff-1.18.1.1/tmac/Makefile.sub
|
||
@@ -25,15 +25,19 @@
|
||
html.tmac www.tmac \
|
||
eqnrc \
|
||
troffrc troffrc-end \
|
||
- hyphen.us
|
||
+ hyphen.us \
|
||
+ andocj.tmac \
|
||
+ euc-jp.tmac \
|
||
+ gb.tmac big5.tmac
|
||
SPECIALFILES=an.tmac man.tmac s.tmac ms.tmac
|
||
-STRIPFILES=e.tmac doc.tmac doc-old.tmac
|
||
-MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms
|
||
+STRIPFILES=e.tmac doc.tmac doc-old.tmac docj.tmac
|
||
+MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms docj-ditroff docj-nroff
|
||
mdocdir=$(tmacdir)/mdoc
|
||
CLEANADD=\
|
||
stamp-wrap stamp-sed *-wrap man.tmac-sed ms.tmac-sed \
|
||
stamp-strip e.tmac-s doc.tmac-s doc-old.tmac-s \
|
||
- doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s
|
||
+ doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s \
|
||
+ docj.tmac-s docj-ditroff-s docj-nroff-s
|
||
tmac_s_prefix=
|
||
tmac_an_prefix=
|
||
tmac_wrap=
|
||
--- groff-1.18.1.1.orig/tmac/euc-jp.tmac
|
||
+++ groff-1.18.1.1/tmac/euc-jp.tmac
|
||
@@ -0,0 +1,7 @@
|
||
+.\" euc-jp.tmac
|
||
+.\"
|
||
+.cflags 256 ,:;>}
|
||
+.cflags 256 、。,.・:;?!)〕]}」』】ぁぃぅぇぉっゃゅょー
|
||
+.cflags 256 ァィゥェォッャュョ
|
||
+.cflags 512 (〔[{「『【
|
||
+.hc ‐
|
||
--- groff-1.18.1.1.orig/tmac/big5.tmac
|
||
+++ groff-1.18.1.1/tmac/big5.tmac
|
||
@@ -0,0 +1,15 @@
|
||
+.\" Kinsoku table for the BIG5 encoding of Chinese, recoded from
|
||
+.\" kinsoku.el in Emacs 22.0.50.
|
||
+.\" Needs review by native zh_TW speaker.
|
||
+.\"
|
||
+.cflags 256 <20>B<EFBFBD>C<EFBFBD>A<EFBFBD>D<EFBFBD>G<EFBFBD>F<EFBFBD>H<EFBFBD>I|…
|
||
+.cflags 256 _<>i<EFBFBD>X◇<58>U<EFBFBD>L・;<E383BB>^
|
||
+.cflags 256 <20>f<EFBFBD>b<EFBFBD>r<EFBFBD>n<EFBFBD>v<EFBFBD>z<EFBFBD>j}」》『】¢<E38091>X
|
||
+.cflags 256 ―ゝゞ‐/^<EFBC8F>E@*#<
|
||
+.cflags 512 「』¥$<EFBFA5>X<EFBFBD>C′
|
||
+.cflags 512 柆<>y<EFBFBD>V<EFBFBD>Dゞ☆<E3829E>H<EFBFBD>}
|
||
+.\"
|
||
+.\" http://tcl.apache.org/sources/tcl/tools/encoding/big5.txt lists U+FF0D
|
||
+.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
|
||
+.\"
|
||
+.hc {
|
||
--- groff-1.18.1.1.orig/tmac/andocj.tmac
|
||
+++ groff-1.18.1.1/tmac/andocj.tmac
|
||
@@ -0,0 +1,12 @@
|
||
+.\" Load either tmac.an or tmac.doc.
|
||
+.if !\n(.g .ab These macros require groff.
|
||
+.de Dd
|
||
+.rm Dd
|
||
+.do mso tmac.docj
|
||
+\\*(Dd\\
|
||
+..
|
||
+.de TH
|
||
+.rm TH
|
||
+.do mso tmac.an
|
||
+\\*(TH\\
|
||
+..
|
||
--- groff-1.18.1.1.orig/aclocal.m4
|
||
+++ groff-1.18.1.1/aclocal.m4
|
||
@@ -356,6 +356,19 @@
|
||
AC_MSG_RESULT(no);AC_MSG_ERROR([header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)]))
|
||
AC_LANG_POP(C++)])dnl
|
||
dnl
|
||
+dnl Support Multibyte characters, such as Japanese Code (EUC-JP)
|
||
+dnl
|
||
+AC_DEFUN(GROFF_MULTIBYTE,
|
||
+[AC_MSG_CHECKING([whether to enable multibyte extension])
|
||
+AC_ARG_ENABLE(multibyte, [ --enable-multibyte Enable multibyte extension],
|
||
+ multibyte=$enableval, multibyte=no)
|
||
+if test "x$multibyte" != "xno"; then
|
||
+ AC_DEFINE(ENABLE_MULTIBYTE, 1,
|
||
+ [Define if you want to use multibyte extension.])
|
||
+fi
|
||
+AC_MSG_RESULT([$multibyte])
|
||
+])dnl
|
||
+dnl
|
||
dnl
|
||
AC_DEFUN(GROFF_TMAC,
|
||
[AC_MSG_CHECKING([for prefix of system macro packages])
|
||
@@ -415,6 +428,33 @@
|
||
AC_MSG_RESULT([$tmac_wrap])
|
||
AC_SUBST(tmac_wrap)])dnl
|
||
dnl
|
||
+dnl codeset.m4 from gettext, by Bruno Haible.
|
||
+dnl
|
||
+AC_DEFUN(GROFF_LANGINFO_CODESET,
|
||
+[AC_CACHE_CHECK([for nl_langinfo and CODESET], groff_cv_langinfo_codeset,
|
||
+ [AC_TRY_LINK([#include <langinfo.h>],
|
||
+ [char* cs = nl_langinfo(CODESET);],
|
||
+ groff_cv_langinfo_codeset=yes,
|
||
+ groff_cv_langinfo_codeset=no)
|
||
+ ])
|
||
+ if test $groff_cv_langinfo_codeset = yes; then
|
||
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
|
||
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
|
||
+ fi
|
||
+])dnl
|
||
+dnl
|
||
+dnl
|
||
+AC_DEFUN(GROFF_DVIFORMAT,
|
||
+[AC_MSG_CHECKING([japanese dvi file format])
|
||
+if test "x$dvi_format" != "xASCII"; then
|
||
+ DVIFORMAT=NTT
|
||
+else
|
||
+ DVIFORMAT=ASCII
|
||
+fi
|
||
+AC_MSG_RESULT([$DVIFORMAT])
|
||
+AC_SUBST(DVIFORMAT)
|
||
+])dnl
|
||
+dnl
|
||
dnl
|
||
AC_DEFUN(GROFF_G,
|
||
[AC_MSG_CHECKING([for existing troff installation])
|
||
@@ -481,7 +521,7 @@
|
||
AC_DEFINE(IS_EBCDIC_HOST, 1,
|
||
[Define if the host's encoding is EBCDIC.]),
|
||
groff_cv_ebcdic="no"
|
||
- TTYDEVDIRS="font/devascii font/devlatin1"
|
||
+ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
|
||
OTHERDEVDIRS="font/devlj4 font/devlbp"
|
||
AC_MSG_RESULT(no))
|
||
AC_SUBST(TTYDEVDIRS)
|
||
--- groff-1.18.1.1.orig/configure.ac
|
||
+++ groff-1.18.1.1/configure.ac
|
||
@@ -68,6 +68,9 @@
|
||
GROFF_G
|
||
GROFF_TMAC
|
||
GROFF_HTML_PROGRAMS
|
||
+GROFF_MULTIBYTE
|
||
+GROFF_DVIFORMAT
|
||
+GROFF_LANGINFO_CODESET
|
||
AC_CONFIG_FILES(stamp-h, [echo timestamp > stamp-h])
|
||
AC_CONFIG_FILES([Makefile doc/Makefile src/xditview/Imakefile])
|
||
AC_OUTPUT
|
||
--- groff-1.18.1.1.orig/stamp-h
|
||
+++ groff-1.18.1.1/stamp-h
|
||
@@ -0,0 +1 @@
|
||
+timestamp
|
||
--- groff-1.18.1.1.orig/contrib/pic2graph/pic2graph.sh
|
||
+++ groff-1.18.1.1/contrib/pic2graph/pic2graph.sh
|
||
@@ -32,7 +32,7 @@
|
||
# We don't have complete option coverage on eqn because this is primarily
|
||
# intended as a pic translator; we can live with eqn defaults.
|
||
#
|
||
-# $Id: pic2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
|
||
+# $Id: pic2graph.sh,v 1.5 2003/10/31 19:32:36 wlemb Exp $
|
||
#
|
||
groffpic_opts=""
|
||
gs_opts=""
|
||
@@ -44,7 +44,7 @@
|
||
do
|
||
case $1 in
|
||
-unsafe)
|
||
- groffpic_opts="-U"
|
||
+ groffpic_opts="-U";;
|
||
-format)
|
||
format=$2
|
||
shift;;
|
||
@@ -68,16 +68,34 @@
|
||
eqndelim="delim $eqndelim"
|
||
fi
|
||
|
||
+# create temporary directory
|
||
+tmp=
|
||
+for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
|
||
+ test -z "$d" && continue
|
||
+
|
||
+ tmp=`(umask 077 && mktemp -d -q "$d/pic2graph-XXXXXX") 2> /dev/null` \
|
||
+ && test -n "$tmp" && test -d "$tmp" \
|
||
+ && break
|
||
+
|
||
+ tmp=$d/pic2graph$$-$RANDOM
|
||
+ (umask 077 && mkdir $tmp) 2> /dev/null \
|
||
+ && break
|
||
+done;
|
||
+if test -z "$tmp"; then
|
||
+ echo "$0: cannot create temporary directory" >&2
|
||
+ { (exit 1); exit 1; }
|
||
+fi
|
||
+
|
||
+trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15
|
||
+
|
||
# Here goes:
|
||
# 1. Wrap the input in dummy .PS/PE macros (and add possibly null .EQ/.EN)
|
||
# 2. Process through eqn and pic to emit troff markup.
|
||
# 3. Process through groff to emit Postscript.
|
||
# 4. Use convert(1) to crop the PostScript and turn it into a bitmap.
|
||
-tmp=/usr/tmp/pic2graph-$$
|
||
-trap "rm ${tmp}.*" 0 2 15
|
||
(echo ".EQ"; echo $eqndelim; echo ".EN"; echo ".PS"; cat; echo ".PE") | \
|
||
- groff -e -p $groffpic_opts -Tps >${tmp}.ps \
|
||
- && convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
|
||
- && cat ${tmp}.${format}
|
||
+ groff -e -p $groffpic_opts -Tps -P-pletter > $tmp/pic2graph.ps \
|
||
+ && convert -crop 0x0 $convert_opts $tmp/pic2graph.ps $tmp/pic2graph.$format \
|
||
+ && cat $tmp/pic2graph.$format
|
||
|
||
# End
|
||
--- groff-1.18.1.1.orig/contrib/mom/groff_mom.man
|
||
+++ groff-1.18.1.1/contrib/mom/groff_mom.man
|
||
@@ -13,6 +13,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.mso www.tmac
|
||
.
|
||
--- groff-1.18.1.1.orig/contrib/groffer/groffer.sh
|
||
+++ groff-1.18.1.1/contrib/groffer/groffer.sh
|
||
@@ -3228,17 +3228,12 @@
|
||
do
|
||
if is_not_empty "$d"; then
|
||
if obj d is_dir && obj d is_writable; then
|
||
- _TMP_DIR="${d}/${_PROGRAM_NAME}${_PROCESS_ID}";
|
||
- if obj _TMP_DIR is_dir; then
|
||
- rm -f "${_TMP_DIR}"/*;
|
||
+ _TMP_DIR="$(mktemp -d "${d}/${_PROGRAM_NAME}.XXXXXX")"
|
||
+ if test $? = 0; then
|
||
break;
|
||
else
|
||
- mkdir "${_TMP_DIR}";
|
||
- if obj _TMP_DIR is_not_dir; then
|
||
- _TMP_DIR='';
|
||
- continue;
|
||
- fi;
|
||
- break;
|
||
+ _TMP_DIR='';
|
||
+ continue;
|
||
fi;
|
||
fi;
|
||
if obj _TMP_DIR is_not_writable; then
|
||
--- groff-1.18.1.1.orig/contrib/eqn2graph/eqn2graph.sh
|
||
+++ groff-1.18.1.1/contrib/eqn2graph/eqn2graph.sh
|
||
@@ -32,7 +32,7 @@
|
||
#
|
||
# Thus, we pass -U to groff(1), and everything else to convert(1).
|
||
#
|
||
-# $Id: eqn2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
|
||
+# $Id: eqn2graph.sh,v 1.3 2003/10/28 07:46:23 wlemb Exp $
|
||
#
|
||
groff_opts=""
|
||
convert_opts=""
|
||
@@ -58,17 +58,34 @@
|
||
shift
|
||
done
|
||
|
||
+# create temporary directory
|
||
+tmp=
|
||
+for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
|
||
+ test -z "$d" && continue
|
||
+
|
||
+ tmp=`(umask 077 && mktemp -d -q "$d/eqn2graph-XXXXXX") 2> /dev/null` \
|
||
+ && test -n "$tmp" && test -d "$tmp" \
|
||
+ && break
|
||
+
|
||
+ tmp=$d/eqn2graph$$-$RANDOM
|
||
+ (umask 077 && mkdir $tmp) 2> /dev/null && break
|
||
+done;
|
||
+if test -z "$tmp"; then
|
||
+ echo "$0: cannot create temporary directory" >&2
|
||
+ { (exit 1); exit 1; }
|
||
+fi
|
||
+
|
||
+trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15
|
||
+
|
||
# Here goes:
|
||
# 1. Add .EQ/.EN.
|
||
# 2. Process through eqn(1) to emit troff markup.
|
||
# 3. Process through groff(1) to emit Postscript.
|
||
# 4. Use convert(1) to crop the Postscript and turn it into a bitmap.
|
||
-tmp=/usr/tmp/eqn2graph-$$
|
||
-trap "rm ${tmp}.*" 0 2 15
|
||
read equation
|
||
-(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"${equation}"'$') | \
|
||
- groff -e $groff_opts -Tps >${tmp}.ps \
|
||
- && convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
|
||
- && cat ${tmp}.${format}
|
||
+(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"$equation"'$') | \
|
||
+ groff -e $groff_opts -Tps -P-pletter > $tmp/eqn2graph.ps \
|
||
+ && convert -crop 0x0 $convert_opts $tmp/eqn2graph.ps $tmp/eqn2graph.$format \
|
||
+ && cat $tmp/eqn2graph.$format
|
||
|
||
# End
|
||
--- groff-1.18.1.1.orig/configure
|
||
+++ groff-1.18.1.1/configure
|
||
@@ -305,7 +305,7 @@
|
||
# include <unistd.h>
|
||
#endif"
|
||
|
||
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html LTLIBOBJS'
|
||
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html DVIFORMAT LTLIBOBJS'
|
||
ac_subst_files=''
|
||
|
||
# Initialize some variables set by options.
|
||
@@ -841,6 +841,11 @@
|
||
|
||
cat <<\_ACEOF
|
||
|
||
+Optional Features:
|
||
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||
+ --enable-multibyte Enable multibyte extension
|
||
+
|
||
Some influential environment variables:
|
||
CC C compiler command
|
||
CFLAGS C compiler flags
|
||
@@ -2530,7 +2535,7 @@
|
||
echo "$as_me: failed program was:" >&5
|
||
cat conftest.$ac_ext >&5
|
||
groff_cv_ebcdic="no"
|
||
- TTYDEVDIRS="font/devascii font/devlatin1"
|
||
+ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
|
||
OTHERDEVDIRS="font/devlj4 font/devlbp"
|
||
echo "$as_me:$LINENO: result: no" >&5
|
||
echo "${ECHO_T}no" >&6
|
||
@@ -5859,6 +5864,84 @@
|
||
esac
|
||
|
||
|
||
+echo "$as_me:$LINENO: checking whether to enable multibyte extension" >&5
|
||
+echo $ECHO_N "checking whether to enable multibyte extension... $ECHO_C" >&6
|
||
+# Check whether --enable-multibyte or --disable-multibyte was given.
|
||
+if test "${enable_multibyte+set}" = set; then
|
||
+ enableval="$enable_multibyte"
|
||
+ multibyte=$enableval
|
||
+else
|
||
+ multibyte=no
|
||
+fi;
|
||
+if test "x$multibyte" != "xno"; then
|
||
+
|
||
+cat >>confdefs.h <<\_ACEOF
|
||
+#define ENABLE_MULTIBYTE 1
|
||
+_ACEOF
|
||
+
|
||
+fi
|
||
+echo "$as_me:$LINENO: result: $multibyte" >&5
|
||
+echo "${ECHO_T}$multibyte" >&6
|
||
+
|
||
+echo "$as_me:$LINENO: checking japanese dvi file format" >&5
|
||
+echo $ECHO_N "checking japanese dvi file format... $ECHO_C" >&6
|
||
+if test "x$dvi_format" != "xASCII"; then
|
||
+ DVIFORMAT=NTT
|
||
+else
|
||
+ DVIFORMAT=ASCII
|
||
+fi
|
||
+echo "$as_me:$LINENO: result: $DVIFORMAT" >&5
|
||
+echo "${ECHO_T}$DVIFORMAT" >&6
|
||
+
|
||
+
|
||
+echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
|
||
+echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
|
||
+if test "${groff_cv_langinfo_codeset+set}" = set; then
|
||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||
+else
|
||
+ cat >conftest.$ac_ext <<_ACEOF
|
||
+#line $LINENO "configure"
|
||
+#include "confdefs.h"
|
||
+#include <langinfo.h>
|
||
+int
|
||
+main ()
|
||
+{
|
||
+char* cs = nl_langinfo(CODESET);
|
||
+ ;
|
||
+ return 0;
|
||
+}
|
||
+_ACEOF
|
||
+rm -f conftest.$ac_objext conftest$ac_exeext
|
||
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||
+ (eval $ac_link) 2>&5
|
||
+ ac_status=$?
|
||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||
+ (exit $ac_status); } &&
|
||
+ { ac_try='test -s conftest$ac_exeext'
|
||
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||
+ (eval $ac_try) 2>&5
|
||
+ ac_status=$?
|
||
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||
+ (exit $ac_status); }; }; then
|
||
+ groff_cv_langinfo_codeset=yes
|
||
+else
|
||
+ echo "$as_me: failed program was:" >&5
|
||
+cat conftest.$ac_ext >&5
|
||
+groff_cv_langinfo_codeset=no
|
||
+fi
|
||
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
|
||
+
|
||
+fi
|
||
+echo "$as_me:$LINENO: result: $groff_cv_langinfo_codeset" >&5
|
||
+echo "${ECHO_T}$groff_cv_langinfo_codeset" >&6
|
||
+ if test $groff_cv_langinfo_codeset = yes; then
|
||
+
|
||
+cat >>confdefs.h <<\_ACEOF
|
||
+#define HAVE_LANGINFO_CODESET 1
|
||
+_ACEOF
|
||
+
|
||
+ fi
|
||
+
|
||
ac_config_files="$ac_config_files stamp-h"
|
||
|
||
ac_config_files="$ac_config_files Makefile doc/Makefile src/xditview/Imakefile"
|
||
@@ -6497,6 +6580,7 @@
|
||
s,@psselect@,$psselect,;t t
|
||
s,@make_html@,$make_html,;t t
|
||
s,@make_install_html@,$make_install_html,;t t
|
||
+s,@DVIFORMAT@,$DVIFORMAT,;t t
|
||
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
|
||
CEOF
|
||
|
||
--- groff-1.18.1.1.orig/Makefile.in
|
||
+++ groff-1.18.1.1/Makefile.in
|
||
@@ -136,7 +136,11 @@
|
||
# directory will be always added.
|
||
# `troffrc' and `troffrc-end' (and `eqnrc') are searched neither in the
|
||
# current nor in the home directory.
|
||
+ifeq (,$(extratmacdirs))
|
||
tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir)
|
||
+else
|
||
+tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir):$(extratmacdirs)
|
||
+endif
|
||
|
||
# `sys_tmac_prefix' is prefix (if any) for system macro packages.
|
||
sys_tmac_prefix=@sys_tmac_prefix@
|
||
@@ -195,6 +199,9 @@
|
||
man7ext=7
|
||
man7dir=$(manroot)/man$(man7ext)
|
||
|
||
+# DVI file format.
|
||
+DVIFORMAT=@DVIFORMAT@
|
||
+
|
||
# The configure script checks whether all necessary utility programs for
|
||
# grohtml are available -- only then we can build the HTML documentation.
|
||
make_html=@make_html@
|
||
@@ -261,6 +268,8 @@
|
||
# -DRETSIGTYPE=int if signal handlers return int not void
|
||
# -DIS_EBCDIC_HOST if the host's encoding is EBCDIC
|
||
# -DPAGEA4 if the the printer's page size is A4
|
||
+# -DENABLE_MULTIBYTE enable multibyte extension
|
||
+# -DHAVE_LANGINFO_CODESET if you have nl_langinfo(CODESET)
|
||
DEFINES=@DEFS@
|
||
|
||
# Include
|
||
@@ -395,7 +404,8 @@
|
||
"PERLPATH=$(PERLPATH)" \
|
||
"SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \
|
||
"PURIFY=$(PURIFY)" \
|
||
- "PURIFYCCFLAGS=$(PURIFYCCFLAGS)"
|
||
+ "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" \
|
||
+ "DVIFORMAT=$(DVIFORMAT)"
|
||
|
||
SHELL=/bin/sh
|
||
INCDIRS=src/include
|
||
@@ -437,8 +447,10 @@
|
||
font/devhtml
|
||
ALLTTYDEVDIRS=\
|
||
font/devascii \
|
||
+ font/devascii8 \
|
||
font/devlatin1 \
|
||
font/devutf8 \
|
||
+ font/devnippon \
|
||
font/devcp1047
|
||
OTHERDIRS=\
|
||
man \
|
||
@@ -483,7 +495,7 @@
|
||
fi
|
||
|
||
do=all
|
||
-dodirs=$(ALLDIRS) dot
|
||
+dodirs=$(DISTDIRS)
|
||
# Default target for subdir_Makefile
|
||
subdir=src/roff/troff
|
||
|
||
--- groff-1.18.1.1.orig/TODO.jp
|
||
+++ groff-1.18.1.1/TODO.jp
|
||
@@ -0,0 +1,19 @@
|
||
+TODO lists
|
||
+
|
||
+- configure
|
||
+ nl_langinfo()
|
||
+ iconv()
|
||
+
|
||
+- font/devdvi
|
||
+ G,M -- NTT and/or ASCII
|
||
+- src/devices
|
||
+ grohtml
|
||
+ grodvi
|
||
+ grolbp
|
||
+ grolj4
|
||
+- src/xditview
|
||
+
|
||
+- command line option to specify input/output encoding
|
||
+- font code?
|
||
+ can we assume wchar code == font code?
|
||
+ [to simplify indexing]
|
||
--- groff-1.18.1.1.orig/mdate.sh
|
||
+++ groff-1.18.1.1/mdate.sh
|
||
@@ -2,41 +2,4 @@
|
||
|
||
# Print the modification date of $1 `nicely'.
|
||
|
||
-# Don't want foreign dates.
|
||
-
|
||
-LANGUAGE=
|
||
-LC_ALL=C; export LC_ALL
|
||
-
|
||
-
|
||
-(date;
|
||
-if ls -L /dev/null 1>/dev/null 2>&1; then ls -L -l $1; else ls -l $1; fi
|
||
-) | awk '
|
||
-BEGIN {
|
||
- full["Jan"] = "January"; number["Jan"] = 1;
|
||
- full["Feb"] = "February"; number["Feb"] = 2;
|
||
- full["Mar"] = "March"; number["Mar"] = 3;
|
||
- full["Apr"] = "April"; number["Apr"] = 4;
|
||
- full["May"] = "May"; number["May"] = 5;
|
||
- full["Jun"] = "June"; number["Jun"] = 6;
|
||
- full["Jul"] = "July"; number["Jul"] = 7;
|
||
- full["Aug"] = "August"; number["Aug"] = 8;
|
||
- full["Sep"] = "September"; number["Sep"] = 9;
|
||
- full["Oct"] = "October"; number["Oct"] = 10;
|
||
- full["Nov"] = "November"; number["Nov"] = 11;
|
||
- full["Dec"] = "December"; number["Dec"] = 12;
|
||
-}
|
||
-
|
||
-NR == 1 {
|
||
- month = $2;
|
||
- year = $NF;
|
||
-}
|
||
-
|
||
-NR == 2 {
|
||
- if ($(NF-1) ~ /:/) {
|
||
- if (number[$(NF-3)] > number[month])
|
||
- year--;
|
||
- }
|
||
- else
|
||
- year = $(NF-1);
|
||
- print $(NF-2), full[$(NF-3)], year
|
||
-}'
|
||
+perl -MPOSIX -le 'print strftime("%d %B %Y", localtime((stat $ARGV[0])[9]))' $1
|
||
--- groff-1.18.1.1.orig/man/groff_out.man
|
||
+++ groff-1.18.1.1/man/groff_out.man
|
||
@@ -19,6 +19,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|
||
--- groff-1.18.1.1.orig/man/groff_char.man
|
||
+++ groff-1.18.1.1/man/groff_char.man
|
||
@@ -32,6 +32,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup Part 1
|
||
--- groff-1.18.1.1.orig/man/groff_tmac.man
|
||
+++ groff-1.18.1.1/man/groff_tmac.man
|
||
@@ -32,6 +32,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|
||
--- groff-1.18.1.1.orig/man/roff.man
|
||
+++ groff-1.18.1.1/man/roff.man
|
||
@@ -18,6 +18,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|
||
--- groff-1.18.1.1.orig/man/ditroff.man
|
||
+++ groff-1.18.1.1/man/ditroff.man
|
||
@@ -18,6 +18,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|
||
--- groff-1.18.1.1.orig/man/groff_diff.man
|
||
+++ groff-1.18.1.1/man/groff_diff.man
|
||
@@ -23,6 +23,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|
||
--- groff-1.18.1.1.orig/man/groff.man
|
||
+++ groff-1.18.1.1/man/groff.man
|
||
@@ -19,6 +19,10 @@
|
||
A copy of the Free Documentation License is included as a file called
|
||
FDL in the main directory of the groff source package.
|
||
..
|
||
+.ig
|
||
+A copy of the GNU Free Documentation License is also available in this
|
||
+Debian package as /usr/share/doc/groff/copyright.
|
||
+..
|
||
.
|
||
.\" --------------------------------------------------------------------
|
||
.\" Setup
|