[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