[w3m-dev 02859]
* config.h.dist (DEF_MIGEMO_COMMAND): added * configure (DEF_MIGEMO_COMMAND): added * fm.h (migemo_command): initial value is DEF_MIGEMO_COMMAND * main.c (migemostr): remove here, move search.c * main.c (srchcore): dont migemostr() here * proto.h (init_migemo): added * rc.c (sync_with_option): init_migemo() * search.c (init_migemo): added * search.c (open_migemo): added * search.c (migemostr): communicate background migemo * search.c (forwardSearch): if regexCompile for migemostr failed, try original str * search.c (backwardSearch): ditto From: Fumitoshi UKAI <ukai@debian.or.jp>
This commit is contained in:
@@ -1,3 +1,20 @@
|
|||||||
|
2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp>
|
||||||
|
|
||||||
|
* [w3m-dev 02859]
|
||||||
|
* config.h.dist (DEF_MIGEMO_COMMAND): added
|
||||||
|
* configure (DEF_MIGEMO_COMMAND): added
|
||||||
|
* fm.h (migemo_command): initial value is DEF_MIGEMO_COMMAND
|
||||||
|
* main.c (migemostr): remove here, move search.c
|
||||||
|
* main.c (srchcore): dont migemostr() here
|
||||||
|
* proto.h (init_migemo): added
|
||||||
|
* rc.c (sync_with_option): init_migemo()
|
||||||
|
* search.c (init_migemo): added
|
||||||
|
* search.c (open_migemo): added
|
||||||
|
* search.c (migemostr): communicate background migemo
|
||||||
|
* search.c (forwardSearch): if regexCompile for migemostr failed,
|
||||||
|
try original str
|
||||||
|
* search.c (backwardSearch): ditto
|
||||||
|
|
||||||
2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp>
|
2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp>
|
||||||
|
|
||||||
* [w3m-dev 02855]
|
* [w3m-dev 02855]
|
||||||
@@ -2040,4 +2057,4 @@
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.230 2002/01/16 16:11:35 ukai Exp $
|
$Id: ChangeLog,v 1.231 2002/01/16 16:49:53 ukai Exp $
|
||||||
|
|||||||
@@ -130,6 +130,9 @@ MODEL=Linux.i686-monster-ja
|
|||||||
#define DEF_IMAGE_VIEWER "xv"
|
#define DEF_IMAGE_VIEWER "xv"
|
||||||
#define DEF_AUDIO_PLAYER "showaudio"
|
#define DEF_AUDIO_PLAYER "showaudio"
|
||||||
|
|
||||||
|
/* for USE_MIGEMO */
|
||||||
|
#define DEF_MIGEMO_COMMAND "migemo -t egrep /usr/share/migemo/migemo-dict"
|
||||||
|
|
||||||
#define LIB_DIR "/usr/local/lib/w3m"
|
#define LIB_DIR "/usr/local/lib/w3m"
|
||||||
#define HELP_DIR "/usr/local/lib/w3m"
|
#define HELP_DIR "/usr/local/lib/w3m"
|
||||||
#define ETC_DIR "/usr/local/etc/w3m"
|
#define ETC_DIR "/usr/local/etc/w3m"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# $Id: configure,v 1.50 2002/01/15 17:23:29 ukai Exp $
|
# $Id: configure,v 1.51 2002/01/16 16:49:54 ukai Exp $
|
||||||
# Configuration.
|
# Configuration.
|
||||||
#
|
#
|
||||||
|
|
||||||
@@ -2066,6 +2066,9 @@ $def_use_help_cgi
|
|||||||
#define DEF_IMAGE_VIEWER "$def_image_viewer"
|
#define DEF_IMAGE_VIEWER "$def_image_viewer"
|
||||||
#define DEF_AUDIO_PLAYER "$def_audio_player"
|
#define DEF_AUDIO_PLAYER "$def_audio_player"
|
||||||
|
|
||||||
|
/* for USE_MIGEMO */
|
||||||
|
#define DEF_MIGEMO_COMMAND "migemo -t egrep /usr/share/migemo/migemo-dict"
|
||||||
|
|
||||||
#define LIB_DIR "$libdir"
|
#define LIB_DIR "$libdir"
|
||||||
#define HELP_DIR "$helpdir"
|
#define HELP_DIR "$helpdir"
|
||||||
#define ETC_DIR "$sysconfdir"
|
#define ETC_DIR "$sysconfdir"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: fm.h,v 1.39 2002/01/16 15:37:06 ukai Exp $ */
|
/* $Id: fm.h,v 1.40 2002/01/16 16:49:54 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* w3m: WWW wo Miru utility
|
* w3m: WWW wo Miru utility
|
||||||
*
|
*
|
||||||
@@ -777,7 +777,7 @@ global int FoldTextarea init(FALSE);
|
|||||||
|
|
||||||
#ifdef USE_MIGEMO
|
#ifdef USE_MIGEMO
|
||||||
global int use_migemo init(FALSE);
|
global int use_migemo init(FALSE);
|
||||||
global char *migemo_command init("migemoc");
|
global char *migemo_command init(DEF_MIGEMO_COMMAND);
|
||||||
#endif /* USE_MIGEMO */
|
#endif /* USE_MIGEMO */
|
||||||
|
|
||||||
global struct auth_cookie *Auth_cookie init(NULL);
|
global struct auth_cookie *Auth_cookie init(NULL);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: main.c,v 1.61 2002/01/16 16:11:38 ukai Exp $ */
|
/* $Id: main.c,v 1.62 2002/01/16 16:49:54 ukai Exp $ */
|
||||||
#define MAINPROGRAM
|
#define MAINPROGRAM
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
@@ -1333,24 +1333,6 @@ rdrwSc(void)
|
|||||||
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
displayBuffer(Currentbuf, B_FORCE_REDRAW);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_MIGEMO
|
|
||||||
/* Migemo: romaji --> kana+kanji in regexp */
|
|
||||||
static char *
|
|
||||||
migemostr(char *str)
|
|
||||||
{
|
|
||||||
FILE *f;
|
|
||||||
Str tmp;
|
|
||||||
|
|
||||||
tmp = Strnew_m_charp(migemo_command, " ", shell_quote(str), NULL);
|
|
||||||
if (!(f = popen(tmp->ptr, "r")))
|
|
||||||
return str;
|
|
||||||
tmp = Strfgets(f);
|
|
||||||
Strchop(tmp);
|
|
||||||
pclose(f);
|
|
||||||
return tmp->ptr;
|
|
||||||
}
|
|
||||||
#endif /* USE_MIGEMO */
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clear_mark(Line *l)
|
clear_mark(Line *l)
|
||||||
{
|
{
|
||||||
@@ -1369,11 +1351,7 @@ srchcore(char *str, int (*func) (Buffer *, char *))
|
|||||||
volatile int i, result = SR_NOTFOUND;
|
volatile int i, result = SR_NOTFOUND;
|
||||||
|
|
||||||
if (str != NULL && str != SearchString)
|
if (str != NULL && str != SearchString)
|
||||||
SearchString =
|
SearchString = str;
|
||||||
#ifdef USE_MIGEMO
|
|
||||||
use_migemo ? migemostr(str) :
|
|
||||||
#endif /* USE_MIGEMO */
|
|
||||||
str;
|
|
||||||
if (SearchString == NULL || *SearchString == '\0')
|
if (SearchString == NULL || *SearchString == '\0')
|
||||||
return SR_NOTFOUND;
|
return SR_NOTFOUND;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: proto.h,v 1.25 2002/01/16 15:37:07 ukai Exp $ */
|
/* $Id: proto.h,v 1.26 2002/01/16 16:49:54 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* This file was automatically generated by version 1.7 of cextract.
|
* This file was automatically generated by version 1.7 of cextract.
|
||||||
* Manual editing not recommended.
|
* Manual editing not recommended.
|
||||||
@@ -255,6 +255,9 @@ extern char *mydirname(char *s);
|
|||||||
extern int next_status(char c, int *status);
|
extern int next_status(char c, int *status);
|
||||||
extern int read_token(Str buf, char **instr, int *status, int pre, int append);
|
extern int read_token(Str buf, char **instr, int *status, int pre, int append);
|
||||||
extern Str correct_irrtag(int status);
|
extern Str correct_irrtag(int status);
|
||||||
|
#ifdef USE_MIGEMO
|
||||||
|
extern void init_migemo(void);
|
||||||
|
#endif
|
||||||
extern int forwardSearch(Buffer *buf, char *str);
|
extern int forwardSearch(Buffer *buf, char *str);
|
||||||
extern int backwardSearch(Buffer *buf, char *str);
|
extern int backwardSearch(Buffer *buf, char *str);
|
||||||
extern void pcmap(void);
|
extern void pcmap(void);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: rc.c,v 1.30 2002/01/16 15:37:07 ukai Exp $ */
|
/* $Id: rc.c,v 1.31 2002/01/16 16:49:54 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* Initialization file etc.
|
* Initialization file etc.
|
||||||
*/
|
*/
|
||||||
@@ -1124,6 +1124,9 @@ sync_with_option(void)
|
|||||||
#ifdef USE_EXTERNAL_URI_LOADER
|
#ifdef USE_EXTERNAL_URI_LOADER
|
||||||
initURIMethods();
|
initURIMethods();
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef USE_MIGEMO
|
||||||
|
init_migemo();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (AcceptLang == NULL || *AcceptLang == '\0') {
|
if (AcceptLang == NULL || *AcceptLang == '\0') {
|
||||||
#if LANG == JA
|
#if LANG == JA
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: search.c,v 1.8 2002/01/16 15:37:07 ukai Exp $ */
|
/* $Id: search.c,v 1.9 2002/01/16 16:49:55 ukai Exp $ */
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include "regex.h"
|
#include "regex.h"
|
||||||
|
|
||||||
@@ -9,6 +9,75 @@ set_mark(Line *l, int pos, int epos)
|
|||||||
l->propBuf[pos] |= PE_MARK;
|
l->propBuf[pos] |= PE_MARK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_MIGEMO
|
||||||
|
/* Migemo: romaji --> kana+kanji in regexp */
|
||||||
|
static FILE *migemor, *migemow;
|
||||||
|
|
||||||
|
void
|
||||||
|
init_migemo()
|
||||||
|
{
|
||||||
|
if (migemor != NULL)
|
||||||
|
fclose(migemor);
|
||||||
|
if (migemow != NULL)
|
||||||
|
fclose(migemow);
|
||||||
|
migemor = migemow = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
open_migemo(char *migemo_command)
|
||||||
|
{
|
||||||
|
int fdr[2];
|
||||||
|
int fdw[2];
|
||||||
|
int pid;
|
||||||
|
if (pipe(fdr) < 0)
|
||||||
|
goto err0;
|
||||||
|
if (pipe(fdw) < 0)
|
||||||
|
goto err1;
|
||||||
|
|
||||||
|
/* migemow:fdw[1] -|-> fdw[0]=0 {migemo} fdr[1]=1 -|-> fdr[0]:migemor */
|
||||||
|
pid = fork();
|
||||||
|
if (pid < 0)
|
||||||
|
goto err2;
|
||||||
|
if (pid == 0) {
|
||||||
|
/* child */
|
||||||
|
close(fdr[0]);
|
||||||
|
close(fdw[1]);
|
||||||
|
dup2(fdw[0], 0);
|
||||||
|
dup2(fdr[1], 1);
|
||||||
|
system(migemo_command);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
close(fdr[1]);
|
||||||
|
close(fdw[0]);
|
||||||
|
migemor = fdopen(fdr[0], "r");
|
||||||
|
migemow = fdopen(fdw[1], "w");
|
||||||
|
return 1;
|
||||||
|
err2:
|
||||||
|
close(fdw[0]);
|
||||||
|
close(fdw[1]);
|
||||||
|
err1:
|
||||||
|
close(fdr[0]);
|
||||||
|
close(fdr[1]);
|
||||||
|
err0:
|
||||||
|
use_migemo = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
migemostr(char *str)
|
||||||
|
{
|
||||||
|
Str tmp = NULL;
|
||||||
|
if (migemor == NULL || migemow == NULL)
|
||||||
|
if (open_migemo(migemo_command) == 0)
|
||||||
|
return str;
|
||||||
|
fprintf(migemow, "%s\n", str);
|
||||||
|
fflush(migemow);
|
||||||
|
tmp = Strfgets(migemor);
|
||||||
|
Strchop(tmp);
|
||||||
|
return tmp->ptr;
|
||||||
|
}
|
||||||
|
#endif /* USE_MIGEMO */
|
||||||
|
|
||||||
int
|
int
|
||||||
forwardSearch(Buffer *buf, char *str)
|
forwardSearch(Buffer *buf, char *str)
|
||||||
{
|
{
|
||||||
@@ -17,6 +86,16 @@ forwardSearch(Buffer *buf, char *str)
|
|||||||
int wrapped = FALSE;
|
int wrapped = FALSE;
|
||||||
int pos;
|
int pos;
|
||||||
|
|
||||||
|
#ifdef USE_MIGEMO
|
||||||
|
if (use_migemo) {
|
||||||
|
if (((p = regexCompile(migemostr(str), IgnoreCase)) != NULL)
|
||||||
|
&& ((p = regexCompile(str, IgnoreCase)) != NULL)) {
|
||||||
|
message(p, 0, 0);
|
||||||
|
return SR_NOTFOUND;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
if ((p = regexCompile(str, IgnoreCase)) != NULL) {
|
if ((p = regexCompile(str, IgnoreCase)) != NULL) {
|
||||||
message(p, 0, 0);
|
message(p, 0, 0);
|
||||||
return SR_NOTFOUND;
|
return SR_NOTFOUND;
|
||||||
@@ -85,6 +164,16 @@ backwardSearch(Buffer *buf, char *str)
|
|||||||
int wrapped = FALSE;
|
int wrapped = FALSE;
|
||||||
int pos;
|
int pos;
|
||||||
|
|
||||||
|
#ifdef USE_MIGEMO
|
||||||
|
if (use_migemo) {
|
||||||
|
if (((p = regexCompile(migemostr(str), IgnoreCase)) != NULL)
|
||||||
|
&& ((p = regexCompile(str, IgnoreCase)) != NULL)) {
|
||||||
|
message(p, 0, 0);
|
||||||
|
return SR_NOTFOUND;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
if ((p = regexCompile(str, IgnoreCase)) != NULL) {
|
if ((p = regexCompile(str, IgnoreCase)) != NULL) {
|
||||||
message(p, 0, 0);
|
message(p, 0, 0);
|
||||||
return SR_NOTFOUND;
|
return SR_NOTFOUND;
|
||||||
|
|||||||
Reference in New Issue
Block a user