[nvi-iconv]Call for test
Zhihao Yuan
lichray at gmail.com
Wed Aug 17 08:21:49 UTC 2011
I totally hate gmail's reply -- I enabled "Reply to all" by default
but I still got things wrong.
Anyway, for short, the problem is caused by the lack of a widechar
enabled regex. I ported the one used by nvi-devel-1.8x.
A new patch is uploaded,
https://github.com/downloads/lichray/nvi2/nvi2-freebsd-2011-08-17.diff.gz
and I tested it with make buildworld.
Note that this version sets WARNS=1 in vi's Makefile, since it's
warning free with clang and gcc.
And there is change to `rescue`'s compilation: now it links to
libcursesw if WITH_ICONV is on.
On Tue, Aug 16, 2011 at 5:56 PM, Test Rat <ttsestt at gmail.com> wrote:
> Zhihao Yuan <lichray at gmail.com> writes:
>
>> On Sun, Aug 14, 2011 at 10:39 AM, Zhihao Yuan <lichray at gmail.com> wrote:
>>> Hi, hackers:
>>>
>>> My GSoC2011 project, "Multibyte Encoding Support in Nvi" is ready for
>>> testing. The proposal of the project is here:
>>> http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1
> [...]
>> Let me try to ``quickly'' explain how to involve into the testing.
>>
>> First, download the patch from
>> https://github.com/downloads/lichray/nvi2/nvi2-freebsd-2011-08-14.diff.gz
>
> It breaks buildworld for me, e.g.
>
> $ make all -C share/termcap
> gzip -cn /usr/src/share/termcap/termcap.5 > termcap.5.gz
> TERM=dumb TERMCAP=dumb: ex - /usr/src/share/termcap/termcap.src < /usr/src/share/termcap/reorder
> Error: stderr: Inappropriate ioctl for device
> script, 3: Destination line is inside move range
> *** Error code 1
>
> and crashes when no WITH_ICONV is defined. Can you confirm?
>
> Starting program: /usr/bin/ex - /usr/src/share/termcap/termcap.src < /usr/src/share/termcap/reorder
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000800be7760 in ?? ()
> (gdb) bt
> #0 0x0000000800be7760 in ?? ()
> #1 0x000000000044092b in ex_writefp (sp=0x801106800, name=0x801103148 "termcap", fp=0x800e51d90, fm=0x801007ca8, tm=0x801007cb8,
> nlno=0x7fffffffc808, nch=0x7fffffffc800, silent=0) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex_write.c:321
> #2 0x000000000040bfb2 in file_write (sp=0x801106800, fm=0x801007ca8, tm=0x801007cb8, name=0x801103148 "termcap", flags=21)
> at /usr/src/usr.bin/vi/../../contrib/nvi2/common/exf.c:924
> #3 0x0000000000440739 in exwr (sp=0x801106800, cmdp=0x801007be8, cmd=WRITE)
> at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex_write.c:264
> #4 0x00000000004400d2 in ex_write (sp=0x801106800, cmdp=0x801007be8) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex_write.c:91
> #5 0x0000000000422b78 in ex_cmd (sp=0x801106800) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex.c:1375
> #6 0x000000000041f788 in ex (spp=0x7fffffffd040) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex.c:133
> #7 0x0000000000412377 in editor (gp=0x801007b00, argc=1, argv=0x7fffffffd268)
> at /usr/src/usr.bin/vi/../../contrib/nvi2/common/main.c:424
> #8 0x000000000040513f in main (argc=3, argv=0x7fffffffd258) at /usr/src/usr.bin/vi/../../contrib/nvi2/cl/cl_main.c:123
> (gdb) bt f
> #0 0x0000000800be7760 in ?? ()
> No symbol table info available.
> #1 0x000000000044092b in ex_writefp (sp=0x801106800, name=0x801103148 "termcap", fp=0x800e51d90, fm=0x801007ca8, tm=0x801007cb8,
> nlno=0x7fffffffc808, nch=0x7fffffffc800, silent=0) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex_write.c:321
> sb = {
> st_dev = 4294955600,
> st_ino = 32767,
> st_mode = 0,
> st_nlink = 0,
> st_uid = 0,
> st_gid = 1944,
> st_rdev = 0,
> st_atim = {
> tv_sec = 3,
> tv_nsec = 34377892735
> },
> st_mtim = {
> tv_sec = 6798080,
> tv_nsec = 4096
> },
> st_ctim = {
> tv_sec = 0,
> tv_nsec = 34366769152
> },
> st_size = 4,
> st_blocks = 140737488343672,
> st_blksize = 3,
> st_flags = 0,
> st_gen = 4294954160,
> st_lspare = 32767,
> st_birthtim = {
> tv_sec = 34366543277,
> tv_nsec = 582
> }
> }
> gp = (GS *) 0x801007b00
> ccnt = 0
> fline = 1
> tline = 4666
> lcnt = 0
> len = 140737488340496
> rval = -11656
> msg = 0x46f540 "253|Writing..."
> p = (CHAR_T *) 0xb <Error reading address 0xb: Bad address>
> f = 0x800c0981f "H\211A^]\017\037\204"
> flen = 140737488340168
> isutf16 = 0
> #2 0x000000000040bfb2 in file_write (sp=0x801106800, fm=0x801007ca8, tm=0x801007cb8, name=0x801103148 "termcap", flags=21)
> at /usr/src/usr.bin/vi/../../contrib/nvi2/common/exf.c:924
> mtype = OLDFILE
> sb = {
> st_dev = 745804815,
> st_ino = 70073,
> st_mode = 33188,
> st_nlink = 1,
> st_uid = 1001,
> st_gid = 1001,
> st_rdev = 4294967295,
> st_atim = {
> tv_sec = 1313534959,
> tv_nsec = 905174484
> },
> st_mtim = {
> tv_sec = 1313535150,
> tv_nsec = 420174354
> },
> st_ctim = {
> tv_sec = 1313535150,
> tv_nsec = 420174354
> },
> st_size = 0,
> st_blocks = 1,
> st_blksize = 131072,
> st_flags = 0,
> st_gen = 0,
> st_lspare = 0,
> st_birthtim = {
> tv_sec = 1313535150,
> tv_nsec = 420174354
> }
> }
> ep = (EXF *) 0x801031180
> fp = (FILE *) 0x800e51d90
> frp = (FREF *) 0x80112f040
> from = {
> lno = 4294953320,
> cno = 140737488341984
> }
> to = {
> lno = 17842464,
> cno = 140737488341096
> }
> len = 1
> nlno = 0
> nch = 0
> fd = 11
> nf = 18607849
> noname = 0
> oflags = 1537
> rval = 0
> p = 0x800b87f54 "»\001"
> s = 0x7fffffffc830 ""
> t = 0x80118b240 ""
> buf = "\000»g\000\000\000\000\000q000\b\000\000\000«\002\000\000\000\000\000\000\001\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000h»g\000\000\000\000\000\033\001\000\000\000\000\000`\004\000\000\000\000\000\000»g\000\000\000\000\000\001\000\000\000\000\000\000\000\000°*\001\b\000\000\000\000»g\000\000\000\000\000\000`\004\000\000\000\000\000\000(\000\000\000\000\000\000\020ÿÿ\177\000\000\227000\b\000\000\000h»g", '\0' <repeats 13 times>, "\020ÿÿ\177\000\000[\214À\000\b\000\000\000\000 !\001\b\000\000\000( !\001\b\000\000\000\000\017\023\001\b\000\000\000 !\001\b\000\000\000@ÿÿ\177\000\000\036wÀ"...
> msgstr = 0x2 <Error reading address 0x2: Bad address>
> #3 0x0000000000440739 in exwr (sp=0x801106800, cmdp=0x801007be8, cmd=WRITE)
> at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex_write.c:264
> rm = {
> lno = 17846452,
> cno = 4
> }
> flags = 21
> name = 0x801103148 "termcap"
> p = (CHAR_T *) 0x801103088 "termcap"
> nlen = 8
> n = 0x801103140 "termcap"
> rc = 4260867
> #4 0x00000000004400d2 in ex_write (sp=0x801106800, cmdp=0x801007be8) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex_write.c:91
> No locals.
> #5 0x0000000000422b78 in ex_cmd (sp=0x801106800) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex.c:1375
> nret = 17852416
> exp = (EX_PRIVATE *) 0x8010f3600
> ecp = (EXCMD *) 0x801007be8
> gp = (GS *) 0x801007b00
> cur = {
> lno = 185,
> cno = 0
> }
> lno = 1
> arg1_len = 0
> discard = 0
> len = 140737488342608
> flags = 0
> ltmp = 1
> at_found = 0
> gv_found = 24
> cnt = 8
> delim = 16808704
> isaddr = 1
> namelen = 1
> newscreen = 0
> notempty = 0
> tmp = 0
> vi_address = 1
> arg1 = (CHAR_T *) 0x0
> s = (CHAR_T *) 0x801153143 "termcap"
> p = (CHAR_T *) 0x80115314b "-m'a"
> t = (CHAR_T *) 0x7fffffffd250 "\003"
> ch = 112 'p'
> n = (CHAR_T *) 0x7 <Error reading address 0x7: Bad address>
> np = 0x46a8b9 "s"
> #6 0x000000000041f788 in ex (spp=0x7fffffffd040) at /usr/src/usr.bin/vi/../../contrib/nvi2/ex/ex.c:133
> exp = (EX_PRIVATE *) 0x8010f3600
> gp = (GS *) 0x801007b00
> mp = (MSGS *) 0x0
> sp = (SCR *) 0x801106800
> tp = (TEXT *) 0x801151080
> flags = 2592
> space = 32 ' '
> #7 0x0000000000412377 in editor (gp=0x801007b00, argc=1, argv=0x7fffffffd268)
> at /usr/src/usr.bin/vi/../../contrib/nvi2/common/main.c:424
> p = 0x7fffffff037f ""
> ev = {
> q = {
> tqe_next = 0x40150c,
> tqe_prev = 0x7fffffffd008
> },
> e_event = 98,
> _u_event = {
> _e_ch = {
> c = 58 ':',
> value = K_NOTUSED,
> flags = 58 ':'
> },
> _e_mark = {
> lno1 = 4201018,
> cno1 = 4201018,
> lno2 = 226154414,
> cno2 = 34366783664
> },
> _e_str = {
> asp = 0x401a3a "sigaction",
> csp = 0x401a3a "sigaction",
> len = 226154414
> }
> }
> }
> frp = (FREF *) 0x80112f040
> sp = (SCR *) 0x801106800
> len = 0
> flags = 1
> ch = -1
> flagchk = 0
> lflag = 0
> secure = 0
> startup = 1
> readonly = 0
> rval = 6813300
> silent = 1
> tag_f = 0x0
> wsizearg = 0x0
> path = "xÿÿ\177\000\000\003\000\000\000\000\000\000\000Pÿÿ\177\000\000\000\b\000\000\000\000»g\000\000\000\000\000\000P\004\001\b\000\000\000\000\020\000\000\000\000\000\000\000\020\000\000\000\000\000\000\001\000\000\000\000\000\000\0000ÿÿ\177\00---Type <return> to continue, or q <return> to quit---
> 0\000\0005000\b\000\000\000204\002\001\b", '\0' <repeats 11 times>, "\006\002\000\000\000\000\000\000\000»g\000\000\000\000\000\000 at k\000\b\000\000\000222À\000\b\000\000\000\017W@\000\000\000\000\000°ºg\000\000\000\000\000@\000\000\000\000\000H\205\002\001\b\000\000\000\000P\004\001\034\000\000\000@", '\0' <repeats 25 times>, "\b\000\000\000\220ÿÿ\177\000\000"...
> w = (CHAR_T *) 0x7fffffffcff8 "g"
> wlen = 34366767104
> #8 0x000000000040513f in main (argc=3, argv=0x7fffffffd258) at /usr/src/usr.bin/vi/../../contrib/nvi2/cl/cl_main.c:123
> clp = (CL_PRIVATE *) 0x801028300
> gp = (GS *) 0x801007b00
> rows = 24
> cols = 132
> rval = 32767
> p_av = (char **) 0x7fffffffd270
> t_av = (char **) 0x7fffffffd270
> ttype = 0x7fffffffd6ab "screen-256color"
> reenter = 1
>
--
Zhihao Yuan, nickname lichray
The best way to predict the future is to invent it.
___________________________________________________
4BSD -- http://4bsd.biz/
More information about the freebsd-hackers
mailing list