Commit Graph

804 Commits

Author SHA1 Message Date
Nicolas Hillegeer
852f0aaae8 garray: comment and refactor a bit more
The following functions are affected:

- ga_remove_duplicate_strings
- ga_append
2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
eea98c4d3b garray: refactor and optimize ga_concat
I've checked all uses of ga_concat in the codebase:

- ex_cmds2.c
- ex_getln.c
- eval.c
- message.c
- regexp-nfa.c
- term.c
- spell.c

None of them concats the garray with itself. This makes it safe to use the
faster memcpy() instead of memmove(). This change was also documented.
2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
767f0fae0b garray: make parameter of ga_concat_strings const 2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
b737b27e6a garray: add unit tests for ga_concat_strings_sep 2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
104000eff6 garray: implement ga_concat_strings_sep
A generalized version of ga_concat_strings that can handle any separator.
Reimplement ga_concat_strings on top of it.
2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
cf68eda287 garray: reimplement ga_concat_strings with stpcpy
Less useless strlen(), stpcpy() is a more natural fit for this task.
ga_concat_strings() still has too much strlen() but that would be ugly to
remove for a function that's not used very often (just once in the current
codebase).
2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
6b486f41d1 memory: implement xstp(n)cpy
Both are implemented to POSIX 2008 spec, though I'm not sure I'm happy about
stpncpy's behaviour.
2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
466b73108f garray: refactor ga_grow
- xrealloc will call xmalloc if the input pointer is NULL, no need to check
  twice.
- use the early-quit idiom to decrease the indentation, which enhances
  readability.
2014-04-29 09:29:10 -03:00
Nicolas Hillegeer
ce9c49f222 garray: add unit tests
Only append_ga_line() was not tested because it relies on global vim state.
2014-04-29 09:29:10 -03:00
John
42efbfd2fd Test and refactor shorten_fname and shorten_fname1
Rename `shorten_fname` -> `path_shorten_fname`
Rename `shorten_fname1` -> `path_shorten_fname_if_possible`
2014-04-29 09:24:34 -03:00
John Schmidt
c57002a7c3 Remove shorten_filenames (dead code) 2014-04-29 09:24:34 -03:00
Justin M. Keyes
9a2c92e92c Merge pull request #620 from watk/remove-dead-feats
[RDY] Remove references to FEAT_{X11,CLIPBOARD} and USE_XSMP.
2014-04-28 20:31:56 -04:00
Chris Watkins
c9fba7ca7c Remove references to FEAT_{X11,CLIPBOARD} and USE_XSMP. 2014-04-28 16:46:34 -07:00
Nicolas Hillegeer
9e04e81ac7 test: no longer define ad-hoc C headers
With the improved cimport helper, we can just load what we want.
2014-04-28 16:17:25 -03:00
Nicolas Hillegeer
d699ccfb0c test: fix the cimport method
This commit will hopefully allow the cimport method to be used just as one
would use #inclue <header.h> in C. It follows the following method:

1. create a pseudoheader file that #include's all the requested header files
2. runs the pseudoheader through the C preprocessor (it will try various
   compilers if available on the system).
3. runs the preprocessed file through a C formatter, which attempts to group
   statements on one line. For example, a struct definition that was
   formerly on several lines will take just one line after formatting. This
   is done so that unique declarations can be detected. Duplicates are thus
   easy to remove.
4. remove lines that are too complex for the LuaJIT C parser (such as:
   Objective-C block syntax, crazy enums defined on linux, ...)
5. remove duplicate declarations
6. pass result to ffi.cdef
2014-04-28 16:17:25 -03:00
Nicolas Hillegeer
349f9da850 path: add 'garray.h' to headers
The function prototypes use garray_T* arguments, but the header is not
included in path.h. Technically we could also get away with a forward
declaration since we're just using the pointer, but I don't see the urgent
need for that.
2014-04-28 16:17:25 -03:00
oni-link
e772cfcc55 vim-patch:7.4.241
Problem:    The string returned by submatch() does not distinguish between a
            NL from a line break and a NL that stands for a NUL character.
Solution:   Add a second argument to return a list. (ZyX)

