diff options
Diffstat (limited to 'gvim/vim-7.2/7.2.167')
-rw-r--r-- | gvim/vim-7.2/7.2.167 | 1873 |
1 files changed, 1873 insertions, 0 deletions
diff --git a/gvim/vim-7.2/7.2.167 b/gvim/vim-7.2/7.2.167 new file mode 100644 index 0000000..9bf08e6 --- /dev/null +++ b/gvim/vim-7.2/7.2.167 @@ -0,0 +1,1873 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.167 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.167 +Problem: Splint doesn't work well for checking the code. +Solution: Add splint arguments in the Makefile. Exclude some code from + splint that it can't handle. Tune splint arguments to give + reasonable errors. Add a filter for removing false warnings from + splint output. Many small changes to avoid warnings. More to + follow... +Files: Filelist, src/Makefile, src/buffer.c, src/charset.c, + src/cleanlint.vim, src/digraph.c, src/edit.c, src/ex_cmds.c, + src/globals.h, src/ops.c, src/os_unix.c, src/os_unix.h, + src/proto/buffer.pro, src/proto/edit.pro, src/screen.c, + src/structs.h + +*** ../vim-7.2.166/Filelist 2008-09-20 16:26:10.000000000 +0200 +--- Filelist 2009-05-05 21:45:49.000000000 +0200 +*************** +*** 139,144 **** +--- 139,145 ---- + src/INSTALL \ + src/INSTALLx.txt \ + src/Makefile \ ++ src/cleanlint.vim \ + src/auto/configure \ + src/config.aap.in \ + src/config.h.in \ +*************** +*** 683,691 **** + runtime/spell/??/main.aap \ + runtime/spell/yi/README.txt \ + runtime/spell/main.aap \ +- runtime/spell/cleanadd.vim \ + runtime/spell/*.vim \ +- runtime/spell/fixdup \ + + # generic language files, binary + LANG_GEN_BIN = \ +--- 684,690 ---- +*** ../vim-7.2.166/src/Makefile 2009-04-29 18:44:45.000000000 +0200 +--- src/Makefile 2009-05-06 00:23:15.000000000 +0200 +*************** +*** 551,557 **** + # }}} + + # LINT - for running lint +! LINT_OPTIONS = -beprxzF + + # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. + # Might not work with GUI or Perl. +--- 551,562 ---- + # }}} + + # LINT - for running lint +! # For standard lint +! #LINT = lint +! #LINT_OPTIONS = -beprxzF +! # For splint (see cleanlint.vim for filtering the output) +! LINT = splint +! LINT_OPTIONS = +unixlib -weak -macrovarprefixexclude -showfunc -linelen 9999 + + # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. + # Might not work with GUI or Perl. +*************** +*** 1259,1274 **** + # This is for cproto 3 patchlevel 8 or below + # __inline, __attribute__ and __extension__ are not recognized by cproto + # G_IMPLEMENT_INLINES is to avoid functions defined in glib/gutils.h. +! NO_ATTR = -D__inline= -D__inline__= -DG_IMPLEMENT_INLINES \ +! -D"__attribute__\\(x\\)=" -D"__asm__\\(x\\)=" \ +! -D__extension__= -D__restrict="" \ +! -D__gnuc_va_list=char -D__builtin_va_list=char + + # +! # This is for cproto 3 patchlevel 9 or above (currently 4.6) + # __inline and __attribute__ are now recognized by cproto + # -D"foo()=" is not supported by all compilers so do not use it +! # NO_ATTR= + # + # maybe the "/usr/bin/cc -E" has to be adjusted for some systems + # This is for cproto 3.5 patchlevel 3: +--- 1264,1279 ---- + # This is for cproto 3 patchlevel 8 or below + # __inline, __attribute__ and __extension__ are not recognized by cproto + # G_IMPLEMENT_INLINES is to avoid functions defined in glib/gutils.h. +! #NO_ATTR = -D__inline= -D__inline__= -DG_IMPLEMENT_INLINES \ +! # -D"__attribute__\\(x\\)=" -D"__asm__\\(x\\)=" \ +! # -D__extension__= -D__restrict="" \ +! # -D__gnuc_va_list=char -D__builtin_va_list=char + + # +! # This is for cproto 3 patchlevel 9 or above (currently 4.6, 4.7g) + # __inline and __attribute__ are now recognized by cproto + # -D"foo()=" is not supported by all compilers so do not use it +! NO_ATTR= + # + # maybe the "/usr/bin/cc -E" has to be adjusted for some systems + # This is for cproto 3.5 patchlevel 3: +*************** +*** 1432,1437 **** +--- 1437,1443 ---- + $(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) $(NETBEANS_SRC) + #LINT_SRC = $(SRC) + #LINT_SRC = $(ALL_SRC) ++ #LINT_SRC = $(BASIC_SRC) + + OBJ = \ + objects/buffer.o \ +*************** +*** 2272,2283 **** + + # Run lint. Clean up the *.ln files that are sometimes left behind. + lint: +! lint $(LINT_OPTIONS) $(LINT_CFLAGS) $(LINT_EXTRA) $(LINT_SRC) + -rm -f *.ln + + # Check dosinst.c with lint. + lintinstall: +! lint $(LINT_OPTIONS) -DWIN32 -DUNIX_LINT dosinst.c + -rm -f dosinst.ln + + ########################################################################### +--- 2279,2290 ---- + + # Run lint. Clean up the *.ln files that are sometimes left behind. + lint: +! $(LINT) $(LINT_OPTIONS) $(LINT_CFLAGS) $(LINT_EXTRA) $(LINT_SRC) + -rm -f *.ln + + # Check dosinst.c with lint. + lintinstall: +! $(LINT) $(LINT_OPTIONS) -DWIN32 -DUNIX_LINT dosinst.c + -rm -f dosinst.ln + + ########################################################################### +*** ../vim-7.2.166/src/buffer.c 2009-02-22 00:01:42.000000000 +0100 +--- src/buffer.c 2009-05-13 12:25:29.000000000 +0200 +*************** +*** 44,49 **** +--- 44,50 ---- + #ifdef FEAT_TITLE + static int ti_change __ARGS((char_u *str, char_u **last)); + #endif ++ static int append_arg_number __ARGS((win_T *wp, char_u *buf, int buflen, int add_file)); + static void free_buffer __ARGS((buf_T *)); + static void free_buffer_stuff __ARGS((buf_T *buf, int free_options)); + static void clear_wininfo __ARGS((buf_T *buf)); +*************** +*** 1453,1465 **** + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! keymap_init(); + #endif + #ifdef FEAT_SPELL + /* May need to set the spell language. Can only do this after the buffer + * has been properly setup. */ + if (!curbuf->b_help && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! did_set_spelllang(curbuf); + #endif + + redraw_later(NOT_VALID); +--- 1454,1466 ---- + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! (void)keymap_init(); + #endif + #ifdef FEAT_SPELL + /* May need to set the spell language. Can only do this after the buffer + * has been properly setup. */ + if (!curbuf->b_help && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! (void)did_set_spelllang(curbuf); + #endif + + redraw_later(NOT_VALID); +*************** +*** 2516,2522 **** + buf_T *buf; + { + wininfo_T *wip; +! static pos_T no_position = {1, 0}; + + wip = find_wininfo(buf, FALSE); + if (wip != NULL) +--- 2517,2523 ---- + buf_T *buf; + { + wininfo_T *wip; +! static pos_T no_position = INIT_POS_T(1, 0, 0); + + wip = find_wininfo(buf, FALSE); + if (wip != NULL) +*************** +*** 2577,2584 **** + { + IObuff[len++] = ' '; + } while (--i > 0 && len < IOSIZE - 18); +! vim_snprintf((char *)IObuff + len, IOSIZE - len, _("line %ld"), +! buf == curbuf ? curwin->w_cursor.lnum + : (long)buflist_findlnum(buf)); + msg_outtrans(IObuff); + out_flush(); /* output one line at a time */ +--- 2578,2585 ---- + { + IObuff[len++] = ' '; + } while (--i > 0 && len < IOSIZE - 18); +! vim_snprintf((char *)IObuff + len, (size_t)(IOSIZE - len), +! _("line %ld"), buf == curbuf ? curwin->w_cursor.lnum + : (long)buflist_findlnum(buf)); + msg_outtrans(IObuff); + out_flush(); /* output one line at a time */ +*************** +*** 2967,2973 **** + + if (fullname > 1) /* 2 CTRL-G: include buffer number */ + { +! sprintf((char *)buffer, "buf %d: ", curbuf->b_fnum); + p = buffer + STRLEN(buffer); + } + else +--- 2968,2974 ---- + + if (fullname > 1) /* 2 CTRL-G: include buffer number */ + { +! vim_snprintf((char *)buffer, IOSIZE, "buf %d: ", curbuf->b_fnum); + p = buffer + STRLEN(buffer); + } + else +*************** +*** 3041,3051 **** + (long)curbuf->b_ml.ml_line_count, + n); + validate_virtcol(); +! col_print(buffer + STRLEN(buffer), + (int)curwin->w_cursor.col + 1, (int)curwin->w_virtcol + 1); + } + +! (void)append_arg_number(curwin, buffer, !shortmess(SHM_FILE), IOSIZE); + + if (dont_truncate) + { +--- 3042,3053 ---- + (long)curbuf->b_ml.ml_line_count, + n); + validate_virtcol(); +! len = STRLEN(buffer); +! col_print(buffer + len, IOSIZE - len, + (int)curwin->w_cursor.col + 1, (int)curwin->w_virtcol + 1); + } + +! (void)append_arg_number(curwin, buffer, IOSIZE, !shortmess(SHM_FILE)); + + if (dont_truncate) + { +*************** +*** 3073,3087 **** + } + + void +! col_print(buf, col, vcol) + char_u *buf; + int col; + int vcol; + { + if (col == vcol) +! sprintf((char *)buf, "%d", col); + else +! sprintf((char *)buf, "%d-%d", col, vcol); + } + + #if defined(FEAT_TITLE) || defined(PROTO) +--- 3075,3090 ---- + } + + void +! col_print(buf, buflen, col, vcol) + char_u *buf; ++ size_t buflen; + int col; + int vcol; + { + if (col == vcol) +! vim_snprintf((char *)buf, buflen, "%d", col); + else +! vim_snprintf((char *)buf, buflen, "%d-%d", col, vcol); + } + + #if defined(FEAT_TITLE) || defined(PROTO) +*************** +*** 3194,3211 **** + if (p == buf + off) + /* must be a help buffer */ + vim_strncpy(buf + off, (char_u *)_("help"), +! IOSIZE - off - 1); + else + *p = NUL; + + /* translate unprintable chars */ + p = transstr(buf + off); +! vim_strncpy(buf + off, p, IOSIZE - off - 1); + vim_free(p); + STRCAT(buf, ")"); + } + +! append_arg_number(curwin, buf, FALSE, IOSIZE); + + #if defined(FEAT_CLIENTSERVER) + if (serverName != NULL) +--- 3197,3214 ---- + if (p == buf + off) + /* must be a help buffer */ + vim_strncpy(buf + off, (char_u *)_("help"), +! (size_t)(IOSIZE - off - 1)); + else + *p = NUL; + + /* translate unprintable chars */ + p = transstr(buf + off); +! vim_strncpy(buf + off, p, (size_t)(IOSIZE - off - 1)); + vim_free(p); + STRCAT(buf, ")"); + } + +! append_arg_number(curwin, buf, IOSIZE, FALSE); + + #if defined(FEAT_CLIENTSERVER) + if (serverName != NULL) +*************** +*** 3520,3526 **** + n = (long)(p - t) - item[groupitem[groupdepth]].maxwid + 1; + + *t = '<'; +! mch_memmove(t + 1, t + n, p - (t + n)); + p = p - n + 1; + #ifdef FEAT_MBYTE + /* Fill up space left over by half a double-wide char. */ +--- 3523,3529 ---- + n = (long)(p - t) - item[groupitem[groupdepth]].maxwid + 1; + + *t = '<'; +! mch_memmove(t + 1, t + n, (size_t)(p - (t + n))); + p = p - n + 1; + #ifdef FEAT_MBYTE + /* Fill up space left over by half a double-wide char. */ +*************** +*** 3550,3556 **** + else + { + /* fill by inserting characters */ +! mch_memmove(t + n - l, t, p - t); + l = n - l; + if (p + l >= out + outlen) + l = (long)((out + outlen) - p - 1); +--- 3553,3559 ---- + else + { + /* fill by inserting characters */ +! mch_memmove(t + n - l, t, (size_t)(p - t)); + l = n - l; + if (p + l >= out + outlen) + l = (long)((out + outlen) - p - 1); +*************** +*** 3686,3692 **** + p = t; + + #ifdef FEAT_EVAL +! sprintf((char *)tmp, "%d", curbuf->b_fnum); + set_internal_string_var((char_u *)"actual_curbuf", tmp); + + o_curbuf = curbuf; +--- 3689,3695 ---- + p = t; + + #ifdef FEAT_EVAL +! vim_snprintf((char *)tmp, sizeof(tmp), "%d", curbuf->b_fnum); + set_internal_string_var((char_u *)"actual_curbuf", tmp); + + o_curbuf = curbuf; +*************** +*** 3753,3765 **** + + case STL_ALTPERCENT: + str = tmp; +! get_rel_pos(wp, str); + break; + + case STL_ARGLISTSTAT: + fillable = FALSE; + tmp[0] = 0; +! if (append_arg_number(wp, tmp, FALSE, (int)sizeof(tmp))) + str = tmp; + break; + +--- 3756,3768 ---- + + case STL_ALTPERCENT: + str = tmp; +! get_rel_pos(wp, str, TMPLEN); + break; + + case STL_ARGLISTSTAT: + fillable = FALSE; + tmp[0] = 0; +! if (append_arg_number(wp, tmp, (int)sizeof(tmp), FALSE)) + str = tmp; + break; + +*************** +*** 3794,3800 **** + case STL_BYTEVAL_X: + base = 'X'; + case STL_BYTEVAL: +! if (wp->w_cursor.col > STRLEN(linecont)) + num = 0; + else + { +--- 3797,3803 ---- + case STL_BYTEVAL_X: + base = 'X'; + case STL_BYTEVAL: +! if (wp->w_cursor.col > (colnr_T)STRLEN(linecont)) + num = 0; + else + { +*************** +*** 3967,3973 **** + if (zeropad) + *t++ = '0'; + *t++ = '*'; +! *t++ = nbase == 16 ? base : (nbase == 8 ? 'o' : 'd'); + *t = 0; + + for (n = num, l = 1; n >= nbase; n /= nbase) +--- 3970,3976 ---- + if (zeropad) + *t++ = '0'; + *t++ = '*'; +! *t++ = nbase == 16 ? base : (char_u)(nbase == 8 ? 'o' : 'd'); + *t = 0; + + for (n = num, l = 1; n >= nbase; n /= nbase) +*************** +*** 4160,4172 **** + #if defined(FEAT_STL_OPT) || defined(FEAT_CMDL_INFO) \ + || defined(FEAT_GUI_TABLINE) || defined(PROTO) + /* +! * Get relative cursor position in window into "str[]", in the form 99%, using +! * "Top", "Bot" or "All" when appropriate. + */ + void +! get_rel_pos(wp, str) + win_T *wp; +! char_u *str; + { + long above; /* number of lines above window */ + long below; /* number of lines below window */ +--- 4163,4176 ---- + #if defined(FEAT_STL_OPT) || defined(FEAT_CMDL_INFO) \ + || defined(FEAT_GUI_TABLINE) || defined(PROTO) + /* +! * Get relative cursor position in window into "buf[buflen]", in the form 99%, +! * using "Top", "Bot" or "All" when appropriate. + */ + void +! get_rel_pos(wp, buf, buflen) + win_T *wp; +! char_u *buf; +! int buflen; + { + long above; /* number of lines above window */ + long below; /* number of lines below window */ +*************** +*** 4177,4210 **** + #endif + below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1; + if (below <= 0) +! STRCPY(str, above == 0 ? _("All") : _("Bot")); + else if (above <= 0) +! STRCPY(str, _("Top")); + else +! sprintf((char *)str, "%2d%%", above > 1000000L + ? (int)(above / ((above + below) / 100L)) + : (int)(above * 100L / (above + below))); + } + #endif + + /* +! * Append (file 2 of 8) to 'buf', if editing more than one file. + * Return TRUE if it was appended. + */ +! int +! append_arg_number(wp, buf, add_file, maxlen) + win_T *wp; + char_u *buf; + int add_file; /* Add "file" before the arg number */ +- int maxlen; /* maximum nr of chars in buf or zero*/ + { + char_u *p; + + if (ARGCOUNT <= 1) /* nothing to do */ + return FALSE; + +! p = buf + STRLEN(buf); /* go to the end of the buffer */ +! if (maxlen && p - buf + 35 >= maxlen) /* getting too long */ + return FALSE; + *p++ = ' '; + *p++ = '('; +--- 4181,4215 ---- + #endif + below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1; + if (below <= 0) +! vim_strncpy(buf, (char_u *)(above == 0 ? _("All") : _("Bot")), +! (size_t)(buflen - 1)); + else if (above <= 0) +! vim_strncpy(buf, (char_u *)_("Top"), (size_t)(buflen - 1)); + else +! vim_snprintf((char *)buf, (size_t)buflen, "%2d%%", above > 1000000L + ? (int)(above / ((above + below) / 100L)) + : (int)(above * 100L / (above + below))); + } + #endif + + /* +! * Append (file 2 of 8) to "buf[buflen]", if editing more than one file. + * Return TRUE if it was appended. + */ +! static int +! append_arg_number(wp, buf, buflen, add_file) + win_T *wp; + char_u *buf; ++ int buflen; + int add_file; /* Add "file" before the arg number */ + { + char_u *p; + + if (ARGCOUNT <= 1) /* nothing to do */ + return FALSE; + +! p = buf + STRLEN(buf); /* go to the end of the buffer */ +! if (p - buf + 35 >= buflen) /* getting too long */ + return FALSE; + *p++ = ' '; + *p++ = '('; +*************** +*** 4213,4219 **** + STRCPY(p, "file "); + p += 5; + } +! sprintf((char *)p, wp->w_arg_idx_invalid ? "(%d) of %d)" + : "%d of %d)", wp->w_arg_idx + 1, ARGCOUNT); + return TRUE; + } +--- 4218,4225 ---- + STRCPY(p, "file "); + p += 5; + } +! vim_snprintf((char *)p, (size_t)(buflen - (p - buf)), +! wp->w_arg_idx_invalid ? "(%d) of %d)" + : "%d of %d)", wp->w_arg_idx + 1, ARGCOUNT); + return TRUE; + } +*************** +*** 4996,5002 **** + if (tab != NULL) + { + *tab++ = '\0'; +! col = atoi((char *)tab); + tab = vim_strrchr(xline, '\t'); + if (tab != NULL) + { +--- 5002,5008 ---- + if (tab != NULL) + { + *tab++ = '\0'; +! col = (colnr_T)atoi((char *)tab); + tab = vim_strrchr(xline, '\t'); + if (tab != NULL) + { +*************** +*** 5034,5039 **** +--- 5040,5046 ---- + #endif + char_u *line; + int max_buffers; ++ size_t len; + + if (find_viminfo_parameter('%') == NULL) + return; +*************** +*** 5042,5048 **** + max_buffers = get_viminfo_parameter('%'); + + /* Allocate room for the file name, lnum and col. */ +! line = alloc(MAXPATHL + 40); + if (line == NULL) + return; + +--- 5049,5056 ---- + max_buffers = get_viminfo_parameter('%'); + + /* Allocate room for the file name, lnum and col. */ +! #define LINE_BUF_LEN (MAXPATHL + 40) +! line = alloc(LINE_BUF_LEN); + if (line == NULL) + return; + +*************** +*** 5068,5074 **** + break; + putc('%', fp); + home_replace(NULL, buf->b_ffname, line, MAXPATHL, TRUE); +! sprintf((char *)line + STRLEN(line), "\t%ld\t%d", + (long)buf->b_last_cursor.lnum, + buf->b_last_cursor.col); + viminfo_writestring(fp, line); +--- 5076,5083 ---- + break; + putc('%', fp); + home_replace(NULL, buf->b_ffname, line, MAXPATHL, TRUE); +! len = STRLEN(line); +! vim_snprintf((char *)line + len, len - LINE_BUF_LEN, "\t%ld\t%d", + (long)buf->b_last_cursor.lnum, + buf->b_last_cursor.col); + viminfo_writestring(fp, line); +*************** +*** 5226,5232 **** + return; + } + +! int + buf_change_sign_type(buf, markId, typenr) + buf_T *buf; /* buffer to store sign in */ + int markId; /* sign ID */ +--- 5235,5241 ---- + return; + } + +! linenr_T + buf_change_sign_type(buf, markId, typenr) + buf_T *buf; /* buffer to store sign in */ + int markId; /* sign ID */ +*************** +*** 5243,5252 **** + } + } + +! return 0; + } + +! int_u + buf_getsigntype(buf, lnum, type) + buf_T *buf; + linenr_T lnum; +--- 5252,5261 ---- + } + } + +! return (linenr_T)0; + } + +! int + buf_getsigntype(buf, lnum, type) + buf_T *buf; + linenr_T lnum; +*** ../vim-7.2.166/src/charset.c 2008-07-24 21:30:44.000000000 +0200 +--- src/charset.c 2009-05-05 18:17:11.000000000 +0200 +*************** +*** 17,23 **** + static int win_nolbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp)); + #endif + +! static int nr2hex __ARGS((int c)); + + static int chartab_initialized = FALSE; + +--- 17,23 ---- + static int win_nolbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp)); + #endif + +! static unsigned nr2hex __ARGS((unsigned c)); + + static int chartab_initialized = FALSE; + +*************** +*** 664,670 **** + } + #endif + buf[++i] = nr2hex((unsigned)c >> 4); +! buf[++i] = nr2hex(c); + buf[++i] = '>'; + buf[++i] = NUL; + } +--- 664,670 ---- + } + #endif + buf[++i] = nr2hex((unsigned)c >> 4); +! buf[++i] = nr2hex((unsigned)c); + buf[++i] = '>'; + buf[++i] = NUL; + } +*************** +*** 674,682 **** + * Lower case letters are used to avoid the confusion of <F1> being 0xf1 or + * function key 1. + */ +! static int + nr2hex(c) +! int c; + { + if ((c & 0xf) <= 9) + return (c & 0xf) + '0'; +--- 674,682 ---- + * Lower case letters are used to avoid the confusion of <F1> being 0xf1 or + * function key 1. + */ +! static unsigned + nr2hex(c) +! unsigned c; + { + if ((c & 0xf) <= 9) + return (c & 0xf) + '0'; +*************** +*** 884,890 **** + if (c >= 0x100) + { + if (enc_dbcs != 0) +! return dbcs_class((unsigned)c >> 8, c & 0xff) >= 2; + if (enc_utf8) + return utf_class(c) >= 2; + } +--- 884,890 ---- + if (c >= 0x100) + { + if (enc_dbcs != 0) +! return dbcs_class((unsigned)c >> 8, (unsigned)(c & 0xff)) >= 2; + if (enc_utf8) + return utf_class(c) >= 2; + } +*************** +*** 1090,1096 **** + */ + numberextra = win_col_off(wp); + col2 = col; +! colmax = W_WIDTH(wp) - numberextra; + if (col >= colmax) + { + n = colmax + win_col_off2(wp); +--- 1090,1096 ---- + */ + numberextra = win_col_off(wp); + col2 = col; +! colmax = (colnr_T)(W_WIDTH(wp) - numberextra); + if (col >= colmax) + { + n = colmax + win_col_off2(wp); +*************** +*** 1201,1217 **** + win_T *wp; + colnr_T vcol; + { +! colnr_T width1; /* width of first line (after line number) */ +! colnr_T width2; /* width of further lines */ + + #ifdef FEAT_VERTSPLIT + if (wp->w_width == 0) /* there is no border */ + return FALSE; + #endif + width1 = W_WIDTH(wp) - win_col_off(wp); +! if (vcol < width1 - 1) + return FALSE; +! if (vcol == width1 - 1) + return TRUE; + width2 = width1 + win_col_off2(wp); + return ((vcol - width1) % width2 == width2 - 1); +--- 1201,1217 ---- + win_T *wp; + colnr_T vcol; + { +! int width1; /* width of first line (after line number) */ +! int width2; /* width of further lines */ + + #ifdef FEAT_VERTSPLIT + if (wp->w_width == 0) /* there is no border */ + return FALSE; + #endif + width1 = W_WIDTH(wp) - win_col_off(wp); +! if ((int)vcol < width1 - 1) + return FALSE; +! if ((int)vcol == width1 - 1) + return TRUE; + width2 = width1 + win_col_off2(wp); + return ((vcol - width1) % width2 == width2 - 1); +*************** +*** 1396,1408 **** + # ifdef FEAT_MBYTE + /* Cannot put the cursor on part of a wide character. */ + ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE); +! if (pos->col < STRLEN(ptr)) + { + int c = (*mb_ptr2char)(ptr + pos->col); + + if (c != TAB && vim_isprintc(c)) + { +! endadd = char2cells(c) - 1; + if (coladd > endadd) /* past end of line */ + endadd = 0; + else +--- 1396,1408 ---- + # ifdef FEAT_MBYTE + /* Cannot put the cursor on part of a wide character. */ + ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE); +! if (pos->col < (colnr_T)STRLEN(ptr)) + { + int c = (*mb_ptr2char)(ptr + pos->col); + + if (c != TAB && vim_isprintc(c)) + { +! endadd = (colnr_T)(char2cells(c) - 1); + if (coladd > endadd) /* past end of line */ + endadd = 0; + else +*** ../vim-7.2.166/src/cleanlint.vim 2009-05-13 12:08:12.000000000 +0200 +--- src/cleanlint.vim 2009-05-05 21:34:01.000000000 +0200 +*************** +*** 0 **** +--- 1,27 ---- ++ " Vim tool: Filter output of splint ++ " ++ " Maintainer: Bram Moolenaar <Bram@vim.org> ++ " Last Change: 2009 May 05 ++ ++ " Usage: redirect output of "make lint" to a file, edit that file with Vim and ++ " :call CleanLint() ++ " This deletes irrelevant messages. What remains might be valid warnings. ++ ++ fun! CleanLint() ++ g/^ Types are incompatible/lockmarks d ++ g/Assignment of dev_t to __dev_t:/lockmarks d ++ g/Assignment of __dev_t to dev_t:/lockmarks d ++ g/Operands of == have incompatible types (__dev_t, dev_t): /lockmarks d ++ g/Operands of == have incompatible types (unsigned int, int): /lockmarks d ++ g/Assignment of char to char_u: /lockmarks d ++ g/Assignment of unsigned int to int: /lockmarks d ++ g/Assignment of colnr_T to int: /lockmarks d ++ g/Assignment of int to char_u: /lockmarks d ++ g/Function .* expects arg . to be wint_t gets int: /lockmarks d ++ g/^digraph.c.*digraphdefault.*is type char, expects char_u:/lockmarks d ++ g/^digraph.c.*Additional initialization errors for digraphdefault not reported/lockmarks d ++ g/Function strncasecmp expects arg 3 to be int gets size_t: /lockmarks d ++ g/ To ignore signs in type comparisons use +ignoresigns/lockmarks d ++ g/ To allow arbitrary integral types to match any integral type, use +matchanyintegral./lockmarks d ++ g/ To allow arbitrary integral types to match long unsigned, use +longintegral./lockmarks d ++ endfun +*** ../vim-7.2.166/src/digraph.c 2008-06-25 00:26:41.000000000 +0200 +--- src/digraph.c 2009-05-05 20:32:43.000000000 +0200 +*************** +*** 32,38 **** + static void printdigraph __ARGS((digr_T *)); + + /* digraphs added by the user */ +! static garray_T user_digraphs = {0, 0, sizeof(digr_T), 10, NULL}; + + /* + * Note: Characters marked with XX are not included literally, because some +--- 32,38 ---- + static void printdigraph __ARGS((digr_T *)); + + /* digraphs added by the user */ +! static garray_T user_digraphs = {0, 0, (int)sizeof(digr_T), 10, NULL}; + + /* + * Note: Characters marked with XX are not included literally, because some +*************** +*** 2371,2380 **** + } + else + #endif +! *p++ = dp->result; + if (char2cells(dp->result) == 1) + *p++ = ' '; +! sprintf((char *)p, " %3d", dp->result); + msg_outtrans(buf); + } + } +--- 2371,2380 ---- + } + else + #endif +! *p++ = (char_u)dp->result; + if (char2cells(dp->result) == 1) + *p++ = ' '; +! vim_snprintf((char *)p, sizeof(buf) - (p - buf), " %3d", dp->result); + msg_outtrans(buf); + } + } +*************** +*** 2395,2401 **** + static void keymap_unload __ARGS((void)); + + /* +! * Set up key mapping tables for the 'keymap' option + */ + char_u * + keymap_init() +--- 2395,2404 ---- + static void keymap_unload __ARGS((void)); + + /* +! * Set up key mapping tables for the 'keymap' option. +! * Returns NULL if OK, an error message for failure. This only needs to be +! * used when setting the option, not later when the value has already been +! * checked. + */ + char_u * + keymap_init() +*************** +*** 2412,2436 **** + else + { + char_u *buf; + + /* Source the keymap file. It will contain a ":loadkeymap" command + * which will call ex_loadkeymap() below. */ +! buf = alloc((unsigned)(STRLEN(curbuf->b_p_keymap) + # ifdef FEAT_MBYTE +! + STRLEN(p_enc) + # endif +! + 14)); + if (buf == NULL) + return e_outofmem; + + # ifdef FEAT_MBYTE + /* try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath' */ +! sprintf((char *)buf, "keymap/%s_%s.vim", curbuf->b_p_keymap, p_enc); + if (source_runtime(buf, FALSE) == FAIL) + # endif + { + /* try finding "keymap/'keymap'.vim" in 'runtimepath' */ +! sprintf((char *)buf, "keymap/%s.vim", curbuf->b_p_keymap); + if (source_runtime(buf, FALSE) == FAIL) + { + vim_free(buf); +--- 2415,2443 ---- + else + { + char_u *buf; ++ size_t buflen; + + /* Source the keymap file. It will contain a ":loadkeymap" command + * which will call ex_loadkeymap() below. */ +! buflen = STRLEN(curbuf->b_p_keymap) + # ifdef FEAT_MBYTE +! + STRLEN(p_enc) + # endif +! + 14; +! buf = alloc((unsigned)buflen); + if (buf == NULL) + return e_outofmem; + + # ifdef FEAT_MBYTE + /* try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath' */ +! vim_snprintf((char *)buf, buflen, "keymap/%s_%s.vim", +! curbuf->b_p_keymap, p_enc); + if (source_runtime(buf, FALSE) == FAIL) + # endif + { + /* try finding "keymap/'keymap'.vim" in 'runtimepath' */ +! vim_snprintf((char *)buf, buflen, "keymap/%s.vim", +! curbuf->b_p_keymap); + if (source_runtime(buf, FALSE) == FAIL) + { + vim_free(buf); +*** ../vim-7.2.166/src/edit.c 2009-02-21 20:27:00.000000000 +0100 +--- src/edit.c 2009-05-05 21:14:50.000000000 +0200 +*************** +*** 57,63 **** + N_(" Keyword Local completion (^N^P)"), + }; + +! static char_u e_hitend[] = N_("Hit end of paragraph"); + + /* + * Structure used to store one match for insert completion. +--- 57,63 ---- + N_(" Keyword Local completion (^N^P)"), + }; + +! static char e_hitend[] = N_("Hit end of paragraph"); + + /* + * Structure used to store one match for insert completion. +*************** +*** 69,75 **** +--- 69,79 ---- + compl_T *cp_prev; + char_u *cp_str; /* matched text */ + char cp_icase; /* TRUE or FALSE: ignore case */ ++ #ifdef S_SPLINT_S /* splint can't handle array of pointers */ ++ char_u **cp_text; /* text for the menu */ ++ #else + char_u *(cp_text[CPT_COUNT]); /* text for the menu */ ++ #endif + char_u *cp_fname; /* file containing the match, allocated when + * cp_flags has FREE_FNAME */ + int cp_flags; /* ORIGINAL_TEXT, CONT_S_IPOS or FREE_FNAME */ +*************** +*** 306,312 **** + int c = 0; + char_u *ptr; + int lastc; +! colnr_T mincol; + static linenr_T o_lnum = 0; + int i; + int did_backspace = TRUE; /* previous char was backspace */ +--- 310,316 ---- + int c = 0; + char_u *ptr; + int lastc; +! int mincol; + static linenr_T o_lnum = 0; + int i; + int did_backspace = TRUE; /* previous char was backspace */ +*************** +*** 387,393 **** + if (startln) + Insstart.col = 0; + } +! Insstart_textlen = linetabsize(ml_get_curline()); + Insstart_blank_vcol = MAXCOL; + if (!did_ai) + ai_col = 0; +--- 391,397 ---- + if (startln) + Insstart.col = 0; + } +! Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); + Insstart_blank_vcol = MAXCOL; + if (!did_ai) + ai_col = 0; +*************** +*** 653,659 **** + mincol = curwin->w_wcol; + validate_cursor_col(); + +! if ((int)curwin->w_wcol < (int)mincol - curbuf->b_p_ts + && curwin->w_wrow == W_WINROW(curwin) + + curwin->w_height - 1 - p_so + && (curwin->w_cursor.lnum != curwin->w_topline +--- 657,663 ---- + mincol = curwin->w_wcol; + validate_cursor_col(); + +! if ((int)curwin->w_wcol < mincol - curbuf->b_p_ts + && curwin->w_wrow == W_WINROW(curwin) + + curwin->w_height - 1 - p_so + && (curwin->w_cursor.lnum != curwin->w_topline +*************** +*** 1773,1779 **** + * Compute the screen column where the cursor should be. + */ + vcol = get_indent() - vcol; +! curwin->w_virtcol = (vcol < 0) ? 0 : vcol; + + /* + * Advance the cursor until we reach the right screen column. +--- 1777,1783 ---- + * Compute the screen column where the cursor should be. + */ + vcol = get_indent() - vcol; +! curwin->w_virtcol = (colnr_T)((vcol < 0) ? 0 : vcol); + + /* + * Advance the cursor until we reach the right screen column. +*************** +*** 1800,1808 **** + */ + if (vcol != (int)curwin->w_virtcol) + { +! curwin->w_cursor.col = new_cursor_col; + i = (int)curwin->w_virtcol - vcol; +! ptr = alloc(i + 1); + if (ptr != NULL) + { + new_cursor_col += i; +--- 1804,1812 ---- + */ + if (vcol != (int)curwin->w_virtcol) + { +! curwin->w_cursor.col = (colnr_T)new_cursor_col; + i = (int)curwin->w_virtcol - vcol; +! ptr = alloc((unsigned)(i + 1)); + if (ptr != NULL) + { + new_cursor_col += i; +*************** +*** 1826,1832 **** + if (new_cursor_col <= 0) + curwin->w_cursor.col = 0; + else +! curwin->w_cursor.col = new_cursor_col; + curwin->w_set_curswant = TRUE; + changed_cline_bef_curs(); + +--- 1830,1836 ---- + if (new_cursor_col <= 0) + curwin->w_cursor.col = 0; + else +! curwin->w_cursor.col = (colnr_T)new_cursor_col; + curwin->w_set_curswant = TRUE; + changed_cline_bef_curs(); + +*************** +*** 1966,1972 **** + #ifdef FEAT_MBYTE + if (enc_utf8 && limit_col >= 0) + { +! int ecol = curwin->w_cursor.col + 1; + + /* Make sure the cursor is at the start of a character, but + * skip forward again when going too far back because of a +--- 1970,1976 ---- + #ifdef FEAT_MBYTE + if (enc_utf8 && limit_col >= 0) + { +! colnr_T ecol = curwin->w_cursor.col + 1; + + /* Make sure the cursor is at the start of a character, but + * skip forward again when going too far back because of a +*************** +*** 1982,1988 **** + } + if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol) + return FALSE; +! del_bytes((long)(ecol - curwin->w_cursor.col), FALSE, TRUE); + } + else + #endif +--- 1986,1992 ---- + } + if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol) + return FALSE; +! del_bytes((long)((int)ecol - curwin->w_cursor.col), FALSE, TRUE); + } + else + #endif +*************** +*** 2201,2207 **** + actual_compl_length = compl_length; + + /* Allocate wide character array for the completion and fill it. */ +! wca = (int *)alloc(actual_len * sizeof(int)); + if (wca != NULL) + { + p = str; +--- 2205,2211 ---- + actual_compl_length = compl_length; + + /* Allocate wide character array for the completion and fill it. */ +! wca = (int *)alloc((unsigned)(actual_len * sizeof(int))); + if (wca != NULL) + { + p = str; +*************** +*** 2580,2586 **** + */ + void + set_completion(startcol, list) +! int startcol; + list_T *list; + { + /* If already doing completions stop it. */ +--- 2584,2590 ---- + */ + void + set_completion(startcol, list) +! colnr_T startcol; + list_T *list; + { + /* If already doing completions stop it. */ +*************** +*** 2591,2600 **** + if (stop_arrow() == FAIL) + return; + +! if (startcol > (int)curwin->w_cursor.col) + startcol = curwin->w_cursor.col; + compl_col = startcol; +! compl_length = curwin->w_cursor.col - startcol; + /* compl_pattern doesn't need to be set */ + compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); + if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, +--- 2595,2604 ---- + if (stop_arrow() == FAIL) + return; + +! if (startcol > curwin->w_cursor.col) + startcol = curwin->w_cursor.col; + compl_col = startcol; +! compl_length = (int)curwin->w_cursor.col - (int)startcol; + /* compl_pattern doesn't need to be set */ + compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); + if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, +*************** +*** 2860,2866 **** + regmatch_T regmatch; + char_u **files; + int count; +- int i; + int save_p_scs; + int dir = compl_direction; + +--- 2864,2869 ---- +*************** +*** 2892,2908 **** + if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); + + if (pat_esc == NULL) + goto theend; +! i = (int)STRLEN(pat_esc) + 10; +! ptr = alloc(i); + if (ptr == NULL) + { + vim_free(pat_esc); + goto theend; + } +! vim_snprintf((char *)ptr, i, "^\\s*\\zs\\V%s", pat_esc); + regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); + vim_free(pat_esc); + vim_free(ptr); +--- 2895,2912 ---- + if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); ++ size_t len; + + if (pat_esc == NULL) + goto theend; +! len = STRLEN(pat_esc) + 10; +! ptr = alloc((unsigned)len); + if (ptr == NULL) + { + vim_free(pat_esc); + goto theend; + } +! vim_snprintf((char *)ptr, len, "^\\s*\\zs\\V%s", pat_esc); + regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); + vim_free(pat_esc); + vim_free(ptr); +*************** +*** 2993,2999 **** + { + vim_snprintf((char *)IObuff, IOSIZE, + _("Scanning dictionary: %s"), (char *)files[i]); +! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + + if (fp != NULL) +--- 2997,3003 ---- + { + vim_snprintf((char *)IObuff, IOSIZE, + _("Scanning dictionary: %s"), (char *)files[i]); +! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + + if (fp != NULL) +*************** +*** 3311,3317 **** + static int + ins_compl_len() + { +! int off = curwin->w_cursor.col - compl_col; + + if (off < 0) + return 0; +--- 3315,3321 ---- + static int + ins_compl_len() + { +! int off = (int)curwin->w_cursor.col - (int)compl_col; + + if (off < 0) + return 0; +*************** +*** 3347,3353 **** + + vim_free(compl_leader); + compl_leader = vim_strnsave(ml_get_curline() + compl_col, +! curwin->w_cursor.col - compl_col); + if (compl_leader != NULL) + ins_compl_new_leader(); + } +--- 3351,3357 ---- + + vim_free(compl_leader); + compl_leader = vim_strnsave(ml_get_curline() + compl_col, +! (int)(curwin->w_cursor.col - compl_col)); + if (compl_leader != NULL) + ins_compl_new_leader(); + } +*************** +*** 3395,3401 **** + ins_compl_addfrommatch() + { + char_u *p; +! int len = curwin->w_cursor.col - compl_col; + int c; + compl_T *cp; + +--- 3399,3405 ---- + ins_compl_addfrommatch() + { + char_u *p; +! int len = (int)curwin->w_cursor.col - (int)compl_col; + int c; + compl_T *cp; + +*************** +*** 3961,3967 **** + : ins_buf->b_sfname == NULL + ? (char *)ins_buf->b_fname + : (char *)ins_buf->b_sfname); +! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else if (*e_cpt == NUL) + break; +--- 3965,3971 ---- + : ins_buf->b_sfname == NULL + ? (char *)ins_buf->b_fname + : (char *)ins_buf->b_sfname); +! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else if (*e_cpt == NUL) + break; +*************** +*** 3991,3997 **** + { + type = CTRL_X_TAGS; + sprintf((char*)IObuff, _("Scanning tags.")); +! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else + type = -1; +--- 3995,4001 ---- + { + type = CTRL_X_TAGS; + sprintf((char*)IObuff, _("Scanning tags.")); +! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else + type = -1; +*************** +*** 6320,6326 **** + ins_need_undo = FALSE; + } + Insstart = curwin->w_cursor; /* new insertion starts here */ +! Insstart_textlen = linetabsize(ml_get_curline()); + ai_col = 0; + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +--- 6324,6330 ---- + ins_need_undo = FALSE; + } + Insstart = curwin->w_cursor; /* new insertion starts here */ +! Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); + ai_col = 0; + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +*** ../vim-7.2.166/src/ex_cmds.c 2009-04-29 18:44:38.000000000 +0200 +--- src/ex_cmds.c 2009-05-05 17:55:40.000000000 +0200 +*************** +*** 1789,1795 **** + * overwrite a user's viminfo file after a "su root", with a + * viminfo file that the user can't read. + */ +! st_old.st_dev = 0; + st_old.st_ino = 0; + st_old.st_mode = 0600; + if (mch_stat((char *)fname, &st_old) == 0 +--- 1789,1795 ---- + * overwrite a user's viminfo file after a "su root", with a + * viminfo file that the user can't read. + */ +! st_old.st_dev = (dev_t)0; + st_old.st_ino = 0; + st_old.st_mode = 0600; + if (mch_stat((char *)fname, &st_old) == 0 +*************** +*** 3715,3721 **** + /* If the window options were changed may need to set the spell language. + * Can only do this after the buffer has been properly setup. */ + if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! did_set_spelllang(curbuf); + #endif + + if (command == NULL) +--- 3715,3721 ---- + /* If the window options were changed may need to set the spell language. + * Can only do this after the buffer has been properly setup. */ + if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! (void)did_set_spelllang(curbuf); + #endif + + if (command == NULL) +*************** +*** 3788,3794 **** + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! keymap_init(); + #endif + + --RedrawingDisabled; +--- 3788,3794 ---- + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! (void)keymap_init(); + #endif + + --RedrawingDisabled; +*** ../vim-7.2.166/src/globals.h 2009-03-05 03:13:51.000000000 +0100 +--- src/globals.h 2009-05-09 21:14:49.000000000 +0200 +*************** +*** 524,530 **** + EXTERN win_T *prevwin INIT(= NULL); /* previous window */ + # define W_NEXT(wp) ((wp)->w_next) + # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next) +! #define FOR_ALL_TAB_WINDOWS(tp, wp) \ + for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \ + for ((wp) = ((tp) == curtab) \ + ? firstwin : (tp)->tp_firstwin; (wp); (wp) = (wp)->w_next) +--- 524,530 ---- + EXTERN win_T *prevwin INIT(= NULL); /* previous window */ + # define W_NEXT(wp) ((wp)->w_next) + # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next) +! # define FOR_ALL_TAB_WINDOWS(tp, wp) \ + for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \ + for ((wp) = ((tp) == curtab) \ + ? firstwin : (tp)->tp_firstwin; (wp); (wp) = (wp)->w_next) +*************** +*** 718,724 **** + + EXTERN pos_T saved_cursor /* w_cursor before formatting text. */ + # ifdef DO_INIT +! = INIT_POS_T + # endif + ; + +--- 718,724 ---- + + EXTERN pos_T saved_cursor /* w_cursor before formatting text. */ + # ifdef DO_INIT +! = INIT_POS_T(0, 0, 0) + # endif + ; + +*************** +*** 1039,1045 **** + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ + EXTERN pos_T last_cursormoved /* for CursorMoved event */ + # ifdef DO_INIT +! = INIT_POS_T + # endif + ; + #endif +--- 1039,1045 ---- + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ + EXTERN pos_T last_cursormoved /* for CursorMoved event */ + # ifdef DO_INIT +! = INIT_POS_T(0, 0, 0) + # endif + ; + #endif +*** ../vim-7.2.166/src/ops.c 2009-04-29 17:39:17.000000000 +0200 +--- src/ops.c 2009-05-13 12:41:02.000000000 +0200 +*************** +*** 6400,6406 **** + { + getvcols(curwin, &min_pos, &max_pos, &min_pos.col, + &max_pos.col); +! sprintf((char *)buf1, _("%ld Cols; "), + (long)(oparg.end_vcol - oparg.start_vcol + 1)); + } + else +--- 6400,6406 ---- + { + getvcols(curwin, &min_pos, &max_pos, &min_pos.col, + &max_pos.col); +! vim_snprintf((char *)buf1, sizeof(buf1), _("%ld Cols; "), + (long)(oparg.end_vcol - oparg.start_vcol + 1)); + } + else +*************** +*** 6408,6420 **** + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! sprintf((char *)IObuff, _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! sprintf((char *)IObuff, _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, +--- 6408,6422 ---- + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, +*************** +*** 6426,6445 **** + { + p = ml_get_curline(); + validate_virtcol(); +! col_print(buf1, (int)curwin->w_cursor.col + 1, + (int)curwin->w_virtcol + 1); +! col_print(buf2, (int)STRLEN(p), linetabsize(p)); + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! sprintf((char *)IObuff, _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! sprintf((char *)IObuff, _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, +--- 6428,6449 ---- + { + p = ml_get_curline(); + validate_virtcol(); +! col_print(buf1, sizeof(buf1), (int)curwin->w_cursor.col + 1, + (int)curwin->w_virtcol + 1); +! col_print(buf2, sizeof(buf2), (int)STRLEN(p), linetabsize(p)); + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, +*** ../vim-7.2.166/src/os_unix.c 2009-03-02 02:44:54.000000000 +0100 +--- src/os_unix.c 2009-05-05 17:35:58.000000000 +0200 +*************** +*** 199,205 **** + #endif + + #ifndef SIG_ERR +! # define SIG_ERR ((RETSIGTYPE (*)())-1) + #endif + + /* volatile because it is used in signal handler sig_winch(). */ +--- 199,207 ---- + #endif + + #ifndef SIG_ERR +! # ifndef S_SPLINT_S +! # define SIG_ERR ((RETSIGTYPE (*)())-1) +! # endif + #endif + + /* volatile because it is used in signal handler sig_winch(). */ +*************** +*** 441,447 **** + + #if defined(HAVE_TOTAL_MEM) || defined(PROTO) + # ifdef HAVE_SYS_RESOURCE_H +! # include <sys/resource.h> + # endif + # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) + # include <sys/sysctl.h> +--- 443,451 ---- + + #if defined(HAVE_TOTAL_MEM) || defined(PROTO) + # ifdef HAVE_SYS_RESOURCE_H +! # ifndef S_SPLINT_S /* splint crashes on bits/resource.h */ +! # include <sys/resource.h> +! # endif + # endif + # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) + # include <sys/sysctl.h> +*** ../vim-7.2.166/src/os_unix.h 2008-06-20 18:06:36.000000000 +0200 +--- src/os_unix.h 2009-05-05 17:07:45.000000000 +0200 +*************** +*** 53,59 **** + #endif + + #ifdef HAVE_UNISTD_H +! # include <unistd.h> + #endif + + #ifdef HAVE_LIBC_H +--- 53,61 ---- + #endif + + #ifdef HAVE_UNISTD_H +! # ifndef S_SPLINT_S /* splint crashes on bits/confname.h */ +! # include <unistd.h> +! # endif + #endif + + #ifdef HAVE_LIBC_H +*** ../vim-7.2.166/src/proto/buffer.pro 2008-11-15 14:10:23.000000000 +0100 +--- src/proto/buffer.pro 2009-05-13 12:23:41.000000000 +0200 +*************** +*** 37,49 **** + int otherfile __ARGS((char_u *ffname)); + void buf_setino __ARGS((buf_T *buf)); + void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); +! void col_print __ARGS((char_u *buf, int col, int vcol)); + void maketitle __ARGS((void)); + void resettitle __ARGS((void)); + void free_titles __ARGS((void)); + int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab)); +! void get_rel_pos __ARGS((win_T *wp, char_u *str)); +! int append_arg_number __ARGS((win_T *wp, char_u *buf, int add_file, int maxlen)); + char_u *fix_fname __ARGS((char_u *fname)); + void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname)); + char_u *alist_name __ARGS((aentry_T *aep)); +--- 37,48 ---- + int otherfile __ARGS((char_u *ffname)); + void buf_setino __ARGS((buf_T *buf)); + void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); +! void col_print __ARGS((char_u *buf, size_t buflen, int col, int vcol)); + void maketitle __ARGS((void)); + void resettitle __ARGS((void)); + void free_titles __ARGS((void)); + int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab)); +! void get_rel_pos __ARGS((win_T *wp, char_u *buf, int buflen)); + char_u *fix_fname __ARGS((char_u *fname)); + void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname)); + char_u *alist_name __ARGS((aentry_T *aep)); +*************** +*** 54,61 **** + void write_viminfo_bufferlist __ARGS((FILE *fp)); + char *buf_spname __ARGS((buf_T *buf)); + void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr)); +! int buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr)); +! int_u buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type)); + linenr_T buf_delsign __ARGS((buf_T *buf, int id)); + int buf_findsign __ARGS((buf_T *buf, int id)); + int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum)); +--- 53,60 ---- + void write_viminfo_bufferlist __ARGS((FILE *fp)); + char *buf_spname __ARGS((buf_T *buf)); + void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr)); +! linenr_T buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr)); +! int buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type)); + linenr_T buf_delsign __ARGS((buf_T *buf, int id)); + int buf_findsign __ARGS((buf_T *buf, int id)); + int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum)); +*** ../vim-7.2.166/src/proto/edit.pro 2008-01-16 20:03:13.000000000 +0100 +--- src/proto/edit.pro 2009-05-05 20:51:56.000000000 +0200 +*************** +*** 8,14 **** + void backspace_until_column __ARGS((int col)); + int vim_is_ctrl_x_key __ARGS((int c)); + int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags)); +! void set_completion __ARGS((int startcol, list_T *list)); + void ins_compl_show_pum __ARGS((void)); + char_u *find_word_start __ARGS((char_u *ptr)); + char_u *find_word_end __ARGS((char_u *ptr)); +--- 8,14 ---- + void backspace_until_column __ARGS((int col)); + int vim_is_ctrl_x_key __ARGS((int c)); + int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags)); +! void set_completion __ARGS((colnr_T startcol, list_T *list)); + void ins_compl_show_pum __ARGS((void)); + char_u *find_word_start __ARGS((char_u *ptr)); + char_u *find_word_end __ARGS((char_u *ptr)); +*** ../vim-7.2.166/src/screen.c 2009-03-18 19:07:09.000000000 +0100 +--- src/screen.c 2009-05-05 17:42:45.000000000 +0200 +*************** +*** 9481,9493 **** + win_T *wp; + int always; + { +! char_u buffer[70]; + int row; + int fillchar; + int attr; + int empty_line = FALSE; + colnr_T virtcol; + int i; + int o; + #ifdef FEAT_VERTSPLIT + int this_ru_col; +--- 9481,9495 ---- + win_T *wp; + int always; + { +! #define RULER_BUF_LEN 70 +! char_u buffer[RULER_BUF_LEN]; + int row; + int fillchar; + int attr; + int empty_line = FALSE; + colnr_T virtcol; + int i; ++ size_t len; + int o; + #ifdef FEAT_VERTSPLIT + int this_ru_col; +*************** +*** 9602,9612 **** + * Some sprintfs return the length, some return a pointer. + * To avoid portability problems we use strlen() here. + */ +! sprintf((char *)buffer, "%ld,", + (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) + ? 0L + : (long)(wp->w_cursor.lnum)); +! col_print(buffer + STRLEN(buffer), + empty_line ? 0 : (int)wp->w_cursor.col + 1, + (int)virtcol + 1); + +--- 9604,9615 ---- + * Some sprintfs return the length, some return a pointer. + * To avoid portability problems we use strlen() here. + */ +! vim_snprintf((char *)buffer, RULER_BUF_LEN, "%ld,", + (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) + ? 0L + : (long)(wp->w_cursor.lnum)); +! len = STRLEN(buffer); +! col_print(buffer + len, RULER_BUF_LEN - len, + empty_line ? 0 : (int)wp->w_cursor.col + 1, + (int)virtcol + 1); + +*************** +*** 9616,9622 **** + * screen up on some terminals). + */ + i = (int)STRLEN(buffer); +! get_rel_pos(wp, buffer + i + 1); + o = i + vim_strsize(buffer + i + 1); + #ifdef FEAT_WINDOWS + if (wp->w_status_height == 0) /* can't use last char of screen */ +--- 9619,9625 ---- + * screen up on some terminals). + */ + i = (int)STRLEN(buffer); +! get_rel_pos(wp, buffer + i + 1, RULER_BUF_LEN - i - 1); + o = i + vim_strsize(buffer + i + 1); + #ifdef FEAT_WINDOWS + if (wp->w_status_height == 0) /* can't use last char of screen */ +*************** +*** 9643,9649 **** + buffer[i++] = fillchar; + ++o; + } +! get_rel_pos(wp, buffer + i); + } + /* Truncate at window boundary. */ + #ifdef FEAT_MBYTE +--- 9646,9652 ---- + buffer[i++] = fillchar; + ++o; + } +! get_rel_pos(wp, buffer + i, RULER_BUF_LEN - i); + } + /* Truncate at window boundary. */ + #ifdef FEAT_MBYTE +*** ../vim-7.2.166/src/structs.h 2008-11-15 16:05:30.000000000 +0100 +--- src/structs.h 2009-05-05 18:20:36.000000000 +0200 +*************** +*** 33,41 **** + } pos_T; + + #ifdef FEAT_VIRTUALEDIT +! # define INIT_POS_T {0, 0, 0} + #else +! # define INIT_POS_T {0, 0} + #endif + + /* +--- 33,41 ---- + } pos_T; + + #ifdef FEAT_VIRTUALEDIT +! # define INIT_POS_T(l, c, ca) {l, c, ca} + #else +! # define INIT_POS_T(l, c, ca) {l, c} + #endif + + /* +*************** +*** 1166,1172 **** + char_u *b_fname; /* current file name */ + + #ifdef UNIX +! int b_dev; /* device number (-1 if not set) */ + ino_t b_ino; /* inode number */ + #endif + #ifdef FEAT_CW_EDITOR +--- 1166,1172 ---- + char_u *b_fname; /* current file name */ + + #ifdef UNIX +! dev_t b_dev; /* device number (-1 if not set) */ + ino_t b_ino; /* inode number */ + #endif + #ifdef FEAT_CW_EDITOR +*************** +*** 1645,1651 **** +--- 1645,1655 ---- + #endif + #ifdef FEAT_DIFF + diff_T *tp_first_diff; ++ # ifdef S_SPLINT_S /* splint doesn't understand the array of pointers */ ++ buf_T **tp_diffbuf; ++ # else + buf_T *(tp_diffbuf[DB_COUNT]); ++ # endif + int tp_diff_invalid; /* list of diffs is outdated */ + #endif + frame_T *tp_snapshot; /* window layout snapshot */ +*** ../vim-7.2.166/src/version.c 2009-04-29 18:44:38.000000000 +0200 +--- src/version.c 2009-05-13 12:06:36.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 167, + /**/ + +-- +Snoring is prohibited unless all bedroom windows are closed and securely +locked. + [real standing law in Massachusetts, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |