c

RPDL 用 cups-raster フィルタを書いた

Ricoh IPSiO SP6120 を Linux から使うシリーズ。前回は Ricoh RPDL IV Laser Printer Foomatic ドライバの出力をフィルタするスクリプトを書いて両面印刷に対応させたりしました。この場合の印刷フローは下記のようになっています。 ドキュメント =[cairo]=…

APR を利用したプログラムの autotools 化

APR を利用したプログラムを書いていて,それを配布したい。 MODULE.JP - Apache Portable Runtimeをあなたのプロジェクトに取り込む という素晴らしいテキストがあるんだけど,これはソースディストリビューションに APR library を同梱する前提でかかれて…

APR-util の DBD API を使ってみる

APR(の一部の APR-util)には,各種データベースを統一インタフェースで使うことのできる DBD API があります。のでちょっと使ってみました。ちなみに普通に C でアプリケーションを書いている人にはあまりおすすめできないと思います。統一インタフェース…

gnome-keyring を利用してコマンドライン上のパスワードを置換する

今日はサーバ向けじゃなくて Linux クライアント向け(かつ GNOME 上)な話です。コマンドラインのオプションからパスワードを指定できるコマンドがありますよね。例えば,リモートデスクトップに接続するコマンド rdesktop % rdesktop -u dayflower -p hoge…

mod_proxy_mapper.c

/* ** mod_proxy_mapper.c */ #include "httpd.h" #include "http_config.h" #include "http_log.h" #include "http_protocol.h" #include "http_request.h" #include "http_core.h" #include "ap_config.h" #include "apr_strings.h" #if 0 || defined(__GN…

Apache の provider 機構 - 他モジュールに移譲するしくみ

2008-11-13 追記: タイトルを変更しました用語定義をしておきます。 consumer provider の提供する情報を取得する役割をになう provider consumer の要求する情報を提供する役割をになう 「情報」というのは const void * 型の値1つ,なのでなんでもよいです…

libxml2 の XmlTextReader インタフェースで XML をパースする

libxml2 のドキュメントを眺めていたら,DOM インタフェースや SAX インタフェースだけではなく,XmlTextReader インタフェースというのもありました。これはドキュメントをパースしながら(ストリーミング)処理をしていくという点で SAX インタフェースに…

libxml2 の SAX インタフェースで XML をパースする

c

思うところあって LL からではなく C で libxml2 を使ってみました*1。普通にメモリ上やファイル上の XML ドキュメントを SAX インタフェースでパースするだけであれば,最上位 API の [http://xmlsoft.org/html/libxml-parser.html#xmlSAXUserParseFile:tit…

V8 で C++ から JS Object のプロパティを列挙したい

C++ で V8 を拡張する関数とか書いていると,JavaScript から Object(というか,今回のコンテキストではざっくりいうと Hash 的なもの)をわたしてあれこれしたい,という欲求がでてきます。たとえば Object から apr_table_t に変換したい,とかね。 もっ…

V8 (Google JavaScript Engine) を embed した感想とかあれこれ

なぜ CodeRepos に登録しないのか べつだん深意や確執があるわけじゃなくて,華々しく 500 人めのコミッタになろうと思ったら,現在 461 人だったからです。ということで 38 人の方々,コミッタ登録してください ;P冗談はともかくおまえの書いた汚いコードを…

よくよく考えたら

c

ゆの in Lex - daily dayflower ゆの in yacc - daily dayflower どちらも標準入力から読んで答えを吐いているので,要件と違う気がしてきた。これじゃだめですね。でも bison で '/' とか ' とか token にできない(クォーテーションで囲まないとだめ)。ぐ…

ゆの in yacc

c

パーサかませばなんでもありだな…… %{ #include <stdio.h> #include <string.h> %} %union { char *str; } %token X %token <str> STRING %type <str> face mouths left_part right_part mouth %% sayhello: face '<' STRING '!' { fputs($1, stdout); fputc(' ', stdout); fputs($3, stdo</str></str></string.h></stdio.h>…

ゆの in Lex

c

元ネタ*1がいまいちわかんないすが,id:cho45 さんに捕捉されたかったので書いてみました。Lex なので C と絡めないと動かないところが歯がゆいところですけど。 %{ #include <stdio.h> int yywrap(void) { return 1; } %} %x BACK %x SPEAK %% [ \t]+ /* whitespaces</stdio.h>…

ld 2.18 の -Bsymbolic オプションを使うと共有ライブラリ内でシンボルをローカルバインドできる

Linux の共有ライブラリの挙動について - daily dayflower の続きです。下記は Ubuntu Hardy (8.04) i386 で動作確認しました。 ld 2.18 の -Bsymbolic オプション 昨日書いた通り,Linux で共有ライブラリを利用したプログラムを作る場合,共有ライブラリ内…

Linux の共有ライブラリの挙動について

前フリが長くなったので基礎的な部分は独立した article にしました。でも基礎的な内容だけに間違いが多そうです。ご指摘お願いします。下記に「Hack#??」と書いてあるものはすべて Binary Hacks の Hack です。書籍をお持ちの方はそちらをご参照ください。 …