>From 8afafacf87af38ef0fd3193d5133cf06de365c65 Mon Sep 17 00:00:00 2001 From: Taiju HIGASHI Date: Thu, 2 Jun 2022 23:24:13 +0900 Subject: [PATCH] Add an option to not reduce vocabulary of the Japanese dictionary. * configure.ac: Add "with-ja-dic-reduction" configure argument. * leim/Makefile.in: Add "JA_DIC_NO_REDUCTION_OPTION" variable. * lisp/international/ja-dic-cnv.el (skkdic-convert-okuri-nasi): Add "no-reduction" argument. (skkdic-convert): Add "no-reduction" optional argument. (batch-skkdic-convert): Add "--no-reduction" command line argument. --- configure.ac | 7 +++++++ leim/Makefile.in | 4 +++- lisp/international/ja-dic-cnv.el | 26 ++++++++++++++++++-------- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index ed8ec890ac..e28715ad43 100644 --- a/configure.ac +++ b/configure.ac @@ -491,6 +491,7 @@ OPTION_DEFAULT_ON([threads],[don't compile with elisp threading support]) OPTION_DEFAULT_OFF([native-compilation],[compile with Emacs Lisp native compiler support]) OPTION_DEFAULT_OFF([cygwin32-native-compilation],[use native compilation on 32-bit Cygwin]) OPTION_DEFAULT_ON([xinput2],[don't use version 2 of the X Input Extension for input]) +OPTION_DEFAULT_ON([ja-dic-reduction],[don't reduce the Japanese dictionary]) AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB], [use a file notification library (LIB one of: yes, inotify, kqueue, gfile, w32, no)])], @@ -6491,6 +6492,7 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D Which dumping strategy does Emacs use? ${with_dumping} Does Emacs have native lisp compiler? ${HAVE_NATIVE_COMP} Does Emacs use version 2 of the the X Input Extension? ${HAVE_XINPUT2} + Does Emacs reduce the Japanese dictionary? ${with_ja_dic_reduction} "]) if test -n "${EMACSDATA}"; then @@ -6589,6 +6591,11 @@ SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e AC_SUBST(SUBDIR_MAKEFILES_IN) +if test "$with_ja_dic_reduction" = "no"; then + JA_DIC_NO_REDUCTION_OPTION=--no-reduction +fi +AC_SUBST([JA_DIC_NO_REDUCTION_OPTION]) + dnl You might wonder (I did) why epaths.h is generated by running make, dnl rather than just letting configure generate it from epaths.in. dnl One reason is that the various paths are not fully expanded (see above); diff --git a/leim/Makefile.in b/leim/Makefile.in index 3b4216c0b8..f1a476a035 100644 --- a/leim/Makefile.in +++ b/leim/Makefile.in @@ -32,6 +32,8 @@ leimdir = ${srcdir}/../lisp/leim EXEEXT = @EXEEXT@ +JA_DIC_NO_REDUCTION_OPTION = @JA_DIC_NO_REDUCTION_OPTION@ + -include ${top_builddir}/src/verbose.mk # Prevent any settings in the user environment causing problems. @@ -134,7 +136,7 @@ generate-ja-dic: ${leimdir}/ja-dic/ja-dic.el ${leimdir}/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L $(AM_V_GEN)$(RUN_EMACS) -batch -l ja-dic-cnv \ --eval "(setq max-specpdl-size 5000)" \ - -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" "$<" + -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" $(JA_DIC_NO_REDUCTION_OPTION) "$<" ${srcdir}/../lisp/language/pinyin.el: ${srcdir}/MISC-DIC/pinyin.map $(AM_V_GEN)${RUN_EMACS} -l titdic-cnv -f pinyin-convert $< $@ diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el index 704f1a1ae6..7d3103fd8d 100644 --- a/lisp/international/ja-dic-cnv.el +++ b/lisp/international/ja-dic-cnv.el @@ -295,7 +295,7 @@ (setq skkdic-okuri-nasi-entries-count (length skkdic-okuri-nasi-entries)) (progress-reporter-done progress)))) -(defun skkdic-convert-okuri-nasi (skkbuf buf) +(defun skkdic-convert-okuri-nasi (skkbuf buf no-reduction) (with-current-buffer buf (insert ";; Setting okuri-nasi entries.\n" "(skkdic-set-okuri-nasi\n") @@ -311,7 +311,9 @@ (setq count (1+ count)) (progress-reporter-update progress count) (if (setq candidates - (skkdic-reduced-candidates skkbuf kana candidates)) + (if no-reduction + candidates + (skkdic-reduced-candidates skkbuf kana candidates))) (progn (insert "\"" kana) (while candidates @@ -322,10 +324,12 @@ (progress-reporter-done progress)) (insert ")\n\n"))) -(defun skkdic-convert (filename &optional dirname) +(defun skkdic-convert (filename &optional dirname no-reduction) "Generate Emacs Lisp file from Japanese dictionary file FILENAME. The format of the dictionary file should be the same as SKK dictionaries. -Saves the output as `ja-dic-filename', in directory DIRNAME (if specified)." +Saves the output as `ja-dic-filename', in directory DIRNAME (if specified). +When NO-REDUCTION is t, then the dictionary is not reduced. +" (interactive "FSKK dictionary file: ") (let* ((skkbuf (get-buffer-create " *skkdic-unannotated*")) (buf (get-buffer-create "*skkdic-work*"))) @@ -389,7 +393,7 @@ Saves the output as `ja-dic-filename', in directory DIRNAME (if specified)." (skkdic-collect-okuri-nasi) ;; Convert okuri-nasi general entries. - (skkdic-convert-okuri-nasi skkbuf buf) + (skkdic-convert-okuri-nasi skkbuf buf no-reduction) ;; Postfix (with-current-buffer buf @@ -427,15 +431,21 @@ To get complete usage, invoke: (message "To convert SKK-JISYO.L into skkdic.el:") (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert SKK-JISYO.L") (message "To convert SKK-JISYO.L into DIR/ja-dic.el:") - (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert -dir DIR SKK-JISYO.L")) - (let (targetdir filename) + (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert -dir DIR SKK-JISYO.L") + (message "To convert SKK-JISYO.L into skkdic.el without reduction:") + (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert SKK-JISYO.L --no-reduction")) + (let (targetdir filename no-reduction) (if (string= (car command-line-args-left) "-dir") (progn (setq command-line-args-left (cdr command-line-args-left)) (setq targetdir (expand-file-name (car command-line-args-left))) (setq command-line-args-left (cdr command-line-args-left)))) + (if (string= (car command-line-args-left) "--no-reduction") + (progn + (setq no-reduction t) + (setq command-line-args-left (cdr command-line-args-left)))) (setq filename (expand-file-name (car command-line-args-left))) - (skkdic-convert filename targetdir))) + (skkdic-convert filename targetdir no-reduction))) (kill-emacs 0)) -- 2.36.1