Commit Graph

25804 Commits

Author SHA1 Message Date
scott-linder
0ef90c13b7 Removes 'proto' dir
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. */
2014-02-26 04:17:27 -03:00
Thomas Wienecke
82e0636e78 Delete local function strerror and USE_GETCWD define.
Both are useless after porting mch_dirname to libuv.
2014-02-25 21:24:52 -03:00
Thomas Wienecke
8437a4c972 os_unix: Port mch_FullName and mch_isFullName to libuv.
Basically just delete conditional use of fchdir, since the other called
mch_* functions are already ported to libuv.
2014-02-25 18:59:22 -03:00
jbranchaud
b7d5edd5aa Rebased the following three commits onto one another:
1. Following GitHub convention by adding a CONTRIBUTING.md file.

2. Linking to the wiki page for communicating.

3. Referencing the waffle.io page for Neovim.
2014-02-25 15:59:57 -03:00
Thiago de Arruda
60280ffa10 Modify travis script to remove testing noise 2014-02-25 15:24:29 -03:00
Thomas Wienecke
1e2da25d3d os_unix: Use libuv uv_cwd instead of getcwd/getwd. 2014-02-25 14:26:21 -03:00
Rich Wareham
d342257ae4 add installation as a travis test
Not only should we pass the test suite but we should also install
successfully.
2014-02-25 13:20:14 -03:00
Rich Wareham
0a15feee9d Makefile: allow configuration of CMake flags
Although CMAKE_FLAGS was already a Makefile variable, it didn't have an
empty default value meaning that extending the flags to CMake in a clean
way was difficult. Add a CMAKE_EXTRA_FLAGS variable which is appended to
the default flags.
2014-02-25 13:20:14 -03:00
Rich Wareham
cf3322f8c2 Makefile: add install target
This simply calls the install target in the build directory. IMHO I
think it's looking a bit hacky having a separate Makefile target to do
this rather than using the usual CMake workflow but mine is not to
reason why... [Also, I've copied ``cd build && make ...`` although I'm
sure ``$MAKE -C build/ ...`` is probably the Right Thing (TM).]

Note that you'll have to set CMAKE_INSTALL_PREFIX on the cmake command
line to change where this installs to.
2014-02-25 13:20:14 -03:00
Rich Wareham
4961654a2a CMakeLists: add install target for nvim 2014-02-25 13:20:14 -03:00
HungMingWu
ab94b36f3d add required dependency on Debian/Ubuntu system 2014-02-25 23:24:59 +08:00
Thiago de Arruda
de7d5cec8e Add local.mk include in makefile
This can be used by devs that need their own custom targets
2014-02-25 11:55:36 -03:00
Jim Hester
ba6273bb51 Arch linux link in TOC had the wrong indentation 2014-02-25 11:35:33 -03:00
ash-lshift
fffb8991fd silence tar when getting libuv 2014-02-25 09:11:16 +00:00
Theo Belaire
98f4c55e45 Silenced wget's progress bar
This way it won't show up in travis-ci like:

    0% [                                       ] 0           --.-K/s
    100%[======================================>] 371,453     --.-K/s
2014-02-25 09:06:15 +00:00
Theo Belaire
e7b0aa224a Added curl support and one test
Now it checks for the existance of curl after
failing to find wget.

Note that I ended up removing the quotes around $url
when referencing it in the call to wget, since urls can't have spaces
anyways, and the correct quoting was messy.

To test, I did

    rm -r .deps
    make clean
    make cmake
    make

