Commit Graph

145 Commits

Author SHA1 Message Date
Florian Walch
8130eb1191 jemalloc: Force use of prefixed functions.
* Set JEMALLOC_NO_DEMANGLE to be able to use `je_*` functions,
  regardless of how jemalloc was compiled (--with-jemalloc-prefix)
* Show jemalloc information in Neovim's version output.

Resolve #2449.
2015-04-29 22:26:55 +03:00
Rui Abreu Ferreira
71487a935e Implement os_unsetenv()
- In UNIX systems where unsetenv() is available, it is used. Otherwise
  the variables are set with the empty string.
- New check HAVE_UNSETENV for unsetenv()
- Added unit test to env_spec.lua
2015-04-14 15:20:50 -04:00
Thiago de Arruda
8a1a9b9558 deps: Add jemalloc as an optional dependency
Jemalloc will be used if the cmake option `USE_JEMALLOC` is enabled(which is the
default). To avoid trouble with clang's ASAN, it is disabled by default if the
`SANITIZE` option is enabled.

Since jemalloc has thread cache for small objects, it fills the gap created by
removing klib memory pools.

The `xstrdup` funciton(memory.c) had to be reimplemented on top of `xmalloc` to
make it work with a custom allocator.
2015-04-13 08:22:59 -03:00
Mark Bainter
675e363316 Refactor default_vim{,runtime}_dir to use char type. #2375
See: #459
Reviewed-by: Justin M. Keyes <justinkz@gmail.com>
Reviewed-by: Eliseo Martínez <eliseomarmol@gmail.com>
2015-04-12 10:52:51 +02:00
Scott Prager
feca9624b8 CMakeLists: enable USE_FNAME_CASE on Mac 2015-03-31 11:20:24 -03:00
Jonas Dourado
293a7dc134 Remove platform dependent HAVE_OPENDIR #2010 2015-03-17 23:52:50 -04:00
Björn Linse
4f92178a75 config: split out versiondef.h from config.h
This avoids recompiling every c file after comitting.
2015-03-08 21:54:57 -04: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
4d0ef9a6b9 coverity/13745: Argument cannot be negative: RI.
Problem    : Argument cannot be negative @ 1165.
Diagnostic : Real issue.
Rationale  : len can be assigned a negative value @ 1162;
             len is passed as an unsigned argument @ 1165.
Resolution : Refactor variable's types:
             - Use ftello instead of ftell to avoid using long.
             - Assert ftello result is safely convertible to size_t.
             - Introduce variable read_size to avoid using i (int).
2015-02-02 01:21:58 -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
Steven Oliver
f3b06ba6d1 globals.h: Remove unused global variable 2015-01-02 21:10:08 -05:00
Eliseo Martínez
516405b601 Remove long_u: Passing-by: put_time(): Refactor implementation.
put_time() had a complicated implementation, because of having to shift
an 8-byte value in a portable way with old means.
That can be greatly simplified now, using a C99 fixed-size type.
2014-12-24 20:00:05 +01:00
John Szakmeister
5714044617 Merge pull request #1441 from jszakmeister/remove-redundant-define
Remove redundant USE_ICONV define from config.h.in.
2014-11-09 14:51:25 -05:00
Florian Walch
176930fa56 version: Add compilation info. 2014-11-09 18:34:57 +01:00
John Szakmeister
2513c5f648 Remove redundant USE_ICONV define from config.h.in.
This was noticed during a review of #1437.
2014-11-09 08:34:29 -05:00
John Szakmeister
9344a40e74 build: pull iconv detection into its own FindIconv.cmake file
This will provide better control for those who may want to alter which
one gets used.
2014-11-08 16:22:35 -05:00
Nicolas Hillegeer
8c5efd62ac iconv: re-enable
This seems to have been disabled in the transition from vim to neovim,
re-enable it.
2014-11-06 00:18:26 +01:00
Justin M. Keyes
ea357eb320 version: remove "Compilation" and "Linking" messages.
Can't reliably get this information from cmake (#1267), so it's
misleading to show these messages at all. We can always revert this
commit if we find a way later.
2014-10-07 10:23:15 +00:00
Justin M. Keyes
a1901941f8 version: generate "build number" from commit timestamp
- cmake: git_timestamp() returns last commit time formatted as
  `YYYYMMddHHmm`.
- Always include commit hash in :version and --version output.

`nvim --version` sample output:
  NVIM 0.0.0-alpha+201410070245 (compiled Oct  7 2014 05:30:45)
  Commit: f747b2b1ff7bfe7eb00cc2be82d7af87c98f1111
