Revision: 6651
Author: ek.kato
Date: Sun Aug  1 17:30:14 2010
Log: * Merge r6641:6650 from trunk.

http://code.google.com/p/uim/source/detail?r=6651

Modified:
 /branches/1.6
 /branches/1.6/configure.ac
 /branches/1.6/qt4/pref/uim-pref-qt4.pro.in
 /branches/1.6/scm/prime.scm
 /branches/1.6/scm/process.scm
 /branches/1.6/scm/tutcode.scm

=======================================
--- /branches/1.6/configure.ac  Fri Jul 30 00:23:27 2010
+++ /branches/1.6/configure.ac  Sun Aug  1 17:30:14 2010
@@ -1417,9 +1417,9 @@
 AC_ARG_ENABLE(kde4-applet,
   AC_HELP_STRING([--enable-kde4-applet],
         [build uim applet for KDE4 panel (experimental)
-            @<:@default=yes@:>@]),
+            @<:@default=no@:>@]),
         enable_kde4_applet=$enableval,
-        enable_kde4_applet=yes)
+        enable_kde4_applet=no)
 case "$enable_kde4_applet" in
   no)
     use_applet_kde4="no"
=======================================
--- /branches/1.6/qt4/pref/uim-pref-qt4.pro.in  Fri Jul 23 17:12:33 2010
+++ /branches/1.6/qt4/pref/uim-pref-qt4.pro.in  Sun Aug  1 17:30:14 2010
@@ -15,7 +15,7 @@
 QMAKE_CXXFLAGS_DEBUG   += @CXXFLAGS@ @X_CFLAGS@
 QMAKE_CXXFLAGS_RELEASE += @CXXFLAGS@ @X_CFLAGS@

-QMAKE_UIC = $$[QT_INSTALL_BINS]/uic -tr UIC_
+QMAKE_UIC = $$QMAKE_UIC -tr UIC_

 # Input
 HEADERS += @srcdir@/customwidgets.h @srcdir@/kseparator.h @srcdir@/qt4.h
