split stdin
This commit is contained in:
parent
d8f764ec64
commit
36fe342ffd
@ -1,5 +1,5 @@
|
|||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char rcsid[] = "@(#$Id: textsplit.cpp,v 1.14 2005-11-24 07:16:15 dockes Exp $ (C) 2004 J.F.Dockes";
|
static char rcsid[] = "@(#$Id: textsplit.cpp,v 1.15 2005-12-04 17:10:22 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||||
#endif
|
#endif
|
||||||
#ifndef TEST_TEXTSPLIT
|
#ifndef TEST_TEXTSPLIT
|
||||||
|
|
||||||
@ -372,6 +372,7 @@ static string thisprog;
|
|||||||
static string usage =
|
static string usage =
|
||||||
" textsplit [opts] [filename]\n"
|
" textsplit [opts] [filename]\n"
|
||||||
" -q: query mode\n"
|
" -q: query mode\n"
|
||||||
|
" if filename is 'stdin', will read stdin for data (end with ^D)\n"
|
||||||
" \n\n"
|
" \n\n"
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -408,9 +409,15 @@ int main(int argc, char **argv)
|
|||||||
TextSplit splitter(&cb, (op_flags&OPT_q) ? true: false);
|
TextSplit splitter(&cb, (op_flags&OPT_q) ? true: false);
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
string data;
|
string data;
|
||||||
if (!file_to_string(*argv++, data))
|
const char *filename = *argv++; argc--;
|
||||||
|
if (!strcmp(filename, "stdin")) {
|
||||||
|
char buf[1024];
|
||||||
|
int nread;
|
||||||
|
while ((nread = read(0, buf, 1024)) > 0) {
|
||||||
|
data.append(buf, nread);
|
||||||
|
}
|
||||||
|
} else if (!file_to_string(filename, data))
|
||||||
exit(1);
|
exit(1);
|
||||||
argc--;
|
|
||||||
splitter.text_to_words(data);
|
splitter.text_to_words(data);
|
||||||
} else {
|
} else {
|
||||||
cout << endl << teststring << endl << endl;
|
cout << endl << teststring << endl << endl;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user