Source of Nothingness - END)

* Menu

About | Profile | まとめ | オリジナル | xyzzy | あんてな | | buzz

* xyzzy : gtags.l

たかだか3つの関数のためにemacs.lに依存するのはもったいないと思ったので、てきとーに実装してみました。
GPLなんですしemacs.lからもってくるのもありかと。
マイナーモードにする関数はed::toggle-modeを使いましょう。それでelisp::prefix-numeric-valueは不要になります。

(defun count-line(beg end)
  (if (eql beg end)
      0
    (1+ (- (save-excursion
             (goto-char end)
             (when (eql (preceding-char) #\LFD) (backward-char))
             (current-line-number))
           (save-excursion
             (goto-char beg)
             (current-line-number))))))

(defun expand-file-name (file &optional (dir (default-directory)))
  (merge-pathnames file dir))

(ReadMore...)

* xyzzy lisp : へなちょこ補完その3

絞込み
(ReadMore...)

* xyzzy lisp : へなちょこ補完その2

候補の絞込みしていなかったのを修正。
(ReadMore...)

* xyzzy lisp : へなちょこ補完

C/C++とかJavaとかのメンバをdabbrevライクに補完
てきとー
(ReadMore...)

* xyzzy lisp : なんとなく

(defun sort-by-column-region (beg end &optional (f #'<))
  (interactive "*r")
  (let ((lines (split-string (buffer-substring beg end) #\LFD t))
        (pred #'(lambda (x y) (funcall f (length x) (length y)))))
    (setq lines (sort lines pred))
    (goto-char (min beg end))
    (delete-region beg end)
    (insert (format nil "~{~A~%~}" lines))))

*

(defun delete-blank-lines-region (start end)
  (interactive "*r")
  (save-restriction
    (narrow-to-region start end)
    (save-excursion
      (goto-char (point-min))
      (while (and (scan-buffer "^$" :no-dup t :regexp t)
                  (not (eobp)))
        (delete-blank-lines)))))

* xyzzy lisp : junk/httpの利用例として

RandomNote投稿lisp
refwikiのPOST用も作ってみたり。公開はしないけど。
(ReadMore...)

* clispcgi

必須のurl-encode&url-decodeの方法を探す。
clispの場合、このあたりが使えそう。

(format nil "~{~A~}"
        (map 'list
             #'(lambda (x)
                 (format nil "%~2,'0x" x))
             (ext:convert-string-to-bytes "あかさたな" charset:utf-8)))
=>"%E3%81%82%E3%81%8B%E3%81%95%E3%81%9F%E3%81%AA"

よしよしっと。
デコードは大変だな。
違う文字コードでエンコードされてやってきたらどうしたらいいんだろ。

(ReadMore...)

* 2006-02-09

;;; RandomNote投稿
(require "junk/http")

(in-package "junk")

(defvar *rn-url* "http://raido.sakura.ne.jp/southly/rn/index.rb")

(defun rn-post (url str)
  (let (http)
    (multiple-value-bind (proto host file anchor port)
        (junk-http-url-study url)
      (unless (string= proto "http")
        (junk-error "Protocol is not http: ~A" url))
      (unwind-protect
          (multiple-value-prog1
           (setq http (junk-http-request-send host file "POST" :data (format nil "cmd=edit_do&fname=&mes=~A" (si:www-url-encode str nil "0-9A-Za-z"))))
           ; 結果確認するならここ
           (and http (close http)))
        (close http :abort t)))))

(defun user::rn-post-region (beg end)
  (interactive "r")
  (rn-post *rn-url* (buffer-substring beg end)))

ということでできたRandomNote投稿Lisp。
xyzzyからM-x rn-post-regionで投稿します。
編集とか削除はしない方針なので作る予定はありません。

with-open-streamを見てちょっと修正。
一応closeしたほうがいいんだっけ?