[w3m-dev 02862] SIGPIPE for migemo support

* main.c (SigPipe): added
* main.c (MAIN): signal(SIGPIPE, )
* search.c: #include <errno.h>
* search.c (migemostr): check fflush() error
* search.c (migemostr): check result string (empty is err)
* search.c (migemostr): if error occured, disable use_migemo
From: Fumitoshi UKAI  <ukai@debian.or.jp>
This commit is contained in:
Fumitoshi UKAI
2002-01-16 19:02:12 +00:00
parent b4afb4312f
commit 970d17ca4c
3 changed files with 47 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
/* $Id: search.c,v 1.9 2002/01/16 16:49:55 ukai Exp $ */
/* $Id: search.c,v 1.10 2002/01/16 19:02:16 ukai Exp $ */
#include "fm.h"
#include "regex.h"
#include <errno.h>
static void
set_mark(Line *l, int pos, int epos)
@@ -71,10 +72,23 @@ migemostr(char *str)
if (open_migemo(migemo_command) == 0)
return str;
fprintf(migemow, "%s\n", str);
fflush(migemow);
again:
if (fflush(migemow) != 0) {
switch (errno) {
case EINTR: goto again;
default: goto err;
}
}
tmp = Strfgets(migemor);
Strchop(tmp);
if (tmp->length == 0)
goto err;
return tmp->ptr;
err:
/* XXX: backend migemo is not working? */
init_migemo();
use_migemo = 0;
return str;
}
#endif /* USE_MIGEMO */