aboutsummaryrefslogtreecommitdiff
path: root/src/normal.c
Commit message (Collapse)AuthorAge
* Introduce nvim namespace: Move files.Eliseo Martínez2014-05-15
| | | | | | Move files from src/ to src/nvim/. - src/nvim/ becomes the new root dir for nvim executable sources. - src/libnvim/ is planned to become root dir of the neovim library.
* replaced `vim_free()` calls with `free()` callsMatthias Beyer2014-05-05
|
* Remove undefined function gui_show_popupmenu + call.Thomas Wienecke2014-05-03
|
* Remove project int types: Case short_u: Replace with uint16_t.Eliseo Martínez2014-05-03
| | | | | | | | | - Replace short_u with uint16_t (same size, should give no problems). - When possible, remove explicit downcasts so that they are found when flag -Wconversion enabled. - Remove short_u typedef. Requested in #459.
* revert #652Justin M. Keyes2014-05-01
| | | | | | | reverting broad cosmetic/style change because: - increases merge-conflicts - increases overhead of merging upstream Vim patches - reasons for change are ambiguous, so default to no change
* Remove NUL macroMarco Hinz2014-04-29
|
* Use portable format specifiers: Clarify some casted expressions.Eliseo Martínez2014-04-28
| | | | | | | | | 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.
* Use portable format specifiers: Case %ld - plain - sprintf.Eliseo Martínez2014-04-23
| | | | | | Fix uses of plain "%ld" within sprintf(): - Replace "%ld" with "%" PRId64. - Cast corresponding argument to (int64_t).
* Remove modelinesMarco Hinz2014-04-16
| | | | | Removed modelines are better than modelines that differ from file to file.
* vim-patch:7.4.191oni-link2014-04-14
| | | | | | | | Problem: Escaping a file name for shell commands can't be done without a function. Solution: Add the :S file name modifier. https://code.google.com/p/vim/source/detail?r=40f18a1c1592c8b4047f6f2a413557f48a99c55f
* vim-patch 7.4.199Keerthan Jaic2014-04-12
| | | | | | | Problem: ]P doesn't paste over Visual selection. Solution: Handle Visual mode specifically. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=54b1a90c937380195fad6a52408aa3b4eed6d8d1
* vim-patch:7.4.187Hinidu2014-04-10
| | | | | | | Problem: Delete that crosses line break splits multi-byte character. Solution: Advance a character instead of a byte. (Cade Foster) https://code.google.com/p/vim/source/detail?r=a1c07956171a133583df42627d3498f935e59988
* Define special key for asynchronous eventsThiago de Arruda2014-04-08
| | | | | | | | | | | | | | | | | | | | | | K_EVENT/KE_EVENT are used to signal any loop that reads user input(scattered across normal.c edit.c , ex_getln.c and message.c) of asynchronous events that were not initiated by the user. Representing non-user asynchronous events as special keys has the following advantages: - We reuse the normal vim redrawing code. As far as the rest of the code in edit.c/normal.c is concerned, it's just the user pressing another key. - Assume less about vim tolerance for "out-of-band" modifications to its internal state. - We still have a very complex codebase and it's hard to predict what bugs may be introduced by these changes. With this we implement asynchronicity in a way that will be more "natural" to the editor and has less chance of causing unpredictable behavior. As the code is refactored, we will be able to treat user input as an 'event type' and not the other way around(With this we are treating arbitrary events as a special case of user input).
* Remove simpler cases of OOM error handling (after *alloc calls)Felipe Oliveira Carvalho2014-04-06
| | | | | | | | | | | | | | | | | | By simpler cases I mean cases where the OOM error is not expected to be handled by the caller of the function that calls `alloc`, `lalloc`, `xrealloc`, `xmalloc`, `alloc_clear`, and `lalloc_clear`. These are the functions that: - Do not return an allocated buffer - Have OOM as the only error condition I took note of the functions that expect the caller to handle the OOM error and will go through them to check all the callers that may be handling OOM error in future commits. I'm ignoring eval.c and ex_.c in this series of commits. eval.c will soon be obsolete and I will deal with ex_.c in later PRs.
* vim-patch:7.4.171oni-link2014-04-05
| | | | | | | | Problem: Redo does not set v:count and v:count1. Solution: Use a separate buffer for redo, so that we can set the counts when performing redo. https://code.google.com/p/vim/source/detail?r=beb037a6c2708f539d50840637f70eed0811d93c
* Extract memory.c from misc2.cJohn Schmidt2014-04-04
|
* Move signal handling to libuv event loopThiago de Arruda2014-04-01
| | | | | | | | | | | | | | | | | This removes all signal handling code from os_unix.c to os/signal.c. Now signal handling is done like this: - Watchers for signals are registered with libuv default event loop - `event_poll` continuously calls `poll_uv_loop` to produce events until it receives user input, SIGINT or a timeout - Any signals received in `poll_uv_loop` will push events to a queue that is drained and processed by `event_poll` Signals aren't handled directly in the libuv callback to avoid recursion in the event loop(which isn't supported by libuv). The same principle will apply to other events in the future: Push to a queue from a libuv callback and drain it from `event_poll`
* Remove feature HAVE_QSORToni-link2014-03-31
| | | | qsort conforms to C99, so we don't need our own version.
* xrealloc(): similar to xmalloc()Felipe Oliveira Carvalho2014-03-31
| | | | | Replaced all calls to realloc by xrealloc. All `== NULL` tests can be removed and the code within `!= NULL` tests can be unwrapped.
* Use realloc instead of vim_reallocFelipe Oliveira Carvalho2014-03-26
|
* Remove MEM_PROFILE related codeFelipe Oliveira Carvalho2014-03-26
| | | | | | | | | Code around `#ifdef MEM_PROFILE` was used to profile vim's memory comsumption. It's very likely broken as new code is using malloc() and free() directly. In this day and age, valgrind can solve in a much reliable way what this code was trying to do.
* Use memmove instead of mch_memmoveFelipe Oliveira Carvalho2014-03-26
|
* Use memset instead of vim_memsetFelipe Oliveira Carvalho2014-03-25
| | | | | | | | | Ran some commands on terminal, reviewed changes, and made some manual changes too. find src | xargs perl -i -p -e "s/vim_memset/memset/g" git grep -l memset | egrep "\.c$" | xargs perl -i -p -e \ 's/(#include "vim\.h")/#include <string.h>\n\n\1/g'
* Do not include farsi.c in main.cFelipe Oliveira Carvalho2014-03-25
| | | | | | | | | - Change CMakeLists.txt to compile farsi.c normally - Add const to global variables in farsi.h and define them in farsi.c (no need to include farsi.h with DO_INIT defined in globals.h) - Include farsi.h where necessary - Include all necessary headers in farsi.c - Move farsi function declarations from main.h to farsi.h
* adapt to the style guildelinesPetter Wahlman2014-03-19
| | | | | semi-automated harvest of low hanging fruit: change the unorthodox use of whitespace.
* Moved more functions from misc1.c to indent.cJohn2014-03-15
|
* Extract indent_c.c from misc1.cJohn2014-03-14
|
* Remove CURSOR_SHAPE #ifdef testsFelipe Oliveira Carvalho2014-03-10
| | | | See issue #333
* Extract keymap.c from misc2.cFelipe Oliveira Carvalho2014-03-06
|
* Remove __ARGS macro. Close #205Nicolas Pierron2014-03-02
| | | | | | | | | This is a squash of all commits sent to #81. - Remove unused undef of __ARGS. - Fix mch_rename declaration. - Follow changes related to moved & extracted files. - Properly indent function declarations of getchar.h and quickfix.c.
* Removes 'proto' dirscott-linder2014-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See #137 for the issue. Every header in the proto directory was: * Given include guards in the form #ifndef NEOVIM_FILENAME_H #define NEOVIM_FILENAME_H ... #endif /* NEOVIM_FILENAM_H */ * Renamed from *.pro -> *.h * Moved from src/proto/ to src/ This would have caused conficts with some existing headers in src/; rather than merge these conflicts now (which is a whole other can of worms involving multiple and conditional inclusion), any header in src/ with a conflicting name was renamed from *.h -> *_defs.h (which may or may not actually describe its purpose, the change is purely a namespacing issue). Once all of these changes were made a script was developed to determine what #includes needed to be added to each source file to describe its dependencies and allow it to compile; because the script is so short and I'll just list it here: #! /bin/bash cd $(dirname $0) # Scrapes `make` output for provided error messages and outputs #includes # needed to resolve them. # $1 : part of the clang error message between filename and identifier list_missing_includes() { for file_missing_pair in $(CC=clang make 2>&1 >/dev/null | sed -n "s/\/\(.*\.[hc]\).*$1.*'\(.*\)'.*/\1:\2/p"); do fields=(${file_missing_pair//:/ }) source_file=${fields[0]} missing_func=${fields[1]} # Try to find the declaration of the missing function. echo $(basename $source_file) \ \#include \"$(grep -r "\b$missing_func __ARGS" | sed -n "s/.*\/\(.*\)\:.*/\1/p")\" # Remove duplicates done | sort | uniq } echo "Finding missing function prototypes..." list_missing_includes "implicit declaration of function" echo "Finding missing identifier declarations..." list_missing_includes "use of undeclared identifier" Each list of required headers was added by hand in the following format: #include "vim.h" #include "*_defs.h" #include "filename.h" /* All other includes in same module here, in alphabetical order. */ /* All includes from other modules (e.g. "os/*.h") here in alphabetical * order. */
* Convert function declarations from K&R to ANSI style.scott-linder2014-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | cproto (http://invisible-island.net/cproto/) was used to do the bulk of the work in batch; even the most recent version had some issues with typedef'd parameters; a quick "patch" was to modify `lex.l` to explicitly include all vim typedefs as known types. One example from `vim.h` is typedef unsigned char char_u; which was added in `lex.l` as <INITIAL>char_u { save_text_offset(); return T_CHAR; } Even with these changes there were some problems: * Two files (`mbyte.c` and `os_unix.c`) were not cleanly converted. * Any function with the `UNUSED` macro in its parameter list was not converted. Rather than spend more time fixing the automated approach, the two files `mbyte.c` and `os_unix.c` were converted by hand. The `UNUSED` macros were compiler specific, and the alternative, generic version would require a different syntax, so in order to simplify the conversion all uses of `UNUSED` were stripped, and then the sources were run back through cproto. It is planned to reconsider each use of `UNUSED` manually using a new macro definition.
* Import vim from changeset v5628:c9cad40b4181Thiago de Arruda2014-01-31
- Cleanup source tree, leaving only files necessary for compilation/testing - Process files through unifdef to remove tons of FEAT_* macros - Process files through uncrustify to normalize source code formatting. - Port the build system to cmake