パスワードを忘れた? アカウント作成
564847 journal

umqの日記: 葉っぱツールキットと戯れる 6

日記 by umq
hsgw (14585) さんが、セキュリティアカデミー勉強会(<http://cakeoff.net/announce/050709.txt>) で発表した istrings (<http://openmya.hacker.jp/hasegawa/>)を、つついてみた。

なんとなく、本業でイッパイイッパイなので、表層的なところだけ。

* <del>抽出文字列中の改行文字が、出力に含まれないようなので</del>改行文字が現れても改行されないようなので
  strings(1) と同じように grep(1) などに食わせるのは向かないと思いました。(バグ?)
* map ファイルの指定方法は、以前から悩んでいる旨聞いていましたが、やっぱりあまり使いやすくはないですね。エンコーディング名に引っ掛けてサフィクスを決め打ちするようにしたら、ディレクトリ指定とか使えるようになるかも。
* 日記 (<http://d.hatena.ne.jp/hasegawayosuke/20050710/1121007299#1121007299>) で、Linux 上でもビルドできるはず、とあったので、手元でも試してみた。

cp932.map の作成以外は、動いたので、以下に記録。

makefile (GNU make 用)は、以下のようなのを用意しました。
# Makefile for gmake

PREFIX=/usr/local
TARGET=istrings
LINTFLAGS=-nullasign
INIFILE="$(PREFIX)/etc/istrings.ini"

CFLAGS=-O2 -Wall -DINIFILE=\"$(INIFILE)\"

$(TARGET): istrings.o vstr.o utilstr.o inifile.o mapfile.o dbcs.o debug.o utf16.o utf8.o compati.o
        $(CC) $(CFLAGS) -o $@ $^

clean:
        rm *.o
        rm $(TARGET)

istrings.o: istrings.c istrings.h compati.h vstr.h inifile.h mapfile.h \
    utilstr.h debug.h version.h dbcs.h utf16.h utf8.h
vstr.o: vstr.c vstr.h
utilstr.o: utilstr.c utilstr.h
inifile.o: inifile.c istrings.h compati.h vstr.h inifile.h mapfile.h \
    utilstr.h debug.h
mapfile.o: mapfile.c istrings.h compati.h vstr.h inifile.h mapfile.h \
    utilstr.h debug.h
dbcs.o: dbcs.c istrings.h compati.h vstr.h inifile.h mapfile.h utilstr.h \
    dbcs.h debug.h
debug.o: debug.c debug.h
utf16.o: utf16.c istrings.h compati.h vstr.h inifile.h mapfile.h \
    utilstr.h utf16.h debug.h
utf8.o: utf8.c istrings.h compati.h vstr.h inifile.h mapfile.h utilstr.h \
    utf8.h debug.h
compati.o: compati.c istrings.h compati.h vstr.h inifile.h mapfile.h \
    utilstr.h

コンパイルを通すためだけの場当たり的なパッチは、以下のとおり

--- debug.c.orig Wed Jun 22 17:58:26 2005
+++ debug.c Mon Jul 11 19:29:23 2005
@@ -6,7 +6,9 @@

  static const char *m_file = NULL;
  static int m_line;
-static FILE* m_fp = stderr;
+static FILE* m_fp;
+static void m_fp_construct (void) __attribute__((constructor));
+static void m_fp_cunstruct (void) { m_fp = stderr; }
  static int m_debuglevel = 0;

  int set_debuglevel( int level )

--- utilstr.c.orig Sat Jun 11 13:53:02 2005
+++ utilstr.c Mon Jul 11 19:29:31 2005
@@ -2,6 +2,7 @@
  #include <stddef.h>
  #include <stdio.h>
  #include <stdlib.h>
+#include <errno.h>
  #include "utilstr.h"

  int my_stricmp( const char *s1, const char* s2 )

2005-07-12 12:00+09 追記:
http://archive.openmya.devnull.jp/2005.07/msg00472.html
によると,wakatono さんが,手を入れたそうで,
近々 0.1.1 か 0.2 になるのかな……

2005-07-13 16:20+09 追記:
wakatono 版が公開されました
http://openmya.hacker.jp/hasegawa/istrings/istrings-0.1-wakatono.tar.gz
大まかには,同じような直し方になってるっぽいです。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

普通のやつらの下を行け -- バッドノウハウ専門家

読み込み中...