Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

twittering-mode

数あるTwitterクライアントの中から,twittering-modeを愛用しています。
twittering-modeを起動すると,

HTTPS(SSL) is not available because your 'cURL' cannot use HTTPS. Use HTTP instead?"

と表示がでていましたので,HTTPSでは接続出来なかったんだなぁと,あまり気にしてこなかったのですが,いつまでも放っておくのもどうかなと思い調べてみました。
twittering-mode.elを見ると,twittering-start-http-session関数内の以下が関係していそうです。

         ((not (with-temp-buffer
                 (call-process curl-program
                               nil (current-buffer) nil
                               "--version")
                 (goto-char (point-min))
                 (search-forward-regexp
                  "^Protocols: .*https" nil t)))
          (if (yes-or-no-p "HTTPS(SSL) is not available because your 'cURL' cann
ot use HTTPS. Use HTTP instead?")
            (progn (setq twittering-use-ssl nil)
                   (twittering-update-mode-line))
          (message "Request canceled")
          (return)))))

curl-programは,非Windows環境では,curlであり,--versionオプションをつけて実行しています。その結果,httpsにパターンマッチするかどうかでHTTPかHTTPSで起動するかが決まっているようです。以下のように実行してみました。

$ curl --version
curl 7.19.6 (i386-apple-darwin10.0.0) libcurl/7.19.6 zlib/1.2.3
Protocols: tftp ftp telnet dict http file
Features: Largefile libz

なるほど,Protocols行に,httpsが見当たりません。これが,HTTPSモードでtwittering-modeが起動できない原因のようです。
curlをバージョンアップすると,

$ curl --version
curl 7.19.7 (i386-apple-darwin10.2.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3
Protocols: tftp ftp telnet dict http file https ftps
Features: IPv6 Largefile NTLM SSL libz

今度は,httpsが出てきました。これで,twittering-modeを起動すると,晴れてHTTPSモードで起動することができました。こんな簡単な理由なら,もっと早く調べておけばよかったと思います。
twittering-mode.elをざっと斜め読みしてみましたが,ここはこんなことをしているんだろうなというのが分かると,とても楽しいですね。