2014-10-07 10:23:15 +00:00
Justin M. Keyes
2c2fee4d1f version: report commit hash as "build number" in long version string 2014-10-07 10:03:14 +00:00
Pavel Platto
94f3d30306 os_fchown: impl and remove HAVE_FCHOWN 2014-08-13 09:13:58 +03:00
Rui Abreu Ferreira
e672922ef3 Change vimdir path from vim to neovim 2014-07-31 08:13:58 -03:00
Nicolas Hillegeer
7b1d46f39d cmake: remove check for gettimeofday
There are no more uses of gettimeofday, so remove the check in CMake.
2014-07-21 19:30:00 +02:00
Rui Abreu Ferreira
99e60f6242 Clean up DEBUG check in config.h.in 2014-07-15 10:43:21 +02:00
Rui Abreu Ferreira
feffc65270 Add cmake platform checks
- Defined CMake checks for all headers in config.h.in
- Removed headers checks that are not used anymore:
  sgtty.h sys/statfs.h libintl.h poll.h
- Added UNIX check
- Add some fatal checks
  + Check for setenv() and fail if it does not exist
    since our os layer just assumes it does
  + lstat is required by os_unix.c
  + sys/wait.h is required in UNIX
- Removed entries for functions that are not being used: getcwd,
  getrlimit, getwd, nanosleep, sigaltstack, getwd, sigstack, fseeko
- Replaced nearly all defines in config.h.in for functions with
  compile time checks
- Add check for symbol FD_CLOEXEC
- Add check for langinfo CODESET
- HAVE_ICONV_H and HAVE_ICONV hold the expected checks but Neovim uses
  USE_ICONV define to actually decide whether to enable it
- Removed checks that are no longer needed
  + USEMEMMOVE
  + _FILE_OFFSET_BITS
  + HAVE_ST_BLKSIZE
  + dlfcn.h
2014-07-15 10:43:21 +02:00
Pavel Platto
f9710fba52 Remove HAVE_MKDTEMP
For now we provide simple `mkdtemp` for Windows, in the future we will
use libuv for that.
2014-07-14 21:14:39 +02:00
Rui Abreu Ferreira
11653ce2d7 Remove include for sys/select.h in vim.h #890
- There is no need to include sys/select.h anymore
- Removed HAVE_SYS_SELECT_H from config.h.in
2014-07-01 18:21:02 -04:00
Pavel Platto
6fc2839795 Remove unused FEAT_* 2014-05-28 13:08:55 -04:00
Hinidu
76066e56fc Remove FEAT_TITLE
'title' and 'icon' options
2014-05-28 13:08:55 -04:00
Hinidu
1299d08be7 Remove FEAT_GETTEXT
Support for message translations using gettext()
2014-05-28 13:08:55 -04:00
Hinidu
3e93fedfe9 Remove FEAT_POSTSCRIPT
Printing using PostScript file output
2014-05-28 13:08:55 -04:00
Hinidu
b4ca3abc9f Remove FEAT_FLOAT
Support for floating point variables
2014-05-28 13:08:55 -04:00
Hinidu
ef5d9ccefe Remove FEAT_STL_OPT
'statusline', 'rulerformat' and special format of 'titlestring' and
'iconstring' options
2014-05-28 13:08:54 -04:00
Hinidu
bf87a83058 Remove FEAT_SESSION
Support for :mksession command
2014-05-28 13:08:54 -04:00
Hinidu
9db774df44 Remove FEAT_SEARCHPATH
Support for gf(edit the file whose name is under or after the cursor)
and <cfile>(is replaced with the path name under the cursor).
2014-05-28 13:08:54 -04:00
Hinidu
75f152d09b Remove FEAT_MENU
Support for :menu command. It can be used in terminal Vim too.
2014-05-28 13:08:54 -04:00
Hinidu
50429aee6e Remove FEAT_LISTCMDS
Vim commands for the buffer list and the argument list: ":buffer",
":bnext", ":bdel", ":argdelete", etc.
2014-05-28 13:08:54 -04:00
Hinidu
0b4d990adf Remove FEAT_EX_EXTRA
Vim's extra Ex commands: :center, :left, :normal, :retab and :right
2014-05-28 13:08:54 -04:00
Hinidu
a29b94e2f9 Remove FEAT_EVAL
Support for VimScript, :let, :if, etc.
2014-05-28 13:08:54 -04:00
Hinidu
5f2ccb94d2 Remove FEAT_CURSORBIND
Synchronization of cursor in split windows for diff mode
2014-05-28 13:08:54 -04:00
Hinidu
f65028e5a0 Remove FEAT_CON_DIALOG
Support for :confirm with console dialog.
2014-05-28 13:08:54 -04:00
Hinidu
cfea68db8e Remove FEAT_COMPL_FUNC
Insert mode completion with 'completefunc'
2014-05-28 13:08:54 -04:00
Hinidu
8fb4c551f4 Remove FEAT_COMMENTS
Special comments formatting, see 'comments' option.
2014-05-28 13:08:54 -04:00
Hinidu
ffc2ea372f Remove FEAT_CMDWIN
Command-line window which opens by q:, q/, q?
2014-05-28 13:08:54 -04:00
Hinidu
9d6c5de4f1 Remove FEAT_CMDL_INFO
'showcmd' and 'ruler' options
2014-05-28 13:08:54 -04:00
Hinidu
7c188b5498 Remove FEAT_CMDL_COMPL
Completion of mappings/abbreviations in command line mode
2014-05-28 13:08:54 -04:00
Hinidu
ceb069116f Remove FEAT_BYTEOFF
Support for byte2line(), line2byte(), go and :goto.
2014-05-28 13:08:54 -04:00
Hinidu
99fec73d1f Remove FEAT_CINDENT
C code indenting
2014-05-28 13:08:54 -04:00
Hinidu
df4127919a Remove FEAT_AUTOCMD
Support for :autocmd command
2014-05-28 13:08:54 -04:00
Hinidu
ac116088af Remove FEAT_QUICKFIX 2014-05-28 13:08:54 -04:00
Hinidu
4e0fc575d7 Remove FEAT_MBYTE
Multi-byte character handling.
2014-05-28 13:08:54 -04:00
Hinidu
6f38fe39c4 Remove FEAT_DIFF
Support for vim's diff mode.
2014-05-28 13:08:54 -04:00
Hinidu
dd7657c160 Removed FEAT_WINDOWS
Support for multiple windows and status line.
2014-05-28 13:08:53 -04:00
John Schmidt
85338fe1d5 Remove cryptography
As discussed in #694, vim encryption uses old,
obsolete algorithms that are poorly implemented.
Since insecure cryptography is worse than no
cryptgraphy, the community voted in favor of
removing all crypto.

