Commit Graph

166 Commits

Author SHA1 Message Date
Felipe Oliveira Carvalho
2d72d85b23 refactor: pos_T macros to functions (#6496) 2017-04-11 22:44:48 +02:00
Björn Linse
db9ef6263e mbyte: replace vim_tolower with mb_tolower handling locale correctly 2017-04-10 12:01:40 +02:00
ZyX
a1d590a08b *: Use const char * in set_one_cmd_context
Also renames functions added in master and renamed here.
2017-03-29 10:08:46 +03:00
ZyX
218fa1d806 charset: Remove useless condition from vim_iswordc_tab 2017-03-29 10:08:45 +03:00
ZyX
c8e63a8db8 eval: Move remaining get_tv_string* functions to eval/typval.c 2017-03-29 10:08:05 +03:00
ZyX
fb146e80aa eval: Split eval.c into smaller files 2017-03-29 10:05:06 +03:00
James McCoy
2a6d44ca52 vim-patch:8.0.0250
Problem:    When virtcol() gets a column that is not the first byte of a
            multi-byte character the result is unpredictable. (Christian
            Ludwig)
Solution:   Correct the column to the first byte of a multi-byte character.
            Change the utf-8 test to new style.

0c0590d982

Closes #6269
2017-03-24 15:11:51 -04:00
Justin M. Keyes
c398402f12 vim-patch:8.0.0307
Problem:    Asan detects a memory error when EXITFREE is defined. (Dominique
            Pelle)
Solution:   In getvcol() check for ml_get_buf() returning an empty string.
            Also skip adjusting the scroll position.  Set "exiting" in
            mch_exit() for all systems.

955f198fc5
2017-03-22 18:43:01 +01:00
lonerover
8a10497ce6 vim-patch:7.4.1981 (#6192)
Problem:    No testing for Farsi code.
Solution:   Add a minimal test.  Clean up Farsi code.

ee2615af64
2017-03-02 12:47:35 +01:00
ZyX
efa2682e3b *: Partial string handling refactoring
Main points:

- Replace `char_u` with `char` in some cases.
- Remove `str[len] = NUL` hack in some cases when `str` may be considered
  `const`.
2017-02-15 02:48:33 +03:00
Björn Linse
2eeabf9a43 mbyte: clean up charset.c for assumed encoding=utf-8 2016-12-07 08:59:08 +01:00
Björn Linse
5072ab9e5b encoding: cleanup mbyte.c given fixed encoding=utf-8
Eliminate mb_init():
Set "enc_utf" and "has_mbyte" early. Eliminate "enc_unicode" and "enc_latin1like".
init_chartab() and screenalloc() are already invoked elsewhere
in the initialization process.
The EncodingChanged autocmd cannot be triggered.
At initialization, there is no spellfiles to reload
2016-11-05 14:49:24 +01:00
Florian Larysch
2a6c5bb0c4 modeline: Handle version number overflow. #5450
Closes #5449

A file containing the string "vim" followed by a very large number in a modeline
location will trigger an overflow in getdigits() which is called by
chk_modeline() when trying to parse the version number.

Add getdigits_safe(), which does not assert overflows, but reports them to the
caller.
2016-10-26 13:05:25 +02:00
Justin M. Keyes
df072c3b2b refactor: eliminate misc2.c
move `call_shell` to misc1.c
Move some fns to state.c
Move some fns to option.c
Move some fns to memline.c
Move `vim_chdir*` fns to file_search.c
Move some fns to new module, bytes.c
Move some fns to fileio.c
2016-09-13 16:20:09 +02:00
James McCoy
a371f1027e Fix error-handling of strtoimax boundary conditions
strtoimax is only required to set errno if there is an
underflow/overflow.  In those conditions, strtoimax returns
INTMAX_MIN/INTMAX_MAX respectively, so that's the only time we should be
checking the value of errno.

Even in those conditions, errno needs to be set to a known good value
before calling strtoimax to differentiate between "value is actually
INTMAX_MAX/MIN" and "value over/underflows".

Closes #5279
2016-09-02 10:11:32 -04:00
prollings
dcbd1c7b13 vim-patch:7.4.1147 (#5005)
Problem:    Conflict for "chartab". (Kazunobu Kuriyama)
Solution:   Rename the global one to something less obvious.  Move it into
            src/chartab.c.

88e8f9f144
2016-07-10 17:05:06 -04:00
oni-link
2902153648 Remove some unnecessary function attributes (#4909)
This removes attribute FUNC_ATTR_NONNULL_ALL for functions without
a pointer parameter.
2016-06-11 11:56:39 -04:00
ZyX
ebabdff5cd keymap: Make replace_termcodes and friends accept length and cpo_flags
Reasons:
- One does not have to do `s[len] = NUL` to work with these functions if they do
  not need to replace the whole string: thus `s` may be const.
- One does not have to save/restore p_cpo to work with them.
2016-04-18 02:43:43 +03:00
huchet
52a830fec6 Enabled -Wconversion in charset.c 2016-04-06 13:32:02 +00:00
Charles Joachim
35b6a020b9 charset.c: change return type to bool
Co-authored-by: Wayne Rowcliffe
2016-02-09 11:13:04 -05:00
watiko
a5f361e470 vim-patch:7.4.1027
Problem:    No support for binary numbers.
Solution:   Add "bin" to nrformats. (Jason Schulz)

887c1fea4a
2016-02-01 03:47:08 +09:00
watiko
1e94262efe vim-patch:7.4.848
Problem:    CTRL-A on hex number in Visual block mode is incorrect.
Solution:   Account for the "0x". (Hirohito Higashi)

5adfea1ac6
2016-02-01 03:43:37 +09:00
watiko
43fd126298 vim-patch:7.4.782
Problem:    Still a few problems with CTRL-A and CTRL-X in Visual mode.
Solution:   Fix the reported problems. (Christian Brabandt)

5d1bc78a2b
2016-02-01 03:43:37 +09:00
Jason Schulz
1937c6e480 vim_str2nr: cleanup #4104
Fixes unused assignments found by clang-scan.
2016-01-26 09:15:25 -05:00
Justin M. Keyes
41434e6881 coverity/134885: Using uninitialized value
Case: (dobin > 1) && (pre != 0)
2016-01-24 23:17:13 -05:00
Jason Schulz
f82e982bda Fix lint issues 2016-01-15 20:32:00 -08:00
Jason Schulz
7ad3f077dc Add support for binary numbers 2016-01-15 18:21:06 -08:00
David Bürgin
c6da503336 vim-patch:7.4.579 #2652
Problem:    Wrong cursor positioning when 'linebreak' is set and lines wrap.
Solution:   (Christian Brabandt)

https://github.com/vim/vim/commit/v7-4-579

See https://groups.google.com/d/msg/vim_dev/Eh3N9L68Ajw/4dB5x1RTQJQJ
2015-05-26 00:49:05 -04:00
Felipe Oliveira Carvalho
2ca8afc74e Replace vim_isxdigit() with to ascii_isxdigit() defined in ascii.h 2015-04-24 20:37:13 -03:00
Felipe Oliveira Carvalho
caabcae0b7 Replace VIM_ISDIGIT() and vim_isdigit() with ascii_isdigit() defined in ascii.h 2015-04-24 20:37:13 -03:00
Felipe Oliveira Carvalho
93bf201119 Replace vim_iswhite with ascii_iswhite() defined in ascii.h 2015-04-24 20:37:13 -03:00
Scott Prager
3f74067565 Un-mch mch_has_(exp_)wildcard().
Merge mch_has_wildcard() and mch_has_exp_wildcar() with their upstream
equivalents for Windows and replace the "mch_" suffix with "path_".
2015-03-31 11:20:23 -03:00
Anton Ovchinnikov
9925b3a047 Remove redundant casts 2015-03-09 00:40:50 +01:00
Thiago de Arruda
e0e41b30c6 ui: Remove/adapt some old code for a big UI refactor
- Remove abstract_ui global, now it is always active
- Remove some terminal handling code
- Remove unused functions
- Remove HAVE_TGETENT/TERMINFO/TERMIOS/IOCTL #ifdefs
- Remove tgetent/terminfo from version.c
- Remove curses/terminfo dependencies
- Only start/stop termcap when starting/exiting the program
- msg_use_printf will return true if there are no attached UIs(
  messages will be written to stdout)
- Remove `ex_winpos`(implement `:winpos` with `ex_ni`)
2015-02-16 23:17:39 -03:00
Eliseo Martínez
2ad0ca9c76 Remove nonnullret deadcode: Mark new nonnullret functions. 2015-01-27 01:33:31 +01:00
Eliseo Martínez
2ceb1c74d5 Remove long_u: regexp: Refactor long_u. 2015-01-19 19:47:28 +01:00
Justin M. Keyes
401d738597 Merge pull request #1803 from elmart/small-fixes
Small fixes.
2015-01-16 09:27:09 -05:00
Eliseo Martínez
634d5d86a7 coverity/100248: Operands don't affect result: HI.
Problem    : Operands don't affect results (CONSTANT_EXPRESSION_RESULT).
Diagnostic : Harmless issue.
Rationale  : n >= LONG_MIN, n being intmax_t, is always true for
             architectures where sizeof(intmax_t) == sizeof(long).
Resolution : Add sizes check.
2015-01-16 09:26:01 +01:00
Michael Reed
d86ebc7afb Macro cleanup: PROTO
Regarding dict_lookup() in eval.c: both definitions are the same, the
only difference being the spacing between the indirection operator and
the indentation level.
2015-01-14 15:07:16 -05:00
Eliseo Martínez
7f7262e933 Cleanup: Rename getdigits() family functions. 2015-01-11 21:04:08 +01:00
Eliseo Martínez
04c0658024 Cleanup: Refactor getdigits().
Problem  : getdigits() currently returns a long, but at most places,
           return value is casted (unsafely) into an int. Making casts
           safe would introduce a lot of fuss in the form of assertions
           checking for limits.
Note     : We cannot just change return type to int, because, at some
           places, legitimate long values are used. For example, in
           diff.c, for line numbers.
Solution : Introduce new functions:
           - get_digits()      : Gets an intmax_t from a string.
           - get_int_digits()  : Wrapper for ints.
           - get_long_digits() : Wrapper for longs.
           And replace getdigits() invocations by the appropiate
           wrapper invocations.
2015-01-11 17:18:39 +01:00
Florian Walch
0a20cd7f50 vim-patch:7.4.489
Problem:    Cursor movement still wrong when 'lbr' is set and there is a
	    number column. (Hirohito Higashi)
Solution:   Add correction for number column. (Hiroyuki Takagi)

https://code.google.com/p/vim/source/detail?r=v7-4-489
2014-12-23 21:17:00 +01:00
Justin M. Keyes
3e665efea4 Merge pull request #1497 from splinterofchaos/const-attr
constify and func-attribute memory.c and strings.c
2014-11-29 22:48:23 -05:00
Felipe Morales
9ab44e74ab vim-patch:7.4.478: Use character lenght for 'showbreak'
vim-patch:7.4.478

Problem:    Using byte length instead of character length for
'showbreak'.
Solution:   Compute the character length. (Marco Hinz)

https://code.google.com/p/vim/source/detail?r=v7-4-478
2014-11-27 19:40:51 -03:00
Felipe Morales
c82eb31a5d vim-patch:7.4.473
vim-patch:7.4.473

Problem:    Cursor movement is incorrect when there is a number
            column/sign/fold column and 'sbr' is displayed.
Solution:   Adjust the column for 'sbr'. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=v7-4-473
2014-11-27 19:40:51 -03:00
Scott Prager
ecf81c3f20 strings/memory: constify and func_attr.
Fix MB_COPY_cHAR() to accept const pointers.
2014-11-27 14:38:26 -05:00
Eliseo Martínez
150b0d66e1 Fix warnings: charset.c: win_lbr_chartabsize(): Dead assignment: HI.
Problem    : Dead assignment @ 1037.
Diagnostic : Harmless issue.
Rationale  : `tab_corr` is in effect unused after signaled point.
             Previous code using it after that point was removed at
             24ebb018e2.
Resolution : Remove dead assignment. As only one usage remains, remove
             variable and inline the only usage.
2014-11-15 13:57:11 +01:00
Scott Prager
24ebb018e2 vim-patch:7.4.416
Problem:    Problem with breakindent/showbreak and tabs.
Solution:   Handle tabs differently. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?name=v7-4-416
2014-11-11 12:51:58 -05:00
Felipe Morales
359262d58d vim-patch: 7.4.352
Problem:    With 'linebreak' a tab causes a missing line break.
Solution:   Count a tab for what it's worth also for shorter lines.
            (Christian Brabandt)
2014-08-20 08:27:23 -04:00
Felipe Morales
dfdfee0260 vim-patch: 7.4.353
Make 'breakindent' work with the 'list' option.

Originally patched in vim patch 7.4.353, by chrisbra
(https://code.google.com/p/vim/source/detail?r=d42a1d3b74d40f580359dbd139d2d0dfa7235252)

Updated version.c.
2014-08-20 05:19:57 -04:00