Author: yamakenz
Date: Wed Jul 11 00:45:31 2007
New Revision: 4697
Added:
trunk/scm/deprecated-util.scm
- copied, changed from r4696, /trunk/scm/util.scm
Modified:
trunk/scm/Makefile.am
trunk/scm/util.scm
Log:
* scm/util.scm
- (string-list-concat, string-find, truncate-list, list-head, nconc,
string-to-list, symbolconc, nth, nthcdr, copy-list, digit->string,
puts, siod-print, print, feature?, uim-symbol-value-str): Moved to
deprecated-util.scm
- Require deprecated-util.scm
* scm/deprecated-util.scm
- New file copied from util.scm
- (string-list-concat, string-find, truncate-list, list-head, nconc,
string-to-list, symbolconc, nth, nthcdr, copy-list, digit->string,
puts, siod-print, print, feature?, uim-symbol-value-str): Moved
from util.scm
* scm/Makefile.am
- (SCM_FILES): Add deprecated-util.scm
Modified: trunk/scm/Makefile.am
==============================================================================
--- trunk/scm/Makefile.am (original)
+++ trunk/scm/Makefile.am Wed Jul 11 00:45:31 2007
@@ -7,7 +7,7 @@
SCM_FILES = plugin.scm im.scm im-custom.scm lazy-load.scm init.scm \
im-switcher.scm \
default.scm \
- util.scm ichar.scm ustr.scm i18n.scm iso-639-1.scm \
+ util.scm deprecated-util.scm ichar.scm ustr.scm i18n.scm iso-639-1.scm \
key.scm action.scm load-action.scm \
uim-sh.scm uim-db.scm custom.scm custom-rt.scm \
direct.scm \
Copied: trunk/scm/deprecated-util.scm (from r4696, /trunk/scm/util.scm)
==============================================================================
--- /trunk/scm/util.scm (original)
+++ trunk/scm/deprecated-util.scm Wed Jul 11 00:45:31 2007
@@ -1,4 +1,4 @@
-;;; util.scm: Utility functions for uim.
+;;; util.scm: Deprecated utility functions for uim.
;;;
;;; Copyright (c) 2003-2007 uim Project http://code.google.com/p/uim/
;;;
@@ -29,40 +29,8 @@
;;; SUCH DAMAGE.
(use srfi-1)
-(use srfi-6)
(use srfi-34)
-(use srfi-60)
-(require "ichar.scm")
-
-;;;;
-
-(define hyphen-sym (string->symbol "-"))
-
-;;
-;; generic utilities
-;;
-
-;; Make escaped string literal to print a form.
-;;
-;; (string-escape "a str\n") -> "\"a str\\n\""
-;;
-;; The following two codes must display same result. See
-;; test/test-util.scm for further specification.
-;;
-;; (display str)
-;;
-;; (use srfi-6)
-;; (define estr (string-append "(display " (string-escape str) ")"))
-;; (eval (read (open-input-string estr))
-;; (interaction-environment))
-(define string-escape
- (lambda (s)
- (let ((p (open-output-string)))
- (write s p)
- (get-output-string p))))
-
-;; Current uim implementation treats char as integer
(define string-list-concat
(lambda (lst)
@@ -79,126 +47,9 @@
(else #f))
(take lst n))))
-;; procedural 'or' for use with 'apply'
-;; e.g. (apply proc-or boolean-lst)
-;; should be deprecated and replaced with a proper, Schemer's way
-(define proc-or
- (lambda xs
- (if (null? xs)
- #f
- (or (car xs)
- (apply proc-or (cdr xs))))))
-
-;; procedural 'and' for use with 'apply'
-;; e.g. (apply proc-and boolean-lst)
-;; should be deprecated and replaced with a proper, Schemer's way
-(define proc-and
- (lambda xs
- (if (null? xs)
- #t
- (and (car xs)
- (apply proc-and (cdr xs))))))
-
;; should be obsoleted by 'take'
(define list-head take)
-;; TODO: write test
-(define sublist
- (lambda (lst start end)
- (list-tail (list-head lst (+ end 1))
- start)))
-
-;; TODO: write test
-(define sublist-rel
- (lambda (lst start len)
- (sublist lst start (+ start len))))
-
-(define alist-replace
- (lambda (kons alist)
- (let* ((id (car kons))
- (preexisting (assoc id alist)))
- (if preexisting
- (begin
- (set-cdr! preexisting (cdr kons))
- alist)
- (cons kons alist)))))
-
-(define join
- (lambda (sep list)
- (let ((len (length list)))
- (if (= len 0)
- ()
- (cdr (apply append (zip (make-list len sep)
- list)))))))
-
-;; downward compatible with SRFI-13 string-join
-(define string-join
- (lambda (str-list sep)
- (apply string-append (join sep str-list))))
-
-(define string-split
- (lambda (str sep)
- (let ((slen (string-length str))
- (seplen (string-length sep)))
- (let rec ((start 0))
- (let ((next (and (<= start slen)
- (string-contains str sep start))))
- (if next
- (cons (substring str start next)
- (rec (+ next seplen)))
- (list (substring str start slen))))))))
-
-(define string-append-map
- (lambda args
- (apply string-append (apply map args))))
-
-;; symbol-append is a de facto standard procedure name
-(define symbol-append
- (lambda args
- (string->symbol (string-append-map symbol->string args))))
-
-;; only accepts single-arg functions
-;; (define caddr (compose car cdr cdr))
-(define compose
- (lambda args
- (let ((funcs (if (null? args)
- (list (lambda (x) x))
- args)))
- (fold (lambda (f g)
- (lambda (arg)
- (f (g arg))))
- (car (reverse funcs))
- (cdr (reverse funcs))))))
-
-(define method-delegator-new
- (lambda (dest-getter method)
- (lambda args
- (let* ((self (car args))
- (dest (dest-getter self)))
- (apply method (cons dest (cdr args)))))))
-
-;; TODO: write test
-(define safe-car
- (lambda (pair)
- (and (pair? pair)
- (car pair))))
-
-;; TODO: write test
-(define safe-cdr
- (lambda (pair)
- (and (pair? pair)
- (cdr pair))))
-
-;; TODO: write test
-(define assq-cdr
- (lambda (key alist)
- (safe-cdr (assq key alist))))
-
-(define clamp
- (lambda (x bottom ceiling)
- (max bottom
- (min x ceiling))))
-
(define nconc
(lambda (lst obj)
(if (null? lst)
@@ -216,7 +67,11 @@
(list->string (list c)))
(reverse! (string->list s)))))))
-(define symbolconc symbol-append)
+;; symbol-append is not yet defined at here.
+;;(define symbolconc symbol-append)
+(define symbolconc
+ (lambda args
+ (apply symbol-append args)))
;; should be obsoleted by list-ref
(define nth
@@ -259,124 +114,6 @@
(lambda (sym)
(provided? (symbol->string sym))))
-
-;;
-;; uim-specific utilities
-;;
-
-(define do-nothing (lambda args #f))
-
-;; TODO: write test
-(define make-scm-pathname
- (lambda (file)
- (or (and (= (string->charcode file)
- (string->charcode "/"))
- file)
- (string-append (load-path) "/" file))))
-
-;; TODO: write test
-;; returns succeeded or not
-(define try-load
- (lambda (file)
- (guard (err
- (else
- #f))
- ;; to suppress error message, check file existence first
- (and (file-readable? (make-scm-pathname file))
- (load file)))))
-
-;; TODO: write test
-;; returns succeeded or not
-(define try-require
- (lambda (file)
- (guard (err
- (else
- #f))
- ;; to suppress error message, check file existence first
- (and (file-readable? (make-scm-pathname file))
- (require file)))))
-
-;; used for dynamic environment substitution of closure
-(define %%enclose-another-env
- (lambda (closure another-env)
- (let* ((code (%%closure-code closure))
- (args (car code))
- (body (cdr code))
- (definition (list 'lambda args body)))
- (eval definition another-env))))
-
-;; See test/test-util.scm to know what define-record does.
-;; rec-spec requires list of list rather than alist to keep
-;; extensibility (e.g. (nth 2 spec) and so on may be used)
-(define define-record
- (lambda (rec-sym rec-spec)
- (for-each (lambda (spec index)
- (let* ((elem-sym (list-ref spec 0))
- (default (list-ref spec 1))
- (getter-sym (symbolconc rec-sym hyphen-sym elem-sym))
- (getter (lambda (rec)
- (list-ref rec index)))
- (setter-sym (symbolconc rec-sym hyphen-sym 'set-
elem-sym '!))
- (setter (lambda (rec val)
- (set-car! (nthcdr index rec)
- val))))
- (eval (list 'define getter-sym getter)
- (interaction-environment))
- (eval (list 'define setter-sym setter)
- (interaction-environment))))
- rec-spec
- (iota (length rec-spec)))
- (let ((creator-sym (symbolconc rec-sym hyphen-sym 'new))
- (creator (let ((defaults (map cadr rec-spec)))
- (lambda init-lst
- (cond
- ((null? init-lst)
- (copy-list defaults))
- ;; fast path
- ((= (length init-lst)
- (length defaults))
- (copy-list init-lst))
- ;; others
- ((< (length init-lst)
- (length defaults))
- (let* ((rest-defaults (nthcdr (length init-lst)
- defaults))
- (complemented-init-lst (append init-lst
- rest-defaults)))
- (copy-list complemented-init-lst)))
- (else
- #f))))))
- (eval (list 'define creator-sym creator)
- (interaction-environment)))))
-
-;; for direct candidate selection
-(define number->candidate-index
- (lambda (n)
- (cond
- ((= n 0)
- 9)
- ((and (>= n 1)
- (<= n 9))
- (- n 1))
- (else
- n))))
-
-;; update style-element vars
-;; style-spec requires list of (style-element-name . validator)
-(define update-style
- (lambda (style-spec style)
- (let* ((elem (car style))
- (name (car elem))
- (val (if (symbol? (cdr elem))
- (symbol-value (cdr elem))
- (cdr elem)))
- (spec (assq name style-spec))
- (valid? (symbol-value (cdr spec))))
- (if (valid? val)
- (set-symbol-value! name val))
- (if (not (null? (cdr style)))
- (update-style style-spec (cdr style))))))
-
;; for backward compatibility
(define uim-symbol-value-str
(lambda (sym)
@@ -386,48 +123,3 @@
(if (symbol? val)
(symbol->string val)
val))))
-
-;;
-;; Preedit color related configurations and functions.
-;;
-(define reversed-preedit-foreground #f)
-(define reversed-preedit-background #f)
-(define separator-foreground #f)
-(define separator-background #f)
-(define reversed-separator-foreground #f)
-(define reversed-separator-background #f)
-
-(define uim-color-spec
- '((reversed-preedit-foreground . string?)
- (reversed-preedit-background . string?)
- (separator-foreground . string?)
- (separator-background . string?)
- (reversed-separator-foreground . string?)
- (reversed-separator-background . string?)))
-
-;; predefined color styles
-(define uim-color-uim
- '((reversed-preedit-foreground . "white")
- (reversed-preedit-background . "black")
- (separator-foreground . "lightsteelblue")
- (separator-background . "")
- (reversed-separator-foreground . "white")
- (reversed-separator-background . "black")))
-(define uim-color-atok
- '((reversed-preedit-foreground . "black")
- (reversed-preedit-background . "cyan")
- (separator-foreground . "lightsteelblue")
- (separator-background . "")
- (reversed-separator-foreground . "black")
- (reversed-separator-background . "blue")))
-
-(define context-update-preedit
- (lambda (context segments)
- (im-clear-preedit context)
- (for-each (lambda (segment)
- (if segment
- (let ((attr (car segment))
- (str (cdr segment)))
- (im-pushback-preedit context attr str))))
- segments)
- (im-update-preedit context)))
Modified: trunk/scm/util.scm
==============================================================================
--- trunk/scm/util.scm (original)
+++ trunk/scm/util.scm Wed Jul 11 00:45:31 2007
@@ -34,6 +34,7 @@
(use srfi-60)
(require "ichar.scm")
+(require "deprecated-util.scm")
;;;;
@@ -62,23 +63,6 @@
(write s p)
(get-output-string p))))
-;; Current uim implementation treats char as integer
-
-(define string-list-concat
- (lambda (lst)
- (apply string-append (reverse lst))))
-
-(define string-find
- (lambda (lst str)
- (member str lst)))
-
-;; should be obsoleted by 'take'
-(define truncate-list
- (lambda (lst n)
- (guard (err
- (else #f))
- (take lst n))))
-
;; procedural 'or' for use with 'apply'
;; e.g. (apply proc-or boolean-lst)
;; should be deprecated and replaced with a proper, Schemer's way
@@ -99,9 +83,6 @@
(and (car xs)
(apply proc-and (cdr xs))))))
-;; should be obsoleted by 'take'
-(define list-head take)
-
;; TODO: write test
(define sublist
(lambda (lst start end)
@@ -199,66 +180,6 @@
(max bottom
(min x ceiling))))
-(define nconc
- (lambda (lst obj)
- (if (null? lst)
- obj
- (begin
- (set-cdr! (last-pair lst) obj)
- lst))))
-
-;; split EUC-JP string into reversed character list
-(define string-to-list
- (lambda (s)
- (with-char-codec "EUC-JP"
- (lambda ()
- (map! (lambda (c)
- (list->string (list c)))
- (reverse! (string->list s)))))))
-
-(define symbolconc symbol-append)
-
-;; should be obsoleted by list-ref
-(define nth
- (lambda (k lst)
- (list-ref lst k)))
-
-;; should be obsoleted by list-tail
-(define nthcdr
- (lambda (k lst)
- (guard (err
- (else #f))
- (list-tail lst k))))
-
-;; should be obsoleted by list-copy of SRFI-1
-(define copy-list
- (lambda (lst)
- (append lst '())))
-
-(define digit->string
- (lambda (n)
- (and (number? n)
- (number->string n))))
-
-;;
-;; SIOD compatibility
-;;
-(define puts display)
-
-;; TODO: Rename to more appropriate name such as 'inspect' (the name
-;; came from debugging terms) or simply 'writeln'. But since I don't
-;; know Scheme culture enough, I can't determine what is appropriate.
-(define siod-print
- (lambda (obj)
- (write obj)
- (newline)))
-
-(define print siod-print)
-
-(define feature?
- (lambda (sym)
- (provided? (symbol->string sym))))
-
;;
;; uim-specific utilities
@@ -376,16 +297,6 @@
(set-symbol-value! name val))
(if (not (null? (cdr style)))
(update-style style-spec (cdr style))))))
-
-;; for backward compatibility
-(define uim-symbol-value-str
- (lambda (sym)
- (let ((val (if (symbol-bound? sym)
- (symbol-value sym)
- "")))
- (if (symbol? val)
- (symbol->string val)
- val))))
;;
;; Preedit color related configurations and functions.