Various alternatives to the old crypto is
being discussed in #701.

Closes #694.
2014-05-20 08:31:06 -03:00
Eliseo Martínez
a6734844ca Introduce nvim namespace: Fix build process.
- Leave src as include dir (for includes to recognize 'nvim/' prefix).
- Change subdirectory from src to src/nvim.
- Fix msgpack generation.
- Fix some other paths to new locations.
2014-05-15 20:46:01 +02:00
Thiago de Arruda
f0f4ab5500 Use platform check for correct selection of khash type in helpers.c 2014-05-13 14:11:32 -03:00
John Szakmeister
14e4e678b9 Allow USERNAME to be specified on the command line.
There are some systems that have usernames of the form DOMAIN\username,
which causes an invalid escape character to be inserted.  I was going to
add some escaping, but decided it would be best to just outright set the
value, since I don't want the DOMAIN portion in there anyways.
2014-04-21 17:29:40 -04:00
John Szakmeister
a3ec68ce1e Use check_symbol_exists() instead of check_function_exists().
This is mostly a revert of 477031c03b.
Now that we are not setting `CMAKE_C_FLAGS`, the check can work
correctly and it helps `pcc` (portable c compiler) make it further
along--though it still doesn't produce usable results (see #427 for the
details).
2014-04-03 04:32:27 -04:00
oni-link
c30c9b275c remove HAVE_FCHDIR 2014-04-02 18:52:16 -03:00
oni-link
e9afd1cc28 remove HAVE_DL{OPEN, SYM} 2014-04-02 18:52:16 -03:00
oni-link
59f5c2251a remove HAVE_WCTYPE_H 2014-04-02 18:52:16 -03:00
oni-link
9d2975efad remove HAVE_WCHAR_H 2014-04-02 18:52:16 -03:00
oni-link
77433de0ca remove HAVE_USLEEP 2014-04-02 18:52:16 -03:00
oni-link
930be11334 remove HAVE_SYS_{POLL_H, RESOURCE_H, SYSCTL_H, TYPES_H} 2014-04-02 18:52:16 -03:00
oni-link
f2ce38481b remove HAVE_SYSINFO and HAVE_SYSINFO_MEM_UNIT 2014-04-02 18:52:16 -03:00
oni-link
8780e3ad11 remove HAVE_SVR4_PTYS 2014-04-02 18:52:16 -03:00
oni-link
87a317e076 remove HAVE_STRTOL
strtol is a C99 standard function.
2014-04-02 18:52:16 -03:00
oni-link
38ff389496 remove HAVE_STRPBRK
strpbrk is a C99 standard function.
2014-04-02 18:52:16 -03:00
oni-link
ec51b04a89 remove HAVE_STRING_H 2014-04-02 18:52:16 -03:00
oni-link
6c902e2104 remove HAVE_STRFTIME
strftime is a C99 standard function.
2014-04-02 18:52:16 -03:00
oni-link
5aa1128e97 remove HAVE_STRERROR
strerror is a C99 standard function.
2014-04-02 18:52:16 -03:00
oni-link
e38266a3dd remove HAVE_STDLIB_H 2014-04-02 18:52:16 -03:00
oni-link
ed9a68eea9 remove HAVE_SIGCONTEXT 2014-04-02 18:52:16 -03:00
oni-link
a96f2949cc remove HAVE_RENAME
rename is a C99 standard function.
2014-04-02 18:52:16 -03:00
oni-link
3da084d612 remove HAVE_FLOAT_FUNCS 2014-04-02 18:52:16 -03:00
oni-link
8bae684045 remove HAVE_DATE_TIME
__DATE__ and __TIME__ are C99 standard predefined macros.
2014-04-02 18:52:16 -03:00
Julian Orth
55d95c1cd0 remove HAVE_{ISWUPPER,ISWLOWER,TOWUPPER,TOWLOWER} 2014-03-31 21:24:59 -03:00
Julian Orth
079c47ed7b remove HAVE_STDARG_H 2014-03-31 21:24:59 -03:00
Julian Orth
30160c1561 remove HAVE_STDINT 2014-03-31 21:24:59 -03:00
Julian Orth
2bc68462b2 remove HAVE_INTTYPES 2014-03-31 21:24:59 -03:00
Julian Orth
22a1a26cad remove HAVE_MATH_H 2014-03-31 21:24:59 -03:00
oni-link
b1ea283c59 remove HAVE_MEMSET 2014-03-31 21:24:59 -03:00
oni-link
854cde93ed remove HAVE_MEMCMP 2014-03-31 21:24:59 -03:00
Julian Orth
a5cd3693f0 remove HAVE_BCMP 2014-03-31 21:24:59 -03:00
Julian Orth
0bbbc24571 remove HAVE_ERRNO 2014-03-31 21:24:59 -03:00
Julian Orth
60a7ad8a47 remove HAVE_SETJMP_H 2014-03-31 21:24:59 -03:00
oni-link
f9b5ca8b85 Remove feature HAVE_QSORT
qsort conforms to C99, so we don't need our own version.
2014-03-31 21:24:59 -03:00
John Szakmeister
477031c03b Use check_function_exists() to check for _NSGetEnviron().
This avoids a compiler generated warning which result in failing to find
the function with -Werror active.  You could argue this is a bug in
CMake: http://public.kitware.com/Bug/view.php?id=13208
2014-03-07 06:27:41 -05:00
John Szakmeister
d2e567a835 Use _NSGetEnviron on Mac OS X to gain access to environ.
When building nvim as a shared library for testing, environ is not
exposed.  In order to gain access to the environment variables, you must
get a pointer to them from _NSGetEnviron().

It appears that this may affect the FreeBSD platform too.
2014-02-28 08:15:27 -03:00
Alexis Hildebrandt
05b9e11584 CMakeLists: Improve handling of libintl
by refactoring it into a separate CMake module
2014-02-27 19:11:48 +00:00
John Szakmeister
95db76e280 Improve libintl detection and linking.
This makes it so that a self-installed libintl is now detected and used.
It also attempts to locate a homebrew version of the library, if that
exists.
2014-02-27 19:11:48 +00:00
Alexis Hildebrandt
e728ce95ef Use GNU gettext from homebrew on Mac if available 2014-02-27 19:11:48 +00:00
scott-linder
b76c358f3d Convert function declarations from K&R to ANSI style.
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.
2014-02-24 09:48:18 -05:00
aph
2d00ead2e5 Fix build on OSX/Archlinux and add README
- remove SELinux dependency for now
- OSX: find libintl.h
- OSX: fix compile errors
- OSX: use hack around gettext nonsense
- fix gettext on ubuntu
- work around Arch's lack of -ltermcap
- add README.md
2014-02-01 10:34:04 -03:00
Thiago de Arruda
72cf89bce8 Import vim from changeset v5628:c9cad40b4181
- 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
2014-01-31 10:39:15 -03:00