Source of Nothingness - change_log

change log

@@@ 1158076058.txt @@@
Scrapbook : MYCOM BOOKS - 入門Common Lisp〜関数型4つの特徴とλ計算
http://book.mycom.co.jp/book/4-8399-2081-8/4-8399-2081-8.shtml
2006-09-20 (Wed) 12:13:36
@@@ 1158686031.txt @@@
2006-09-20
で、移植の手順。
1. Emacs lisp 移植キットを使えるようにする。
2. 使えないもの(defgroup, font-lock関係, フレーム関係, etc)をコメントアウト
3. 文字の表現を書き直し(?a → #\a) 特に#\SPCとか
4. キーバインドの記述を書き直し(文字列 → 文字 or cons)
5. formatの引数を直す
6. 無い関数を記述 & 無い変数を代替の関数へ
7. 位置の調整(xyzzyは0 origin, emacsは1 origin)
8. functionとsymbol
9. その他こまごまとした修正
2006-09-20 (Wed) 02:14:55
@@@ 1158684505.txt @@@
xyzzy lisp : Buffer selection
http://www.geekware.de/software/emacs/#bs
の移植をしてみました。
http://raido.sakura.ne.jp/southly/xyzzy/site-lisp/bs-20060920.lzh

気が向いたときにでもNetInstaller用のパッケージにします。
2006-09-20 (Wed) 01:49:48
@@@ 1158060755.txt @@@
2006-09-11
うまくいってないと思ってたらいつの間にやら大丈夫になったみたい。
キャッシュか何かが原因だったのかな。
2006-09-12 (Tue) 23:48:34
@@@ 1157478859.txt @@@
下書き
----
 <chapter>
 <title>interactive</title>
 <type>Special Form</type>
 <arguments>interactive {INTERACTIVE-STRING {PARAMETER}*|LIST}</arguments>
 <package>editor</package>
 <description>
 関数が対話的に実行可能であること、すなわちコマンドであることを宣言します。
 このフォームを定義に含む関数は対話的に実行できます。
 対話的に実行とは具体的には
 ・キーバインドでの実行
 ・M-x (execute-extended-command) での実行
 ・ツールバーでの実行
 などです。
 
 INTERACTIVE-STRINGの内容によって対話的に実行したときに
 関数に渡す引数やその与え方を制御します。
 INTERACTIVE-STRINGの構成は以下のようになります。
   *             任意。書込み禁止バッファでの実行を禁止します。
   0             任意。プロンプトに数引数がつきます。
   指示子        引数に与えるデータとその与え方の指定になります。
   任意の文字列  ミニバッファで引数を与えるときのプロンプトになります。
   \n            区切り文字です。続けて次の引数についての記述ができます。
 
 PARAMETERでは指示子に対する設定を記述できます。
  :defaultN      初期表示
  :historyN      履歴情報
  :titleN        ダイアログのタイトル
 Nの部分には何番目の指示子に対する設定かという数値が入ります。
 
 {属性}
  P: Prompt       ミニバッファでユーザー入力
  M: Must Match   正しく入力されるまで繰り返す
  C: Completion   入力候補表示・補完あり
  D: Default      :default使用可能
  H: History      :history使用可能
  T: Title        :title使用可能
 
 [最終変換値]
 {xx}    - 関数には xxx 型の値がくる
 {xx/yy} - 入力値が省略又は未定義値だと、yy型がくる。
 {xx|yy} - 入力値が多重値だと、yy の型でくる
 {*****} - なんでもあり
   
   {MCPDHT}
 d {      }[integer]       ポイント位置
 m {      }[integer]       マーク位置
 r {      }[integer]       リージョン(一つ目がマーク位置、二つ目がポイント位置)
 M {      }[integer]       セレクション開始位置
 R {      }[integer]       セレクション範囲(一つ目がセレクションの始点、二つ目がセレクションの終点)
 p {      }[integer]       前置引数の値
 P {      }[symbol/nil]    生の前置引数
 s {  PDH }[string]        文字列
 a {MCPDH }[symbol]        関数名
 C {MCPDH }[symbol]        コマンド名
 S {MCPDH }[symbol]        シンボル
 v {MCPDH }[symbol]        変数名
 F { CPDHT}[string]        ファイル名
 l { CPDHT}[string|cons]   ファイル名(複数可)
 f {MCPDHT}[string]        既存のファイル名
 D {MCPDHT}[string]        ディレクトリ名
 B { CPDH }[buffer/string] バッファ名
 b {MCPDH }[buffer]        既存のバッファ名
 N {M P   }[integer]       整数(前置引数を優先)
 n {M P   }[integer]       整数
 x {  P   }[*****]         S式そのもの
 X {  P   }[*****]         S式(引数には評価した値が渡される)
 c {  P   }[character]     文字
 e { CPDH }[string]        実行ファイル
 z {MCP H }[encoding]      文字エンコーディング
 Z {MCP H }[encoding]      文字エンコーディング
 
 新たに任意の指示子を作成することもできます。
 
 備考:
 ・PARAMETERで:emacsにnon-nilを指定するとemacsとの互換性を考慮した動作になります。
 ・0z, 0Z
 </description>
 <seealso></seealso>
 <link></link>
 <section>関数</section>
 <file>builtin.l</file>
 </chapter>
2006-09-11 (Mon) 21:53:02
@@@ 1157478859.txt @@@
下書き
----
 <chapter>
 <title>interactive</title>
 <type>Special Form</type>
 <arguments>interactive {INTERACTIVE-STRING {PARAMETER}*|LIST}</arguments>
 <package>editor</package>
 <description>
 関数が対話的に実行可能であること、すなわちコマンドであることを宣言します。
 このフォームを定義に含む関数は対話的に実行できます。
 対話的に実行とは具体的には
 ・キーバインドでの実行
 ・M-x (execute-extended-command) での実行
 ・ツールバーでの実行
 などです。
 
 INTERACTIVE-STRINGの内容によって対話的に実行したときに
 関数に渡す引数やその与え方を制御します。
 INTERACTIVE-STRINGの構成は以下のようになります。
   *             任意。書込み禁止バッファでの実行を禁止します。
   0             任意。プロンプトに数引数がつきます。
   制御文字      引数に与えるデータとその与え方の指定になります。
   任意の文字列  ミニバッファで引数を与えるときのプロンプトになります。
   \n            区切り文字です。続けて次の引数についての記述ができます。
 
 {属性}
  P: Prompt       ミニバッファでユーザー入力
  M: Must Match   正しく入力されるまで繰り返す
  C: Completion   入力候補表示・補完あり
  D: Default      :default使用可能
  H: History      :history使用可能
  T: Title        :title使用可能
 
 [最終変換値]
 {xx}    - 関数には xxx 型の値がくる
 {xx/yy} - 入力値が省略又は未定義値だと、yy型がくる。
 {xx|yy} - 入力値が多重値だと、yy の型でくる
 {*****} - なんでもあり
   
   {MCPDHT}
 d {      }[integer]       ポイント位置
 m {      }[integer]       マーク位置
 r {      }[integer]       リージョン(一つ目がポイント位置、二つ目がマーク位置)
 M {      }[integer]       セレクション開始位置
 R {      }[integer]       セレクション範囲(一つ目がセレクションの終点、二つ目がセレクションの始点)
 p {      }[integer]       前置引数の値
 P {      }[symbol/nil]    生の前置引数
 s {  PDH }[string]        文字列
 a {MCPDH }[symbol]        関数名
 C {MCPDH }[symbol]        コマンド名
 S {MCPDH }[symbol]        シンボル
 v {MCPDH }[symbol]        変数名
 F { CPDHT}[string]        ファイル名
 l { CPDHT}[string|cons]   ファイル名(複数可)
 f {MCPDHT}[string]        既存のファイル名
 D {MCPDHT}[string]        ディレクトリ名
 B { CPDH }[buffer/string] バッファ名
 b {MCPDH }[buffer]        既存のバッファ名
 N {M P   }[integer]       整数(前置引数を優先)
 n {M P   }[integer]       整数
 x {  P   }[*****]         S式そのもの
 X {  P   }[*****]         S式(引数には評価した値が渡される)
 c {  P   }[character]     文字
 e { CPDH }[string]        実行ファイル
 z {MCP H }[encoding]      文字エンコーディング
 Z {MCP H }[encoding]      文字エンコーディング
 </description>
 <seealso></seealso>
 <link></link>
 <section>関数</section>
 <file>builtin.l</file>
 </chapter>
2006-09-11 (Mon) 19:39:44
NANRI intern FreeBSD bufbar xdoc format nat math kamail psearch Subversion -Scrapbook xyzzy FORTRAN wget 検索キーワード ibis mathworld mode gnu memo Scrapbook topic Wikipedia pdic.l rm diff Wiki記法 outline w3m clisp ls apache gpg lisp BSD changelog shell ブックマーク reftex fortran Linux make-process RandomNote makefile
2006-09-11 (Mon) 16:16:13
@@@ 1141132537.txt @@@
RandomNote : ChangeLog (改造記録)
-2006-04-25 : RSSのdescriptionまわりとか(うっかり検索履歴を消してしまう(汗 )
-2006-04-12 : へなちょこspam対策 第一弾の修正
-2006-04-02 : RSSをファイルに出力するようにした
-2006-04-02 : なんか細々と
-2006-03-26 : RSSも検索結果に(完成)
-2006-03-23 : RSSも検索結果に(途中まで)
-2006-03-17 : change_logを少し見易くした
-2006-03-04 : へなちょこspam対策 第一弾
-2006-03-03 : 下部にもページリンクを設置
-2006-02-28 : refererの表示をカウント2以上に
-2006-02-28 : 特定leafへのリンクに別名をつける
-2006-02-28 : こまごまとしたこと
-2006-02-22 : コメント欄 (飾り)
-2006-02-22 : RSS周り (RSS auto-discovery & HTTP応答ヘッダ)
-2006-02-19 : NOT検索 (へなちょこ)
-2006-02-13 : ブックマーク

→[[Todo self:1140534666.txt]]
2006-09-08 (Fri) 05:02:25
@@@ 1155828305.txt @@@
xyzzy lisp : へなちょこ補完その3
細かいバグをつぶす。
----
 (defun dmc-instance-name ()
   (save-excursion
     (let ((start (progn (skip-syntax-spec-backward "w_") (point))))
       (cond
        ((char= #\. (char-before start))
         (buffer-substring (progn (forward-char -1) (skip-syntax-spec-backward "w_") (point)) (1- start)))
        ((and (char= #\> (char-before start))
              (char= #\- (char-before (1- start))))
         (buffer-substring (progn (forward-char -2) (skip-syntax-spec-backward "w_") (point)) (- start 2)))
        (t
         nil)))))
 
 (defun dmc-find-all-candidates (name abbrev case-fold match-table start matches)
   (let ((regexp (compile-regexp (concat (regexp-quote name) "\\(\\.\\|->\\)")))
         (f (if *dabbrevs-case-fold* #'string-equal #'string=)))
     (save-excursion
       (goto-char (point-min))
       (while (scan-buffer regexp :case-fold case-fold
                           :tail t :left-bound :symbol :regexp t)
         (let ((from (point))
               (text (buffer-substring (point) (save-excursion (skip-syntax-spec-forward "w_") (point)))))
           (unless (or (eql from start)
                       (gethash text match-table)
                       (> (length abbrev) (length text))
                       (and abbrev (not (funcall f abbrev text :end2 (length abbrev)))))
             (setf (gethash text match-table) from)
             (if (< 0 (length text))
                 (push text matches)))))
       matches)))
 
 (defun dmc-popup ()
   (interactive "*")
   (let ((end (point))
         (start (save-excursion (skip-syntax-spec-backward "w_") (point)))
         (name (dmc-instance-name)))
     (unless name
       (return-from dmc-popup nil))
     (let ((match-table (make-hash-table :test (if *dabbrevs-case-fold* #'equalp #'equal)))
           matches abbrev)
       (when (/= start end)
         (setq abbrev (buffer-substring start end))
         (setf (gethash abbrev match-table) start))
       (setq matches (dmc-find-all-candidates name abbrev *dabbrevs-case-fold* match-table start nil))
       (unless *dabbrev-popup-this-buffer-only*
         (let ((curbuf (selected-buffer))
               (case-fold *dabbrevs-case-fold*)
               (syntax-table (syntax-table)))
           (with-set-buffer
             (with-interval-message (300)
               (save-excursion
                 (dolist (buffer (buffer-list))
                   (unless (eq buffer curbuf)
                     (message "Searching (~A)..." (buffer-name buffer))
                     (set-buffer buffer)
                     (save-excursion
                       (let ((osyntax-table (syntax-table)))
                         (unwind-protect
                             (progn
                               (use-syntax-table syntax-table nil t)
                               (setq matches (dmc-find-all-candidates
                                              name abbrev case-fold match-table nil matches)))
                           (use-syntax-table osyntax-table nil t))))))))))
         (clear-message))
       (if matches
           (ed::popup-completion-list (sort matches #'string-lessp) start end)
         (plain-error "ないよん")))))
2006-08-18 (Fri) 00:50:46
@@@ 1155742193.txt @@@
xyzzy lisp : へなちょこ補完その2
候補の絞込みしていなかったのを修正。

 (defun dmc-instance-name ()
   (save-excursion
     (let ((start (progn (skip-syntax-spec-backward "w_") (point))))
       (cond
        ((char= #\. (char-before start))
         (buffer-substring (progn (forward-char -1) (skip-syntax-spec-backward "w_") (point)) (1- start)))
        ((and (char= #\> (char-before start))
              (char= #\- (char-before (1- start))))
         (buffer-substring (progn (forward-char -2) (skip-syntax-spec-backward "w_") (point)) (- start 2)))
        (t
         nil)))))
 
 (defun dmc-find-all-candidates (name abbrev case-fold match-table start matches)
   (let ((regexp (compile-regexp (concat (regexp-quote name) "\\(\\.\\|->\\)")))
         (f (if *dabbrevs-case-fold* #'string-equal #'string=)))
     (save-excursion
       (goto-char (point-min))
       (while (scan-buffer regexp :case-fold case-fold
                           :tail t :left-bound :symbol :regexp t)
         (let ((from (point))
               (text (buffer-substring (point) (save-excursion (skip-syntax-spec-forward "w_") (point)))))
           (unless (or (eql from start)
                       (gethash text match-table)
                       (and abbrev (not (funcall f abbrev text :end2 (length abbrev)))))
             (setf (gethash text match-table) from)
             (push text matches))))
       matches)))
 
 (defun dmc-popup ()
   (interactive "*")
   (let ((end (point))
         (start (save-excursion (skip-syntax-spec-backward "w_") (point)))
         (name (dmc-instance-name)))
     (unless name
       (return-from dmc-popup nil))
     (let ((match-table (make-hash-table :test (if *dabbrevs-case-fold* #'equalp #'equal)))
           matches abbrev)
       (when (/= start end)
         (setq abbrev (buffer-substring start end))
         (setf (gethash abbrev match-table) start))
       (setq matches (dmc-find-all-candidates name abbrev *dabbrevs-case-fold* match-table start nil))
       (unless *dabbrev-popup-this-buffer-only*
         (let ((curbuf (selected-buffer))
               (case-fold *dabbrevs-case-fold*)
               (syntax-table (syntax-table)))
           (with-set-buffer
             (with-interval-message (300)
               (save-excursion
                 (dolist (buffer (buffer-list))
                   (unless (eq buffer curbuf)
                     (message "Searching (~A)..." (buffer-name buffer))
                     (set-buffer buffer)
                     (save-excursion
                       (let ((osyntax-table (syntax-table)))
                         (unwind-protect
                             (progn
                               (use-syntax-table syntax-table nil t)
                               (setq matches (dmc-find-all-candidates
                                              name abbrev case-fold match-table nil matches)))
                           (use-syntax-table osyntax-table nil t))))))))))
         (clear-message))
       (if matches
           (ed::popup-completion-list (sort matches #'string-lessp) start end)
         (plain-error "ないよん")))))
2006-08-17 (Thu) 00:30:24
@@@ 1155659180.txt @@@
xyzzy lisp : へなちょこ補完
C/C++とかJavaとかのメンバをdabbrevライクに補完。
てきとー
----
 (defun dmc-instance-name ()
   (save-excursion
     (let ((start (progn (skip-syntax-spec-backward "w_") (point))))
       (cond
        ((char= #\. (char-before start))
         (buffer-substring (progn (forward-char -1) (skip-syntax-spec-backward "w_") (point)) (1- start)))
        ((and (char= #\> (char-before start))
              (char= #\- (char-before (1- start))))
         (buffer-substring (progn (forward-char -2) (skip-syntax-spec-backward "w_") (point)) (- start 2)))
        (t
         nil)))))
 
 (defun dmc-find-all-candidates (name case-fold match-table start matches)
   (let ((no-dup nil)
         (regexp (compile-regexp (concat (regexp-quote name) "\\(\\.\\|->\\)\\([A-Za-z_][0-9A-Za-z_]+\\)"))))
     (save-excursion
       (goto-char (point-min))
       (while (scan-buffer regexp :case-fold case-fold
                           :no-dup no-dup :left-bound :symbol :regexp t)
         (let ((from (match-beginning 2))
               (text (match-string 2)))
           (unless (or (eql from start)
                       (gethash text match-table))
             (setf (gethash text match-table) from)
             (push text matches)))
         (setq no-dup t))
       matches)))
 
 (defun dmc-popup ()
   (interactive "*")
   (let ((end (point))
         (start (save-excursion (skip-syntax-spec-backward "w_") (point)))
         (name (dmc-instance-name)))
     (unless name
       (return-from dmc-popup nil))
     (let ((match-table (make-hash-table :test (if *dabbrevs-case-fold* #'equalp #'equal)))
           matches)
       (when (/= start end)
         (setf (gethash (buffer-substring start end) match-table) start))
       (setq matches (dmc-find-all-candidates name *dabbrevs-case-fold* match-table start nil))
       (unless *dabbrev-popup-this-buffer-only*
         (let ((curbuf (selected-buffer))
               (case-fold *dabbrevs-case-fold*)
               (syntax-table (syntax-table)))
           (with-set-buffer
             (with-interval-message (300)
               (save-excursion
                 (dolist (buffer (buffer-list))
                   (unless (eq buffer curbuf)
                     (message "Searching (~A)..." (buffer-name buffer))
                     (set-buffer buffer)
                     (save-excursion
                       (let ((osyntax-table (syntax-table)))
                         (unwind-protect
                             (progn
                               (use-syntax-table syntax-table nil t)
                               (setq matches (dmc-find-all-candidates
                                              name case-fold match-table nil matches)))
                           (use-syntax-table osyntax-table nil t))))))))))
         (clear-message))
       (if matches
           (ed::popup-completion-list (sort matches #'string-lessp) start end)
         (plain-error "ないよん")))))

TODO
-探すときはちゃんとシンタックステーブルをみるように
2006-08-16 (Wed) 01:27:47
@@@ AboutPage.txt @@@
RandomNote について。
RandomNote について。
2006-08-08 (Tue) 01:43:20
@@@ 1141739710.txt @@@
memo : コマンドプロンプト周りの環境改善
Cygwin無しでそれなりの環境を作る。

*まずはターミナルをましにする
-ckw(http://www.geocities.jp/cygwin_ck/)を使う

*コマンドを揃える
-Native Win32 ports of some GNU utilities(http://unxutils.sourceforge.net/)
--とりあえず
-GnuWin32(http://gnuwin32.sourceforge.net/)
--上で足りないものがあれば
-NT版UNIX-like tools(http://www.piedey.co.jp/softs/ntuxtl.html)
--日本語に対応したものが欲しいとき

その他[[この辺 http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en]]とか、探せばいろいろと。

これでコマンドへパスを通せばそれなりに使える

*エイリアスを設定
ckwの起動時にバッチファイルを実行していろいろ設定する。
.bashrcとかの代わり。
 ckw.exe -e init.bat

**init.batの中身
 @echo off
 set Path=X:\usr\local\bin;%Path%
 cmd.exe /K doskey /listsize=500 /macrofile=X:\doskey.txt
普段はGNUのコマンドの優先順位を下げているから設定しなおしているけど、この辺は好き好き。
doskey.txtにエイリアスの設定が書いてある。

**doskey.txtの中身
 xyzzy=X:\xyzzy\xyzzycli.exe $*
 ll=ls -l $*
 la=ls -al $*
 history=doskey /history
 alias=doskey /macros
 date=X:\usr\local\bin\date.exe $*
 echo=X:\usr\local\bin\echo.exe $*
 sort=X:\usr\local\bin\sort.exe $*
 clear=cls
引数をとるものにはそう明示するというところがシェルと異なる。
cmdの内部コマンドは定義を上書きしないと常に優先される。

----
Native Win32 ports of some GNU utilities についてくる zsh がそれなりに日本語に対応していれば、こんな面倒なことをしなくてすむのですが…(^^;
2006-08-04 (Fri) 01:08:18
@@@ HeaderPage.txt @@@
Menu
[[About self:AboutPage.txt]] | [[オリジナル http://ninjinix.x0.com/rn/]] | [[xyzzy http://raido.sakura.ne.jp/southly/xyzzy/site-lisp/]] | [[あんてな http://i-know.jp/southly/listall]]
2006-08-03 (Thu) 12:48:26
@@@ AboutPage.txt @@@
RandomNote について。
RandomNote について。
2006-08-03 (Thu) 12:48:25
page 14 - << : 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 21 : 22 : 23 : 24 : 25 : 26 : 27 : 28 : 29 : >>