And it worked.
2014-02-25 09:06:15 +00:00
Thiago de Arruda
d5f74cf8bb Add missing include guard to os module 2014-02-24 22:41:39 -03:00
Thiago de Arruda
c067e5580b Create new OS module
This module will contain all functions that perform OS calls such as IO,
filesystem access, etc.
2014-02-24 22:17:46 -03:00
Rich Wareham
0f438e42a8 move libuv functions to os.c and io.c module
Despite being an io library, the functions currently implemented with
libuv include some non-I/O tasks like getting the total amount of
memory.
2014-02-24 22:00:03 -03:00
Rich Wareham
65e7610655 os_unix: use libuv total memory function 2014-02-24 22:00:03 -03:00
Rich Wareham
68d8ab54a1 os_unix: switch to libuv chdir() function 2014-02-24 22:00:03 -03:00
Rich Wareham
b58f079d8a os_unix: add #include for libuv 2014-02-24 22:00:03 -03:00
Diego Viola
f608d2361c README.md: cosmetic fixes 2014-02-24 21:56:24 +00:00
scott-linder
9db0fc3582 Changed name of binary (vim -> nvim).
Also updated affected config files and test49.vim
2014-02-24 18:48:51 -03:00
Thiago de Arruda
d29ab233a6 Add link to mailing list 2014-02-24 18:24:30 -03:00
Ashley Hewson
a8cda69a73 Merge pull request #85 from jszakmeister/remove-bashisms
scripts/common.sh: remove a couple bashisms
2014-02-24 21:23:09 +00:00
Ashley Hewson
eedb6a3ad7 Merge pull request #79 from jdiez17/has_neovim
Added 'neovim' to the feature list, following discussion on #44
2014-02-24 21:17:36 +00:00
Jim Hester
0ad500de58 Fix space in link 2014-02-24 14:40:00 -05:00
Jim Hester
3ab95bcc86 Add table of contents to README.md
I added a table of contents to the readme and replaced the html links with markdown links.  Thought you might find it useful!
2014-02-24 16:25:10 -03:00
Rich Wareham
fd346a95fa use CMake's built in pthread detection
CMake ships with a standard FindThreads module which can be used to a)
test for a threading library and b) confirm that it is pthread. It also
allows the hard-coding of the threading library name to be removed from
``src/CMakeLists.txt``.

Make it an error not to have a pthread library installed and indicate to
CMake that we strongly prefer pthread to any other platform threading
library.
2014-02-24 18:52:12 +00:00
Thiago de Arruda
68847d7825 Merge branch 'master' of github.com:cweagans/neovim into cweagans-master
Conflicts:
	README.md
2014-02-24 15:15:44 -03:00
jdiez17
be3ce617c7 Changed binary output directory from src/ to bin/ 2014-02-24 14:45:07 -03:00
Thiago de Arruda
1df4ec2097 Put waffle and travis badge together 2014-02-24 14:16:21 -03:00
Christian Wellenbrock
79321c62d5 Use neovim versions of ~/.vim and ~/.vimrc 2014-02-24 14:13:11 -03:00
Thiago de Arruda
fd43e7b620 Merge pull request #105 from waffleio/master
waffle.io Badge
2014-02-24 14:35:45 -02:00
waffle.io
7afaf8ce26 add waffle.io badge 2014-02-24 09:34:34 -07: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
nyuszika7h
14cbd618ec Fix previous commit 2014-02-24 15:13:53 +01:00
nyuszika7h
b3467a6619 Fix anchors 2014-02-24 15:13:05 +01:00
Rich Wareham
31cb3e09d4 third-party: add note on role of directory
Add a brief README on the purpose of the third-party directory and some
suggestions for how to manage it. The neovim bigwigs may want to
re-draft the README.
2014-02-24 10:31:37 +00:00
Rich Wareham
aad5f6341e Makefile: refer to renamed compile-libuv.sh
get-libuv.sh was renamed to compile-libuv.sh
2014-02-24 10:09:07 +00:00
Rich Wareham
d047b28ac1 get-libuv.sh: compile bundled libuv
Rename file to reflect new intent of script. Libuv is bundled into the
third-party directory. Modify the script to compile but not fetch libuv.
2014-02-24 10:09:07 +00:00
Rich Wareham
f78d5aa87b Merge commit 'a302c65dc65896776d6cb9e2c89a6ccc77ada530' as 'third-party/libuv' 2014-02-24 10:01:50 +00:00
Rich Wareham
a302c65dc6 Squashed 'third-party/libuv/' content from commit 3c40224
git-subtree-dir: third-party/libuv
git-subtree-split: 3c4022464acd92607f21c6eef69330fb071d0400
2014-02-24 10:01:50 +00:00
Ashley Hewson
1bcbc42330 Merge pull request #98 from davidzchen/doc-ca-bundle
Add documentation on installing root SSL certificates on OS X
2014-02-24 08:22:55 +00:00
David Z. Chen
d0f2cbeceb Issue #97 - Add documentation on installing root SSL certificates on OS X, which is required for retrieving the libuv archive before building. 2014-02-23 18:53:03 -08:00
Cameron Eagans
8614983e4e Updating README file to use Homebrew for local builds 2014-02-23 14:28:31 -07:00
Cameron Eagans
2acddd7cb2 Adding make step 2014-02-23 14:28:07 -07:00
Cameron Eagans
eaa4f2b9ce Adding neovim formula for Homebrew 2014-02-23 14:08:40 -07:00
John Szakmeister
6241a49943 scripts/common.sh: remove a couple bashisms
This allows the scripts to work on systems that don't have /bin/bash as
/bin/sh--such as Debian.
2014-02-23 15:01:41 -05:00