aboutsummaryrefslogtreecommitdiff
path: root/src/main.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 some mch_stat() with os_get_file_info()Stefan Hoffmann2014-05-09
|
* Merge pull request #644 from philix/logJustin M. Keyes2014-05-06
|\ | | | | Macro-based log utility for Neovim
| * Macro-based log utility for NeovimFelipe Oliveira Carvalho2014-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces 4 macros (for different log levels) that can be used to log messages to $HOME/.nvimlog: - DLOG: log a debug message (e.g. `DLOG("sum(%d, %d): %d", x, y, sum(x, y));`) - ILOG: log some useful information (e.g. `ILOG("Main loop started")`) - WLOG: log a warning (e.g. `WLOG("Command not found: %s", command)`) - ELOG: log an error (e.g. `ELOG("Out of memory. Exiting.")`) All these macros are disabled if `NDEBUG` or `DISABLE_LOG` is defined. This guarantees that a `Release` build won't log anything. `MIN_LOG_LEVEL` can be defined to reduce the verbosity of the log. The log levels are: ``` DEBUG_LOG_LEVEL 0 INFO_LOG_LEVEL 1 WARNING_LOG_LEVEL 2 ERROR_LOG_LEVEL 3 ``` `MIN_LOG_LEVEL` is 0 by default enabling all levels. If `MIN_LOG_LEVEL` is set to 2, for example, only warnings and errors will be logged. That's how the log looks like: ``` DATETIME LOG_LEVEL FUNCTION LINE PID FORMATTED MESSAGE 2014/05/01 23:46:14 [info @ main_loop:582] 44376 - Starting Neovim main loop. 2014/05/01 23:46:31 [info @ main_loop:582] 44400 - Starting Neovim main loop. ```
* | replaced `vim_free()` calls with `free()` callsMatthias Beyer2014-05-05
|/
* 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
|
* Remove code and checks for unsupported systems.Chris Watkins2014-04-28
| | | | | Remove remnants of support for systems including __EMX__, MSDOS, OS2, AMIGA and MORPHOS.
* No OOM error condition in ga_concat_strings(), concat_fnames(), concat_str()Felipe Oliveira Carvalho2014-04-24
| | | | | | - xmallocz() is not static anymore. There are many use cases for this function in the codebase and we should start using it. - Simpler types in ga_concat_strings()
* Removed mch_input_isattyPavel Platto2014-04-20
|
* Removed mch_check_winPavel Platto2014-04-20
|
* Remove modelinesMarco Hinz2014-04-16
| | | | | Removed modelines are better than modelines that differ from file to file.
* vim-patch:7.4.234Marco Hinz2014-04-16
| | | | | | | | Problem: Can't get the command that was used to start Vim. Solution: Add v:progpath. (Viktor Kojouharov) https://code.google.com/p/vim/source/detail?r=d2286df8719d6e99c743e3bf6ac14d1f9debc84d
* Remove OOM error handling code after ga_grow() callsFelipe Oliveira Carvalho2014-04-11
|
* Fix/add more files with to clint-files.txtThiago de Arruda2014-04-08
|
* 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.
* Remove oleJohn Schmidt2014-04-05
|
* Remove mzschemeJohn Schmidt2014-04-05
|
* Extract memory.c from misc2.cJohn Schmidt2014-04-04
|
* Rename FPC_* constants.Thomas Wienecke2014-04-03
|
* Test and refactor gettail -> path_tail.Thomas Wienecke2014-04-03
|
* Refactor fullpathcmp -> path_full_compare.Thomas Wienecke2014-04-03
|
* 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`
* Avoid a seg fault when exiting after OOM errorFelipe Oliveira Carvalho2014-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm debugging OOM behavior using http://www.nongnu.org/failmalloc/ on Linux. gdb environment: ``` set env LD_PRELOAD=libfailmalloc.so set env FAILMALLOC_SPACE=0xF00000 ``` SEGV was happening like this: ``` Starting program: /home/felipe/code/neovim/build/bin/nvim [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Vim: Error: Out of memory. Program received signal SIGSEGV, Segmentation fault. 0x00000000004d3719 in getout (exitval=1) at /home/felipe/code/neovim/src/main.c:836 836 if (*p_viminfo != NUL) (gdb) ``` After the fix it works as expected: ``` (gdb) set environment LD_PRELOAD=libfailmalloc.so (gdb) set environment FAILMALLOC_SPACE=0xF00000 (gdb) r Starting program: /home/felipe/code/neovim/build/bin/nvim [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Vim: Error: Out of memory. Vim: Finished. [Inferior 1 (process 21505) exited with code 01] (gdb) ```
* Extract path.c from misc1.cJohn Schmidt2014-03-29
|
* Rename mch_* functions to os_* in os module.Thomas Wienecke2014-03-27
|
* 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 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
* Move arabic.h #defines from arabic.h to arabic.cFelipe Oliveira Carvalho2014-03-24
| | | | | | | | | - Move arabic_shape() decl from main.h to arabic.h - Move arabic_combine() and arabic_maycombine() from mbyte.c to arabic.c as these functions use the #defines I moved. - Remove the unnecessary include of arabic.h in globals.h - Remove include of arabic.c (sic) in main.c (change CMakeLists.txt to compile arabic.c normally)
* adapt to the style guildelinesPetter Wahlman2014-03-19
| | | | | semi-automated harvest of low hanging fruit: change the unorthodox use of whitespace.
* cleanup environment variable handling + unit testsStefan Hoffmann2014-03-06
| | | | | | | | * removed a putenv() implementation which isn't needed anymore * mch_getenv() and mch_setenv() are now functions in src/os/env.c * removes direct calls to getenv() and setenv() outside of src/os/env.c * refactored the logic of get_env_name into mch_getenvname_at_index * added unittests for the functions in os/env.c
* Extract crypt.c from misc2.cFelipe Oliveira Carvalho2014-03-06
|
* Port mch_isdir to libuv.Thomas Wienecke2014-03-05
|
* 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.
* Clean-up main.c: follow STRNICMP replacement.Nicolas Pierron2014-03-01
|
* Extract garray.c from misc2.cFelipe Oliveira Carvalho2014-02-28
| | | | Start to split misc2.c in many other files (see #209).
* Temporarily remove valgrind check in travis buildThiago de Arruda2014-02-26
|
* Add configuration to help debug memory leaksThiago de Arruda2014-02-26
|
* Remove final build warningScott Nielsen2014-02-26
| | | | | | | | | This commit removes a K&R promoted parameter error, the final warning I have when building. I realize that this creates only one function that is written in a different style, but I thought it might be worth it to have a warning free build.
* 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.
* Clean up main.c:parse_command_nameMitchell Rosen2014-02-22
|
* Cleanup refactoring in mainMitchell Rosen2014-02-22
|
* Wrap calls to 'get_mess_env' into LIBINTL #ifdefsThiago de Arruda2014-02-01
|
* Remove more #ifdef dead codeThiago de Arruda2014-02-01
|
* 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