=======================================
--- /branches/1.6/scm/prime.scm Tue Apr 27 19:01:32 2010
+++ /branches/1.6/scm/prime.scm Sun Aug  1 17:30:14 2010
@@ -827,7 +827,7 @@
             (unlink socket-path)
             (process-with-daemon "prime" (list "prime" "-u" socket-path))
             (let loop ((fds (prime-open-unix-domain-socket socket-path))
-                       (giveup 100))
+                       (giveup 10))
               (cond ((= giveup 0)
                      (uim-notify-fatal
(format (N_ "cannot create socket file \"~a\"") socket-path))
@@ -868,8 +868,10 @@
                       (prime-open-with-pipe "prime"))
                      (else
(uim-notify-fatal (N_ "Prime connection is not defined"))))))
-      (cons (open-file-port (car fds))
-            (open-file-port (cdr fds))))))
+      (if fds
+        (cons (open-file-port (car fds))
+              (open-file-port (cdr fds)))
+        #f))))

 (define prime-send-command
   (lambda (connection msg)
@@ -879,7 +881,8 @@
           (file-display msg oport)
           (let loop ((line (file-read-line iport))
                      (rest '()))
-            (if (or (not line) ;; XXX: eof?
+            (if (or (not line)
+                    (eof-object? line)
                     (= 0 (string-length line))
                     (string=? line ""))
                 (reverse rest) ;; drop last "\n"
@@ -891,11 +894,15 @@
 (define prime-engine-send-command
   (lambda (connection arg-list)
     ;; result       ==> ("ok" "1")
-    (let* ((result (prime-send-command
-                    connection
-                   (string-append (prime-util-string-concat arg-list "\t")
-                                   "\n"))))
-      (cdr result)))) ;; drop status line
+    (let* ((result (if connection
+                     (prime-send-command
+                       connection
+ (string-append (prime-util-string-concat arg-list "\t")
+                                      "\n"))
+                     '())))
+      (if (not (null? result))
+        (cdr result) ;; drop status line
+        (list "\t\t")))))

 (define prime-engine-close
   (lambda (prime-connection)
=======================================
--- /branches/1.6/scm/process.scm       Thu May  6 09:38:31 2010
+++ /branches/1.6/scm/process.scm       Sun Aug  1 17:30:14 2010
@@ -71,7 +71,8 @@
                    (uim-notify-fatal (N_ "cannot duplicate stdout")))
                (file-close pout-out)

-               (process-execute file argv)
+               (if (= (process-execute file argv) -1)
+                 (uim-notify-fatal (format (N_ "cannot execute ~a") file)))
                (_exit 1)
                )
               (else ;; parent
@@ -88,7 +89,8 @@
                #f))
             ((= 0 pid) ;; child
              (daemon 0 1)
-             (process-execute file argv)
+             (if (= (process-execute file argv) -1)
+               (uim-notify-fatal (format (N_ "cannot execute ~a") file)))
              (_exit 1))
             (else
              pid)))))
=======================================
--- /branches/1.6/scm/tutcode.scm       Sat Jul 24 17:48:54 2010
+++ /branches/1.6/scm/tutcode.scm       Sun Aug  1 17:30:14 2010
@@ -709,7 +709,9 @@

 ;;; ¸ò¤¼½ñ¤­¼­½ñ¤Î¸¡º÷¤ò¹Ô¤¦¡£
 ;;; @param pc ¥³¥ó¥Æ¥­¥¹¥È¥ê¥¹¥È
-(define (tutcode-begin-conversion pc)
+;;; @param autocommit? ¸õÊ䤬1¸Ä¤Î¾ì¹ç¤Ë¼«Æ°Åª¤Ë³ÎÄꤹ¤ë¤«¤É¤¦¤«
+;;; @param recursive-learning? ¸õÊ䤬̵¤¤¾ì¹ç¤ËºÆµ¢ÅÐÏ¿¥â¡¼¥É¤ËÆþ¤ë¤«¤É¤¦¤«
+(define (tutcode-begin-conversion pc autocommit? recursive-learning?)
   (let* ((yomi (tutcode-make-string (tutcode-context-head pc)))
          (res (and (symbol-bound? 'skk-lib-get-entry)
                    (skk-lib-get-entry yomi "" "" #f))))
@@ -719,7 +721,7 @@
         (tutcode-context-set-nr-candidates! pc
          (skk-lib-get-nr-candidates yomi "" "" #f))
         (tutcode-context-set-state! pc 'tutcode-state-converting)
-        (if (= (tutcode-context-nr-candidates pc) 1)
+        (if (and autocommit? (= (tutcode-context-nr-candidates pc) 1))
           ;; ¸õÊ䤬1¸Ä¤·¤«¤Ê¤¤¾ì¹ç¤Ï¼«Æ°Åª¤Ë³ÎÄꤹ¤ë¡£
;; (¼­½ñÅÐÏ¿¤Ïtutcode-register-candidate-key¤ò²¡¤·¤ÆÌÀ¼¨Åª¤Ë³«»Ï¤¹¤ë)
           (tutcode-commit-with-auto-help pc)
@@ -729,12 +731,12 @@
                      'tutcode-candidate-window-converting)
               (im-select-candidate pc 0)))))
       ;; ¸õÊä̵¤·
-      (if tutcode-use-recursive-learning?
+      (if recursive-learning?
         (begin
           (tutcode-context-set-state! pc 'tutcode-state-converting)
-          (tutcode-setup-child-context pc 'tutcode-child-type-editor)
-          ;(tutcode-flush pc) ; flush¤¹¤ë¤ÈÆþÎϤ·¤¿Ê¸»úÎ󤬾䨤Ƥ¬¤Ã¤«¤ê
-        )))))
+          (tutcode-setup-child-context pc 'tutcode-child-type-editor)))
+        ;(tutcode-flush pc) ; flush¤¹¤ë¤ÈÆþÎϤ·¤¿Ê¸»úÎ󤬾䨤Ƥ¬¤Ã¤«¤ê
+        )))

 ;;; »Ò¥³¥ó¥Æ¥­¥¹¥È¤òºîÀ®¤¹¤ë¡£
 ;;; @param type 'tutcode-child-type-editor¤«'tutcode-child-type-dialog
@@ -1246,6 +1248,14 @@
        (tutcode-flush pc))
       ((tutcode-stroke-help-toggle-key? key key-state)
        (tutcode-toggle-stroke-help pc))
+ ;; ¸õÊä¿ô¤¬1¸Ä¤Î¾ì¹ç¡¢ÊÑ´¹¸å¼«Æ°³ÎÄꤵ¤ì¤Æconverting¥â¡¼¥É¤ËÆþ¤é¤Ê¤¤¤Î¤Ç
+      ;; ¤½¤Î¾ì¹ç¤Ç¤âpurge¤Ç¤­¤ë¤è¤¦¤Ë¡¢¤³¤³¤Ç¥Á¥§¥Ã¥¯
+      ((and (tutcode-purge-candidate-key? key key-state)
+            (not (null? (tutcode-context-head pc))))
+       ;; converting¥â¡¼¥É¤Ë°Ü¹Ô¤·¤Æ¤«¤épurge
+       (tutcode-begin-conversion pc #f #f)
+       (if (eq? (tutcode-context-state pc) 'tutcode-state-converting)
+         (tutcode-proc-state-converting pc key key-state)))
       ((and (tutcode-register-candidate-key? key key-state)
             tutcode-use-recursive-learning?)
        (tutcode-context-set-state! pc 'tutcode-state-converting)
@@ -1259,7 +1269,7 @@
        ;; <Control>nÅù¤Ç¤ÎÊÑ´¹³«»Ï?
        (if (tutcode-begin-conv-key? key key-state)
          (if (not (null? (tutcode-context-head pc)))
-           (tutcode-begin-conversion pc)
+           (tutcode-begin-conversion pc #t tutcode-use-recursive-learning?)
            (tutcode-flush pc))
          (begin
            (tutcode-flush pc)
@@ -1274,7 +1284,7 @@
          ;;  space¤ÇÊÑ´¹³«»Ï¤Ï¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢<Control>nÅù¤ò»È¤¦É¬Íפ¢¤ê)
          (if (tutcode-begin-conv-key? key key-state)
            (if (not (null? (tutcode-context-head pc)))
-             (tutcode-begin-conversion pc)
+ (tutcode-begin-conversion pc #t tutcode-use-recursive-learning?)
              (tutcode-flush pc))
            (set! res (charcode->string key)))))
       ((tutcode-context-latin-conv pc)
@@ -1839,7 +1849,7 @@
            (tutcode-update-preedit pc))
           (else
            (tutcode-proc-state-off pc key key-state)
-           (if (not (null? (tutcode-context-child-context c)))
+           (if (tutcode-state-has-preedit? c) ; ºÆµ¢³Ø½¬»þ
              (tutcode-update-preedit pc)))))))

 ;;; ¥­¡¼¤¬Î¥¤µ¤ì¤¿¤È¤­¤Î½èÍý¤ò¹Ô¤¦¡£
@@ -1916,7 +1926,7 @@
       (begin
         (tutcode-context-set-nth! pc idx)
         (if (eq? (tutcode-context-state pc) 'tutcode-state-kigou)
-          (im-commit pc (tutcode-prepare-commit-string-for-kigou-mode pc))
+ (tutcode-commit pc (tutcode-prepare-commit-string-for-kigou-mode pc))
           (tutcode-commit-with-auto-help pc))
         (tutcode-update-preedit pc)))))

@@ -2136,6 +2146,27 @@
 ;;; ¥³¡¼¥Éɽ¤Î¾å½ñ¤­Êѹ¹/ÄɲäΤ¿¤á¤Îtutcode-rule-userconfig¤ò
 ;;; ¥³¡¼¥Éɽ¤ËÈ¿±Ç¤¹¤ë¡£
 (define (tutcode-rule-commit-sequences! rules)
- ;; ¥³¡¼¥Éɽ¤Î¸¡º÷¤Ï¥ê¥Ë¥¢¤Ë¹Ô¤ï¤ì¤ë¤Î¤Ç¡¢¥ê¥¹¥È¤ÎÀèÆ¬¤ËÆþ¤ì¤ë¤À¤±¤Ç¾å½ñ¤­¤âOK
-  (if (not (null? rules))
-    (set! tutcode-rule (append rules tutcode-rule))))
+  (let* ((newseqs ()) ;¿·µ¬Äɲ乤륭¡¼¥·¡¼¥±¥ó¥¹
+         ;; ¥³¡¼¥ÉɽÆâ¤Î»ØÄꥷ¡¼¥±¥ó¥¹¤ÇÆþÎϤµ¤ì¤ëʸ»ú¤òÊѹ¹¤¹¤ë¡£
+         ;; seq ¥­¡¼¥·¡¼¥±¥ó¥¹
+ ;; kanji ÆþÎϤµ¤ì¤ëʸ»ú¡£car¤¬¤Ò¤é¤¬¤Ê¥â¡¼¥ÉÍÑ¡¢cadr¤¬¥«¥¿¥«¥Ê¥â¡¼¥ÉÍÑ
+         (setseq1!
+          (lambda (elem)
+            (let* ((seq (caar elem))
+                   (kanji (cadr elem))
+                   (curseq (rk-lib-find-seq seq tutcode-rule))
+                   (pair (and curseq (cadr curseq))))
+              (if (and pair (pair? pair))
+                (begin
+                  (set-car! pair (car kanji))
+                  (if (not (null? (cdr kanji)))
+                    (if (< (length pair) 2)
+                      (set-cdr! pair (list (cadr kanji)))
+                      (set-car! (cdr pair) (cadr kanji)))))
+                (begin
+                  ;; ¥³¡¼¥ÉɽÆâ¤Ë»ØÄꤵ¤ì¤¿¥­¡¼¥·¡¼¥±¥ó¥¹¤ÎÄêµÁ¤¬Ìµ¤¤
+                  (set! newseqs (append newseqs (list elem)))))))))
+    (for-each setseq1! rules)
+    ;; ¿·µ¬Äɲå·¡¼¥±¥ó¥¹
+    (if (not (null? newseqs))
+      (set! tutcode-rule (append newseqs tutcode-rule)))))

Reply via email to