[PHP-dev 958]Re: Signal11で落ちる(php-src/ext/standard/
NAKAMURA Takeshi
1yen @ sh.rim.or.jp
2003年 12月 24日 (水) 08:24:36 JST
仲村です。
とりあえず、動くのを書きましたが、
空行を読む動作はまだ良いとして... まともなプログラム希望。
# 久しぶりに ddd とか、関数名を探すために始めて cc -S とか使いました。
On Tue, Dec 23, 2003 at 09:45:33PM +0900,
NAKAMURA Takeshi wrote:
>> ただ、空行があるとそれから先を読まなかったり
>> 「文字,文字,文字,」と、デリミタのすぐ後が行末だと ("文字","文字","文字")
>> と、3つしか帰ってこないようです。
>> 空行の後もそのまま読んだり、("文字","文字","文字","") と、4つ
>> 返すことはできないでしょうか?
Index: ext/standard/file.c
===================================================================
RCS file: /cvs/php/php-src/ext/standard/file.c,v
retrieving revision 1.279.2.49
diff -u -r1.279.2.49 file.c
--- ext/standard/file.c 23 Dec 2003 11:06:42 -0000 1.279.2.49
+++ ext/standard/file.c 23 Dec 2003 23:19:33 -0000
@@ -2284,9 +2284,21 @@
if (!enclosure || !(p = _php_fgetcsv_find_enclosure(s, (e - s), enclosure))) {
no_enclosure:
- while ((p = memchr(s, delimiter, (e - s)))) {
- CSV_ADD_ENTRY(s, p, s);
- s = p + 1;
+ /** is enpty line? **/
+ if( s == e ){
+ CSV_ADD_ENTRY(s, 0, 0);
+ }else{
+ while ((p = memchr(s, delimiter, (e - s)))){
+ printf(" p: %s", p);
+ CSV_ADD_ENTRY(s, p, s);
+ s = p + 1;
+
+ /***** ad hock ******/
+ /** Please help me **/
+ if ( s == e ){
+ CSV_ADD_ENTRY(s, 0, 0);
+ }
+ }
}
} else {
char *p2=NULL;
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+
関西沖縄青年の集い がじまるの会 手伝い 一人だけの勝手に神奈川支部
仲村 武 <1yen @ sh.rim.or.jp>
PHP-dev メーリングリストの案内