日曜日は子供たちの空手の昇級試験&試合。息子の試合で夫婦そろって大興奮。(3回戦で負けたが)2回も勝って立派、立派。だけど、悔しかったのだろう、負けたあと 15分ぐらいないていたよ。娘は練習試合だったけど判定で勝った。
帰りにヨドバシカメラに行ってデジカメもらってきたんだけど、制御基盤を交換したとのこと。だけど、直っていないんですけど。。。はぁー、また行かなくちゃ。
疲れがぜんぜん抜けていない。とってもとってもだるいので、早く帰宅した。もう寝る。
(let ((buffer (get-buffer-create "*testing*"))) (set-buffer buffer) (erase-buffer) (insert "<b>bold</b> <i>italic</i> <u>underline</u> <b><i>bold italic</i></b> <u><i>underline italic</i></u>") (display-buffer buffer) (sit-for 1) (w3m-fontify))で確かめよー。山岡師と伊東さんに感謝感謝。
(setq w3m-filter-rules
      `(.....
        ("\\`http://www\\.google\\.[^/]+/search\\?" w3m-filter-google-search)))
  
(defun w3m-filter-google-search (url)
  (goto-char (point-min))
  (while (search-forward "<div class=" nil t)
    (goto-char (match-beginning 0))
    (insert "<p>")
    (goto-char (match-end 0))))
最近のグーグルの改造って、なんだか emacs-w3m や w3m だと使いにくい方向に行っているような気が。。。それよりも文字化けなんとかして貰いたいものだ。
(setq w3m-filter-rules
      `(......
	("\\`http://\\(www\\|images\\|news\\|maps\\|groups\\)\\.google\\."
	 w3m-filter-google)))
  
(defvar w3m-filter-google-use-utf8
  (or (featurep 'un-define) (fboundp 'utf-translate-cjk-mode)
      (and (not (equal "Japanese" w3m-language))
	   (w3m-find-coding-system 'utf-8))))
  
(defun w3m-filter-google (url)
  (goto-char (point-min))
  (let ((endm (make-marker))
	(case-fold-search t)
	pos beg end)
    (when (and w3m-filter-google-use-utf8
	       (re-search-forward
     		"<a class=. href=\"http://\\(www\\|images\\|news\\|maps\\|groups\\)\\.google\\."
     		nil t)
     	       (setq pos (match-beginning 0))
     	       (search-backward "<table" nil t)
     	       (setq beg (match-beginning 0))
     	       (search-forward "</table" nil t)
     	       (set-marker endm (match-end 0))
     	       (< pos (marker-position endm)))
      (goto-char beg)
      (while (re-search-forward "[?&][io]e=\\([^&]+\\)&" endm t)
     	(replace-match "UTF-8" nil nil nil 1))
      (setq end (marker-position endm)))
    (when (string-match "\\`http://www\\.google\\.[^/]+/search\\?" url)
      (goto-char (point-max))
      ;; (when (and (search-backward "<div class=" end t)
      ;; (search-forward "</div>" nil t))
      ;; (insert "<hr>"))
      (while (search-backward "<div class=" end t)
	;; (insert "<hr>")))))
	(insert "<p>")))))
コメントを有効にすると、段落の代わりに横線が入るけどやりすぎかな。また、前述の文字化け問題にもアドホックに対応してみた。
(while (re-search-forward "^xxx" nil t) xxxxx)よりも
(while (not (eobp))
  (when (looking-at "^xxx")
    xxxxx)
  (forward-line 1))
の方が速いよ。
Before...
△ 安宅 [フムフム、そんな問題もあるのですね。replace-match の件、ありがとうございます。 *-backward..]
△ ぱんだ [短いコードにみなさま燃ますねぇ。 # 99% 冗談だよ。お仕事頑張ってください > M氏]
△ 安宅 [閉じタグのない p 要素を入れるより、<br/> を insert する方がスマートな気がしてきました。Emacs-..]
△ 土屋 [search-backward() は遅い? という話は初耳. だけど,skip-chars-backward()..]
△ 土屋 [大事な発見を書き忘れた. search-foward() と search-backward() の C レベルの..]