Commit Graph

720 Commits

Author SHA1 Message Date
Felipe Oliveira Carvalho
ee62510d4e Macro-based log utility for Neovim
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.
```
2014-05-06 09:22:39 -03:00
Felipe Oliveira Carvalho
c53d3f0071 Use REGEXP_DEBUG to enable log-based regexp debugging
ENABLE_LOG is too broad to be used only to enable logging in regexp_nfa.c. Use
REGEXP_DEBUG instead.

ENABLE_LOG was defined by checking REGEXP_DEBUG in the first place.
2014-05-06 09:22:39 -03:00
Marco Hinz
e42a3cc4e6 vim-patch:7.4.274
Problem:  When doing ":update" just before running an external command that
          changes the file, the timestamp may be unchanged and the file
          is not reloaded.
Solution: Also check the file size.

https://code.google.com/p/vim/source/detail?r=1ee3fc5b40ae94c2a7fc5a62bca38d4f730f9bb2
2014-05-04 12:46:22 -04:00
Eliseo Martínez
ddafdacb00 Use portable format specifiers: Case %lu - localized - EMSGU.
Problem  EMSGN was being used to print a format string using "%lu",
         which is incorrect because EMSGN casts its argument to int64_t.
Solution Use EMGSU instead.
2014-05-04 12:40:27 -04:00
Eliseo Martínez
a9e6098637 Use portable format specifiers: Adapt/fix EMSGU/emsgu to use (uint64_t).
Problem

EMSGU macro was defined as the unsigned counterpart of EMSGN. This is,
invoking emsgu instead of emsgn and having a long_u argument instead of
a long.
But, surprisingly, emsgu was not defined anywhere, which didn't result
in an error because in fact EMSGU was not used (the only point in code
printing a %lu erroneously using EMSGN instead).

Solution

- Define emsgu.
- Adapt EMSGU macro to use uint64_t instead of long_u.
2014-05-04 12:40:27 -04:00
Thomas Wienecke
d84fe0a1b0 Fix unit test cleanup of path_shorten_fname_if_possible. 2014-05-03 14:16:55 -04:00
Thomas Wienecke
71b1f4ef5a Remove unused function vcol2col. 2014-05-03 17:41:42 +02:00
Thomas Wienecke
75d8b24060 Remove unused function cmdline_at_end. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
487a66029c Remove unused function cmdline_overstrike. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
f42c5402bb Remove undefined function clip_yank_selection. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
d10064df28 Remove unused function get_fpos_of_mouse. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
5446fbad88 Remove unused function is_autocmd_blocked. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
bdcb258192 Remove undefined function adjust_clip_reg. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
9f1e486875 Remove unused function free_register. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
49ad606cd8 Remove undefined function server_to_input_buf. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
f7ac54759b Remove unused function unset_global_local_option. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
f752020abb Remove undefined function gui_show_popupmenu + its unused return defines. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
f2501fa655 Remove undefined function gui_show_popupmenu + call. 2014-05-03 17:41:06 +02:00
Thomas Wienecke
225fbc2dd8 Remove unused function yank_cut_buffer0. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
255b2a2741 Remove unused function push_raw_key. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
e74d75986a Remove unused function vim_free_in_input_buf. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
68c12efed0 Remove undefined function suspend_shell. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
3d9a3480dc Remove unused function ui_inchar_undo. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
f58e888ce6 Remove unused function highlight_gui_color_rgb. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
856f39bf0f Remove unused function re_lookbehind. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
e5d1dd9689 Remove unused function get_shape_idx. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
a4af779c8d Remove unused function handle_drop. 2014-05-03 17:41:05 +02:00
Thomas Wienecke
b8ed5dd174 Remove unused function add_long_to_buf. 2014-05-03 17:40:17 +02:00
Thomas Wienecke
3a5f538cad Remove undefined functions. 2014-05-03 17:40:16 +02:00
John Szakmeister
7cb20fd1b0 Generate a lua module to help pass build-related settings.
This allows us to avoid hard-coding paths and using environment
variables to communicate key information to unit tests, which fits
with the overall goal of making sure that folks driving CMake directly
can continue to do out-of-tree builds.
2014-05-03 10:36:54 -04:00
Eliseo Martínez
4fe0a51844 Remove project int types: Case long_i: Replace with plain long.
Replace long_i with plain long.

long_i was just plain long, adding marker __w64, to be used by
Microsoft's compilers only, as an aid when transitioning from 32 bits to
64 bits. Purpose of this marker was, in fact, to make a 32 bit compiler
emit the same warnings that a 64 bit compiler would.

This __w64 marker is nowadays deprecated by said compilers, and use of a
real 64 bit compiler is recommended instead. See
http://msdn.microsoft.com/en-us/library/s04b5w00.aspx for details.

So, there's no reason to maintain this anymore, and thus is removed.

Refactoring long into int64_t is not attempted, as doing that in a bulk
way is too much complicated. That is left to be done later, on a
file-by-file basis, probably intermixed with file-by-file -Wconversion
activation.

Requested in #459.
2014-05-03 10:04:49 -04:00
Eliseo Martínez
ad966753d4 Remove project int types: Case int_u: Replace with uint32_t.
- Replace int_u with uint32_t (same size, should give no problems).
  In fact, only usage found seems to be dead code (some functions in
  ui.h seem not to be used anymore).
- Remove int_u typedef.

Requested in #459.
2014-05-03 10:04:49 -04:00
Eliseo Martínez
cb7fb8c008 Remove project int types: Case short_u: Replace with uint16_t.
- 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.
2014-05-03 10:04:49 -04:00
ZyX
37935130f9 Do not detect macros like VIM_TRUE as boolean values 2014-05-03 08:44:04 -04:00
Marco Hinz
8a729897f4 Improve test_eval.in
The old version required to change the range given to :w for each new
test. Now a new buffer is used instead.
2014-05-02 16:01:31 -03:00
John Schmidt
abecd0f394 Update README: progress section 2014-05-02 15:59:52 -03:00
Felipe Oliveira Carvalho
d1411aebd8 Rename buf_modname to modname as they've become the same 2014-05-02 15:58:33 -03:00
Felipe Oliveira Carvalho
9b56e3a4cc Remove the always-FALSE shortname argument from buf_modname() 2014-05-02 15:58:33 -03:00
Felipe Oliveira Carvalho
89e07185e9 Remove the code related to the shortname option 2014-05-02 15:58:33 -03:00
Felipe Oliveira Carvalho
8500eeed86 Don't retry to make the tempname in write_viminfo() with shortname=1
ref #572
2014-05-02 15:58:33 -03:00
Chris Watkins
cb5acb705a Remove checks for SHORT_FNAME and USE_LONG_FNAME.
They were only defined for MSDOS which is now unsupported.
2014-05-02 15:58:33 -03:00
Pavel Platto
17d97e725a Remove two-iteration loop from check_keyword_id 2014-05-02 15:37:43 -03:00
Pavel Platto
97f02bb609 Remove two-iteration loop from expand_filename 2014-05-02 15:37:43 -03:00
Pavel Platto
1a946ad05f Remove two-iteration loop from ExpandGeneric 2014-05-02 15:37:43 -03:00
John Schmidt
3f6fe2a888 Move concat_strings from path.c 2014-05-02 15:36:13 -03:00
John Schmidt
7a4d24d4cc Extract strings.c from misc2.c 2014-05-02 15:36:13 -03:00
Hinidu
018bb73296 Added missing #define guards in headers 2014-05-01 18:24:58 -04:00
Chris Watkins
67a157c08d Replace 'alloc' with 'xmalloc' in some files.
Files changed: charset.c, buffer.c, diff.c, edit.c,
ex_cmds.c, ex_cmds2.c and ex_docmd.c.

The remaining alloc's in these files require more careful attention to
remove.
2014-05-01 16:59:11 -04:00
Justin M. Keyes
1b5217687a revert #652
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
2014-05-01 14:00:31 -04:00
Joel Teichroeb
3b77a62a77 Remove incorrect trailing backslash
If this backslash is here and USE_VALGRIND is defined, valgrind complains that "else" is not a command.
2014-04-30 19:01:27 -07:00