https://code.google.com/p/vim/source/detail?r=a63d0cd691dc925283815d17d62f4e948d723a59
2014-04-28 16:16:40 -03:00
Klemen Košir
d4f8a86700 vim-patch:7.4.265
Problem:    Can't call a global function with "g:" in an expression.
Solution:   Skip the "g:" when looking up the function.

https://code.google.com/p/vim/source/detail?r=8ec9d2196bee0c5108f2d2c196a660a7f4e5f29f
2014-04-28 13:26:04 -03:00
Mathias Bynens
f5a3df7b87 README: Use SVG badge for Travis 2014-04-28 09:28:36 -03:00
Leonard Ehrenfried
42939d7648 Hold java packages to speed up build 2014-04-28 09:27:58 -03:00
Marco Hinz
9b9c1dee13 vim-patch:7.4.264
Problem:  Can't define a function starting with "g:". Can't assign a
          funcref to a buffer-local variable.
Solution: Skip "g:" at the start of a function name.
          Don't check for colons when assigning to a variable.

https://code.google.com/p/vim/source/detail?r=00acac0af680c2d8c82db5258474b121a5908926
2014-04-28 08:00:28 -03:00
Eliseo Martínez
4d0dd14189 Use portable format specifiers: Improve arguments formatting.
At some places, printf-like function's arguments styling could be
improved to enhance readability.
2014-04-28 07:59:25 -03:00
Eliseo Martínez
e194324885 Use portable format specifiers: Clarify some casted expressions.
Though correct (to my understanding), some of the casts introduced in
previous commits could lead to confusion, by casting only the first
expression component instead of the whole expression.

This fixes that, parenthesizing casted expressions, except where
operator precedence rules make it unneccesary.
2014-04-28 07:59:25 -03:00
Marco Hinz
b8520b8ee4 Fix garray.* according to -Wconversion 2014-04-28 07:58:10 -03:00
Eliseo Martínez
6e2cb1bddb Use portable format specifiers: Case %ld - plain - sscanf.
Fix uses of plain "%ld" within sscanf():
- Replace "%ld" with "%" SCNd64.
- Create (int64_t) local variable and sscanf into that.
- Safely downcast into previous type (introduce assertion, to be removed
  when variable type refactored).
2014-04-28 07:49:14 -03:00
Marco Hinz
c79ff046a0 Remove useless modelines (pt2) 2014-04-28 07:48:28 -03:00
oni-link
38ac85da87 Call to list_append_string cannot fail.
Clean up the use of list_append_string and remove error checks.
2014-04-28 07:46:24 -03:00
oni-link
8d5a546d3f Call to list_append_dict cannot fail.
Clean up the use of list_append_dict and remove error checks.
2014-04-28 07:46:24 -03:00
Chris Watkins
9da32a1f78 Remove code and checks for unsupported systems.
Remove remnants of support for systems including
__EMX__, MSDOS, OS2, AMIGA and MORPHOS.
2014-04-28 07:43:57 -03:00
John Schmidt
4e1b364a3e Remove alloc_clear
Use `xcalloc` instead.
Inline `alloc_tv` and `alloc_string_tv` in eval.c
2014-04-28 07:41:45 -03:00
Steven Myint
c70a526a5d Remove deprecated "--use-mirrors"
In newer versions of `pip`, it is obsolete. See the following relevant links.

https://pip.readthedocs.org/en/latest/news.html
https://github.com/eddyxu/cpp-coveralls/pull/37
2014-04-26 08:48:30 -04:00
Marco Hinz
342764d70e vim-patch:7.4.260
Problem:  It is possible to define a function with a colon in the name.  It
          is possible to define a function with a lower case character if a
          "#" appears after the name.
Solution: Disallow using a colon other than with "s:".  Ignore "#" after the
          name.

https://code.google.com/p/vim/source/detail?r=6bc874e4789a0f912b4fd6b23afecf19d80b1605
2014-04-25 14:09:04 -03:00
Marco Hinz
a6e1738db3 Tests: prettify Makefile 2014-04-25 14:08:45 -03:00
Marco Hinz
6a63b0986f vim-patch:7.4.261
Problem:  When updating the window involves a regexp pattern, an
          interactive substitute to replace a "\n" with a line
          break fails. (Ingo Karkat)

