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)))))