~ubuntu-branches/ubuntu/feisty/wnn7egg/feisty

« back to all changes in this revision

Viewing changes to elisp/emacs20/wnn7egg-lib.el

  • Committer: Bazaar Package Importer
  • Author(s): ISHIKAWA Mutsumi
  • Date: 2004-09-22 17:39:30 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040922173930-pna2yuvlq63wxgc9
Tags: 1.02-5
update dolist macro confliction fix, thanks TSUCHIYA Masatoshi.
realy closes: #270839

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
 
64
64
;;; Change log:
65
65
 
 
66
;;; 2002/5/22 $BL5JQ49<-=q!"J8@a@Z$j<-=q$NDI2C=hM}$N=$@5(B
 
67
;;; 2002/5/22 $B@\F,8l%Q%i%a!<%?(B prefix-flag $B$N@_DjCM$N=$@5(B
 
68
;;; 2002/5/16 XEmacs $B$G%f!<%6<-=q$N3JG<>l=jJQ99$,@5$7$/9T$J$($J$$LdBj$NBP1~(B
 
69
;;; 2002/5/16 $B%f!<%6<-=q$N%/%i%$%"%s%HE>AwF0:n$K$*$1$kIT6q9g=$@5(B
 
70
;;; 2002/5/16 $BM=B,%b!<%I;~$K5UJQ49F0:n$,@5$7$/9T$J$($J$$LdBj$KBP1~(B
66
71
;;; 2001/9/30 v1.01 (bug fix)
67
72
;;; 2001/5/30 First Release
68
73
 
69
74
;;; Code:
70
75
 
71
 
;;; Last modified date: 2001/9/30
 
76
;;; Last modified date: 2002/5/22
72
77
 
73
78
(require 'wnn7egg-edep)
74
79
(if (featurep 'xemacs)
325
330
        ((eq c 'WNN_FI_SYSTEM_DICT) 6)
326
331
        ((eq c 'WNN_FI_USER_DICT) 7)
327
332
        ((eq c 'WNN_GROUP_DICT)   9)
328
 
        ((eq c 'WNN_MERGE_DICT)  10)))
 
333
        ((eq c 'WNN_MERGE_DICT)  10)
 
334
        ((eq c 'WNNDS_FILE_READ_ERROR) 90)))
329
335
;;      ((eq c 'DIC_NO_TEMPS)   ?\x3f))) ; cannot eval on xemacs
330
336
 
331
337
;; Retern value of system-name may differ from hostname.
709
715
              ((error quit))))
710
716
          (when proc
711
717
            (process-kill-without-query proc)
712
 
            (set-process-coding-system proc 'no-conversion 'no-conversion)
 
718
            (if (featurep 'xemacs)
 
719
                (set-process-coding-system proc 'binary 'binary)
 
720
              (set-process-coding-system proc 'no-conversion 'no-conversion))
713
721
            (set-process-sentinel proc 'wnn7-comm-sentinel)
714
722
            (set-marker-insertion-type (process-mark proc) t))
715
723
          proc)
938
946
        (wnn7-dicinfo-mode (car info) 0)
939
947
      (WNN-const DIC_RDONLY))))
940
948
 
941
 
(defun wnn7-server-notrans-dict-add (dname prior drw &optional dpass)
 
949
(defun wnn7-server-bmodify-dict-add (dname prior drw &optional dpass)
942
950
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
943
 
         (type (WNN-const NOTRANS_LEARN))
 
951
         (type (WNN-const BMODIFY_LEARN))
944
952
         (did (wnn7rpc-get-autolearning-dic env type))
945
953
         (param-list (wnn7-make-henkan-parameter))
946
954
         (name 'bunsetsugiri)
952
960
                                ((or (eq mode 1) (eq mode t))   1)
953
961
                                (t (egg:error "%s: Wrong type argument" name))))
954
962
      (wnn7rpc-set-conversion-env-param env vmask param-list))
955
 
    (wnn7env-set-notrans env (wnn7-get-autolearning-dic-mode
956
 
                             env (WNN-const NOTRANS_LEARN)))))
 
963
    (wnn7env-set-bmodify env (wnn7-get-autolearning-dic-mode
 
964
                             env (WNN-const BMODIFY_LEARN)))))
957
965
 
958
 
(defun wnn7-server-bmodify-dict-add (dname prior drw &optional dpass)
 
966
(defun wnn7-server-notrans-dict-add (dname prior drw &optional dpass)
959
967
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
960
 
         (type (WNN-const BMODIFY_LEARN))
 
968
         (type (WNN-const NOTRANS_LEARN))
961
969
         (did (wnn7rpc-get-autolearning-dic env type))
962
970
         (param-list (wnn7-make-henkan-parameter))
963
971
         (name 'muhenkan)
969
977
                                ((or (eq mode 1) (eq mode t))   1)
970
978
                                (t (egg:error "%s: Wrong type argument" name))))
971
979
      (wnn7rpc-set-conversion-env-param env vmask param-list))
972
 
    (wnn7env-set-bmodify env (wnn7-get-autolearning-dic-mode
973
 
                             env (WNN-const BMODIFY_LEARN)))))
 
980
    (wnn7env-set-notrans env (wnn7-get-autolearning-dic-mode
 
981
                             env (WNN-const NOTRANS_LEARN)))))
974
982
 
975
983
(defun wnn7-temporary-dic-add (env rev)
976
984
  (let ((result (wnn7rpc-temporary-dic-loaded env)))
997
1005
     ((numberp (setq dpass (wnn7rpc-read-passwd-file dpass)))
998
1006
      (message "%s" (wnn7rpc-get-error-message (- dpass)))
999
1007
      nil)
1000
 
     ((setq did (wnn7-open-dictionary env nil dname t "" dpass "" t))
 
1008
     ((setq did (wnn7-open-dictionary env nil dname t "" dpass "" nil))
1001
1009
      (if (and (>= (setq did (wnn7rpc-set-dictionary env did -1 prior drw drw
1002
1010
                                                    dpass "" rev))
1003
1011
                   0)
1109
1117
        (name 'prefix)
1110
1118
        vmask)
1111
1119
    (setq vmask (lsh 1 5))
1112
 
    (aset param-list 5 (cond ((or (eq mode -1) (eq mode 'regulation)) -1)
1113
 
                             ((or (eq mode  0) (eq mode 'no))          0)
1114
 
                             ((or (eq mode  1) (eq mode 'yes))         1)
1115
 
                             ((or (eq mode 1) (eq mode t))   1)
 
1120
    (aset param-list 5 (cond ((or (eq mode  0) (eq mode 'hiragana)) 0)
 
1121
                             ((or (eq mode  1) (eq mode 'kanji))    1)
1116
1122
                             (t (egg:error "%s: Wrong type argument" name))))
1117
1123
    (wnn7rpc-set-conversion-env-param env vmask param-list)))
1118
1124
 
1341
1347
              (y-or-n-p (format (wnn7-msg-get 'no-dir)
1342
1348
                                (file-name-directory path))))
1343
1349
          (make-directory local-name t)
 
1350
          ;; server $BB&$N%G%#%l%/%H%j$b:n@.$7$F$*$/(B
 
1351
          (wnn7-create-directory env (concat wnn7-usr-dic-dir "/foo") t)
1344
1352
          (if (file-directory-p local-name)
1345
1353
              (progn
1346
1354
                (message (wnn7-msg-get 'create-dir) path)
1377
1385
      (message "Wnn: cannot omit dictionary name")
1378
1386
      nil)
1379
1387
     ((>= dic-id 0) dic-id)
1380
 
     ((or (null rw) (/= dic-id (- (WNN-const NO_EXIST))))
 
1388
     ((or (null rw) (and (/= dic-id (- (WNN-const NO_EXIST)))
 
1389
                        (/= dic-id (- (WNN-const WNNDS_FILE_READ_ERROR)))))
1381
1390
      (message (wnn7-msg-get 'no-dict1)
1382
1391
               name (wnn7rpc-get-error-message (- dic-id)))
1383
1392
      nil)
1411
1420
    (cond
1412
1421
     ((null freq-id) -1)
1413
1422
     ((>= freq-id 0) freq-id)
1414
 
     ((or (null rw) (/= freq-id (- (WNN-const NO_EXIST))))
 
1423
     ((or (null rw) (and (/= freq-id (- (WNN-const NO_EXIST)))
 
1424
                         (/= freq-id (- (WNN-const WNNDS_FILE_READ_ERROR)))))
1415
1425
      (message (wnn7-msg-get 'no-freq1)
1416
1426
               name (wnn7rpc-get-error-message (- freq-id)))
1417
1427
      nil)
1423
1433
      (setq freq-id (wnn7-open-file env name))
1424
1434
      (if (>= freq-id 0)
1425
1435
          freq-id
1426
 
        (message "%s" (wnn7rpc-get-error-message (- dic-id)))
 
1436
        (message "%s" (wnn7rpc-get-error-message (- freq-id)))
1427
1437
        nil)))))
1428
1438
 
1429
1439
(defun wnn7-create-frequency (env fi dic-id name comment passwd)
1970
1980
(defvar egg-predict-status nil)
1971
1981
 
1972
1982
(defun wnn7-server-predict-init ()
1973
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
1983
  (let* ((env wnn7-env-norm)
1974
1984
         (result (wnn7rpc-yosoku-init env)))
1975
1985
    (if (= result 0)
1976
1986
        (progn
1983
1993
      nil)))
1984
1994
 
1985
1995
(defun wnn7-server-predict-free ()
1986
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
1996
  (let* ((env wnn7-env-norm)
1987
1997
         (result (wnn7rpc-yosoku-free env)))
1988
1998
    (setq egg-predict-status nil)
1989
1999
    (if (= result 0)
1992
2002
      nil)))
1993
2003
 
1994
2004
(defun wnn7-server-predict-start (str)
1995
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2005
  (let* ((env wnn7-env-norm)
1996
2006
         (result (wnn7rpc-yosoku-yosoku env str)))
1997
2007
    (if (numberp result)
1998
2008
        (if (= result -3011)
2002
2012
      result)))
2003
2013
 
2004
2014
(defun wnn7-server-predict-toroku (&optional kakutei-str)
2005
 
  (let* ((bunlist wnn7-bun-list)
2006
 
         (head (car bunlist))
2007
 
         env ykouho yklist result)
2008
 
    (if kakutei-str
2009
 
        ;; before convert
2010
 
        (setq env (if env-normal wnn7-env-norm wnn7-env-rev)
2011
 
              ykouho (vector kakutei-str
2012
 
                             (length (encode-coding-string  
2013
 
                                      (comm-format-truncate-after-null 
2014
 
                                       kakutei-str) egg-mb-euc))
2015
 
                             kakutei-str
2016
 
                             (length (encode-coding-string  
2017
 
                                      (comm-format-truncate-after-null 
2018
 
                                       kakutei-str) egg-mb-euc))
2019
 
                             0)
2020
 
              yklist (cons ykouho yklist))
2021
 
      ;; after convert
2022
 
      (setq env (wnn7-bunsetsu-get-env head))
2023
 
      (let (bun bunsetsu)
2024
 
        (while bunlist
2025
 
          (setq bun (car bunlist)
2026
 
                bunsetsu nil)
2027
 
          (while bun
2028
 
            (setq bunsetsu (cons bun bunsetsu)
2029
 
                  bunlist (cdr bunlist)
2030
 
                  bun (and (wnn7-bunsetsu-get-dai-continue bun)
2031
 
                           bunlist
2032
 
                           (car bunlist))))
2033
 
          (setq bunsetsu (nreverse bunsetsu))
2034
 
          (when bunsetsu
2035
 
            (setq ykouho (vector (wnn7-get-major-bunsetsu-source bunsetsu)
2036
 
                                 (length (encode-coding-string  
2037
 
                                          (comm-format-truncate-after-null 
2038
 
                                           (mapconcat 'wnn7-bunsetsu-get-yomi 
2039
 
                                                      bunsetsu ""))
2040
 
                                          egg-mb-euc))
2041
 
                                 (wnn7-get-major-bunsetsu-converted bunsetsu)
2042
 
                                 (length (encode-coding-string  
2043
 
                                          (comm-format-truncate-after-null
2044
 
                                           (mapconcat 'wnn7-bunsetsu-get-converted 
2045
 
                                                      bunsetsu ""))
2046
 
                                          egg-mb-euc))
2047
 
                                 (wnn7-bunsetsu-get-hinshi (car (nreverse bunsetsu))))
2048
 
                  yklist (cons ykouho yklist)))))
2049
 
      (setq yklist (nreverse yklist)))
2050
 
    (if (= (setq result (wnn7rpc-yosoku-toroku env (length yklist) yklist)) 0)
2051
 
        t
2052
 
      (if (not (eq result -3011))
2053
 
          (egg:error "%s" (wnn7rpc-get-error-message (- result))))
2054
 
      nil)))
 
2015
  (when env-normal
 
2016
    (let* ((bunlist wnn7-bun-list)
 
2017
           (head (car bunlist))
 
2018
           (env wnn7-env-norm)
 
2019
           ykouho yklist result)
 
2020
      (if kakutei-str
 
2021
          ;; before convert
 
2022
          (setq ykouho (vector kakutei-str
 
2023
                               (length (encode-coding-string  
 
2024
                                        (comm-format-truncate-after-null 
 
2025
                                         kakutei-str) egg-mb-euc))
 
2026
                               kakutei-str
 
2027
                               (length (encode-coding-string  
 
2028
                                        (comm-format-truncate-after-null 
 
2029
                                         kakutei-str) egg-mb-euc))
 
2030
                               0)
 
2031
                yklist (cons ykouho yklist))
 
2032
        ;; after convert
 
2033
        ;;(setq env (wnn7-bunsetsu-get-env head))
 
2034
        (let (bun bunsetsu)
 
2035
          (while bunlist
 
2036
            (setq bun (car bunlist)
 
2037
                  bunsetsu nil)
 
2038
            (while bun
 
2039
              (setq bunsetsu (cons bun bunsetsu)
 
2040
                    bunlist (cdr bunlist)
 
2041
                    bun (and (wnn7-bunsetsu-get-dai-continue bun)
 
2042
                             bunlist
 
2043
                             (car bunlist))))
 
2044
            (setq bunsetsu (nreverse bunsetsu))
 
2045
            (when bunsetsu
 
2046
              (setq ykouho (vector (wnn7-get-major-bunsetsu-source bunsetsu)
 
2047
                                   (length (encode-coding-string  
 
2048
                                            (comm-format-truncate-after-null 
 
2049
                                             (mapconcat 'wnn7-bunsetsu-get-yomi 
 
2050
                                                        bunsetsu ""))
 
2051
                                            egg-mb-euc))
 
2052
                                   (wnn7-get-major-bunsetsu-converted bunsetsu)
 
2053
                                   (length (encode-coding-string  
 
2054
                                            (comm-format-truncate-after-null
 
2055
                                             (mapconcat 'wnn7-bunsetsu-get-converted 
 
2056
                                                        bunsetsu ""))
 
2057
                                            egg-mb-euc))
 
2058
                                   (wnn7-bunsetsu-get-hinshi (car (nreverse bunsetsu))))
 
2059
                    yklist (cons ykouho yklist)))))
 
2060
        (setq yklist (nreverse yklist)))
 
2061
      (if (= (setq result (wnn7rpc-yosoku-toroku env (length yklist) yklist)) 0)
 
2062
          t
 
2063
        (if (not (eq result -3011))
 
2064
            (egg:error "%s" (wnn7rpc-get-error-message (- result))))
 
2065
        nil))))
2055
2066
      
2056
2067
(defun wnn7-server-predict-selected-cand (pos)
2057
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2068
  (let* ((env wnn7-env-norm)
2058
2069
         (result (wnn7rpc-yosoku-selected-cand env pos)))
2059
2070
    (if (>= result 0)
2060
2071
        result
2062
2073
      nil)))
2063
2074
  
2064
2075
(defun wnn7-server-predict-delete-cand (pos)
2065
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2076
  (let* ((env wnn7-env-norm)
2066
2077
         (result (wnn7rpc-yosoku-delete-cand env pos)))
2067
2078
    (if (= result 0)
2068
2079
        t
2070
2081
      nil)))
2071
2082
  
2072
2083
(defun wnn7-server-predict-cancel-toroku ()
2073
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2084
  (let* ((env wnn7-env-norm)
2074
2085
         (result (wnn7rpc-yosoku-cancel-latest-toroku env)))
2075
2086
    (if (= result 0)
2076
2087
        t
2078
2089
      nil)))
2079
2090
  
2080
2091
(defun wnn7-server-predict-reset-connective ()
2081
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2092
  (let* ((env wnn7-env-norm)
2082
2093
         (result (wnn7rpc-yosoku-reset-pre-yosoku env)))
2083
2094
    (if (= result 0)
2084
2095
        t
2086
2097
      nil)))
2087
2098
        
2088
2099
(defun wnn7-server-predict-save-data ()
2089
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2100
  (let* ((env wnn7-env-norm)
2090
2101
         (result (wnn7rpc-yosoku-save-datalist env)))
2091
2102
    (if (= result 0)
2092
2103
        t
2094
2105
      nil)))
2095
2106
 
2096
2107
(defun wnn7-server-predict-set-timeinfo (yosokuselect throughyosoku inputtime keylen)
2097
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2108
  (let* ((env wnn7-env-norm)
2098
2109
         (result (wnn7rpc-yosoku-set-timeinfo env yosokuselect 
2099
2110
                                              throughyosoku inputtime keylen)))
2100
2111
    (if (= result 0)
2103
2114
      nil)))
2104
2115
 
2105
2116
(defun wnn7-server-predict-set-user-inputinfo (allkey userkey yosokuselect)
2106
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2117
  (let* ((env wnn7-env-norm)
2107
2118
         (result (wnn7rpc-yosoku-set-user-inputinfo env allkey userkey
2108
2119
                                                    yosokuselect)))
2109
2120
    (if (= result 0)
2112
2123
      nil)))
2113
2124
 
2114
2125
(defun wnn7-server-predict-status ()
2115
 
  (let* ((env (if env-normal wnn7-env-norm wnn7-env-rev))
 
2126
  (let* ((env wnn7-env-norm)
2116
2127
         (result (wnn7rpc-yosoku-status env)))
2117
2128
    result))
2118
2129