[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:
@@ -1,3 +1,13 @@
|
|||||||
|
2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp>
|
||||||
|
|
||||||
|
* [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
|
||||||
|
|
||||||
2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp>
|
2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp>
|
||||||
|
|
||||||
* [w3m-dev 02861] IPv6 configuration check
|
* [w3m-dev 02861] IPv6 configuration check
|
||||||
@@ -2064,4 +2074,4 @@
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.233 2002/01/16 17:22:49 ukai Exp $
|
$Id: ChangeLog,v 1.234 2002/01/16 19:02:12 ukai Exp $
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: main.c,v 1.62 2002/01/16 16:49:54 ukai Exp $ */
|
/* $Id: main.c,v 1.63 2002/01/16 19:02:15 ukai Exp $ */
|
||||||
#define MAINPROGRAM
|
#define MAINPROGRAM
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
@@ -54,6 +54,10 @@ static MySignalHandler resize_handler(SIGNAL_ARG);
|
|||||||
static void resize_screen(void);
|
static void resize_screen(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SIGPIPE
|
||||||
|
static MySignalHandler SigPipe(SIGNAL_ARG);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef USE_MARK
|
#ifdef USE_MARK
|
||||||
static char *MarkString = NULL;
|
static char *MarkString = NULL;
|
||||||
#endif
|
#endif
|
||||||
@@ -708,6 +712,9 @@ MAIN(int argc, char **argv, char **envp)
|
|||||||
#ifdef SIGCHLD
|
#ifdef SIGCHLD
|
||||||
signal(SIGCHLD, sig_chld);
|
signal(SIGCHLD, sig_chld);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef SIGPIPE
|
||||||
|
signal(SIGPIPE, SigPipe);
|
||||||
|
#endif
|
||||||
|
|
||||||
orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
|
orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
|
||||||
err_msg = Strnew();
|
err_msg = Strnew();
|
||||||
@@ -1206,6 +1213,18 @@ resize_screen(void)
|
|||||||
}
|
}
|
||||||
#endif /* SIGWINCH */
|
#endif /* SIGWINCH */
|
||||||
|
|
||||||
|
#ifdef SIGPIPE
|
||||||
|
static MySignalHandler
|
||||||
|
SigPipe(SIGNAL_ARG)
|
||||||
|
{
|
||||||
|
#ifdef USE_MIGEMO
|
||||||
|
init_migemo();
|
||||||
|
#endif
|
||||||
|
signal(SIGPIPE, SigPipe);
|
||||||
|
SIGNAL_RETURN;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Command functions: These functions are called with a keystroke.
|
* Command functions: These functions are called with a keystroke.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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 "fm.h"
|
||||||
#include "regex.h"
|
#include "regex.h"
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_mark(Line *l, int pos, int epos)
|
set_mark(Line *l, int pos, int epos)
|
||||||
@@ -71,10 +72,23 @@ migemostr(char *str)
|
|||||||
if (open_migemo(migemo_command) == 0)
|
if (open_migemo(migemo_command) == 0)
|
||||||
return str;
|
return str;
|
||||||
fprintf(migemow, "%s\n", 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);
|
tmp = Strfgets(migemor);
|
||||||
Strchop(tmp);
|
Strchop(tmp);
|
||||||
|
if (tmp->length == 0)
|
||||||
|
goto err;
|
||||||
return tmp->ptr;
|
return tmp->ptr;
|
||||||
|
err:
|
||||||
|
/* XXX: backend migemo is not working? */
|
||||||
|
init_migemo();
|
||||||
|
use_migemo = 0;
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
#endif /* USE_MIGEMO */
|
#endif /* USE_MIGEMO */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user