[w3m-dev 02436] fix segmentation fault in main.c
closes: #482763 segmentation fault in main.c
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2001-11-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
|
* main.c (GetWord): [w3m-dev 02436] fix segmentation fault in main.c
|
||||||
|
closes: #482763 segmentation fault in main.c
|
||||||
|
|
||||||
2001-11-19 Fumitoshi UKAI <ukai@debian.or.jp>
|
2001-11-19 Fumitoshi UKAI <ukai@debian.or.jp>
|
||||||
|
|
||||||
* gc/.cvsignore:
|
* gc/.cvsignore:
|
||||||
|
|||||||
28
main.c
28
main.c
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: main.c,v 1.7 2001/11/16 22:02:00 ukai Exp $ */
|
/* $Id: main.c,v 1.8 2001/11/19 07:58:24 ukai Exp $ */
|
||||||
#define MAINPROGRAM
|
#define MAINPROGRAM
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
@@ -4416,27 +4416,23 @@ GetWord(Buffer * buf)
|
|||||||
{
|
{
|
||||||
Line *l = buf->currentLine;
|
Line *l = buf->currentLine;
|
||||||
char *lb;
|
char *lb;
|
||||||
int i, b, e, pos = buf->pos;
|
int b, e;
|
||||||
|
|
||||||
if (l == NULL)
|
if (l == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
lb = l->lineBuf;
|
lb = l->lineBuf;
|
||||||
|
|
||||||
i = pos;
|
e = buf->pos;
|
||||||
while (!IS_ALPHA(lb[i]) && i >= 0)
|
while (e > 0 && !IS_ALPHA(lb[e]))
|
||||||
i--;
|
e--;
|
||||||
pos = i;
|
if (!IS_ALPHA(lb[e]))
|
||||||
while (IS_ALPHA(lb[i]) && i >= 0)
|
|
||||||
i--;
|
|
||||||
i++;
|
|
||||||
if (!IS_ALPHA(lb[i]))
|
|
||||||
return NULL;
|
return NULL;
|
||||||
b = i;
|
b = e;
|
||||||
i = pos;
|
while (b > 0 && IS_ALPHA(lb[b-1]))
|
||||||
while (IS_ALPHA(lb[i]) && i <= l->len - 1)
|
b--;
|
||||||
i++;
|
while (e < l->len && IS_ALPHA(lb[e]))
|
||||||
e = i - 1;
|
e++;
|
||||||
return Strnew_charp_n(&lb[b], e - b + 1)->ptr;
|
return Strnew_charp_n(&lb[b], e - b)->ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DICT
|
#ifdef DICT
|
||||||
|
|||||||
Reference in New Issue
Block a user