Solution: Set reg_line_lbr in vim_regsub() and vim_regsub_multi().

https://code.google.com/p/vim/source/detail?r=43c6cd07c8defd8505acbe479c6970764c08e6f9
2014-04-25 14:06:01 -03:00
Eliseo Martínez
ae4090b2ce Broken build on 32 bit: Pending TODO: Reenable assertion.
On a1a0c00589, an assertion was disabled
because of breaking 32bit build.
This fixes that so that it now always works.
2014-04-24 10:59:44 -03:00
Chris Watkins
c3fb8240bc Add the neovim style guide to the contributing guide. 2014-04-24 10:50:50 -03:00
Chris Watkins
b951cf5bfc Remove O_EXTRA which was only for EMX and cygwin. 2014-04-24 10:49:14 -03:00
Stefan Hoffmann
bf9aeda01c Remove mch_screenmode, inline EMSG into ex_mode() 2014-04-24 10:38:42 -03:00
Felipe Oliveira Carvalho
3f38c384ef Add cast to unsigned to improve div by 2 in find_internal_func() 2014-04-24 10:32:47 -03:00
Felipe Oliveira Carvalho
db23cb05d1 Use /2 and 2* instead of >>1 and <<1 which are tricky with signed types
Today's compilers generate shift instructions to perform division and
multiplications by powers of 2 [1]. `(x >> 1)` looks straightforward enough, but
if x is signed the code will fail when x < 0. The compiler knows better: use
`x / 2`.

That's why we have code like this:

    (long)((long_u)Rows >> 1))

instead of the cleaner version that generates the same or better machine code:

    Rows / 2

[1] http://goo.gl/J4WpG7
2014-04-24 10:32:47 -03:00
Felipe Oliveira Carvalho
9a5b3eee5f Remove OOM test in set_context_in_menu_cmd() 2014-04-24 10:31:32 -03:00
Felipe Oliveira Carvalho
c68410de52 No OOM error condition in some ml_* functions
- ml_add_stack()
 - ml_encrypt_data()
 - ml_updatechunk()
2014-04-24 10:31:32 -03:00
Felipe Oliveira Carvalho
5421f84443 No OOM error condition in get_register() and yank_copy_line() 2014-04-24 10:31:31 -03:00
Felipe Oliveira Carvalho
f298be9fe1 Add FUNC_ATTR_NONNULL_RET to some functions 2014-04-24 10:31:31 -03:00
Felipe Oliveira Carvalho
244ca83be5 No OOM error conditions in quickfix.c and regex_nfa.c
quickfix.c

 - ll_new_list
 - ll_get_or_alloc_list

regex_nfa.c

 - realloc_post_list -> EMIT -> nfa_emit_equi_class
 - nfa_regcomp_start

Use xrealloc() in realloc_post_list() (regexp_nfa.c)

  Test plan: force a call to realloc_post_list() for every use of the EMIT macro;
  open nvim and test regexp search.
2014-04-24 10:31:31 -03:00
Felipe Oliveira Carvalho
e76d146029 No OOM error in call_shell() and read_string() 2014-04-24 10:31:31 -03:00
Felipe Oliveira Carvalho
28b03dd190 No OOM error conditions in some functions of window.c
- alloc_tabpage()
 - win_alloc_lines()
 - win_alloc_aucmd_win()
 - new_frame()
 - win_alloc()

TODO: don't handle OOM after calls to dict_alloc()
2014-04-24 10:31:31 -03:00
Felipe Oliveira Carvalho
6d193b0b37 No OOM errors in mb_str2wide, slang_alloc, open_spellbuf 2014-04-24 10:31:31 -03:00
Felipe Oliveira Carvalho
bd3587e91d No OOM error condition in cs_make_vim_style_matches()
Even though cs_reset() never returns anything different of `CS_SUCCESS` I can't
change its return type to `void`. cs_reset() is used in the `cs_cmds` table.
2014-04-24 10:31:31 -03:00
Felipe Oliveira Carvalho
aa32fbb838 No OOM error condition in save_patterns() 2014-04-24 10:31:31 -03:00