Add automatic generation of headers

- The 'stripdecls.py' script replaces declarations in all headers by includes to
  generated headers.
  `ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
  was used for this.
- Add and integrate gendeclarations.lua into the build system to generate the
  required includes.
- Add -Wno-unused-function
- Made a bunch of old-style definitions ANSI

This adds a requirement: all type and structure definitions must be present
before INCLUDE_GENERATED_DECLARATIONS-protected include.

Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
This commit is contained in:
ZyX
2014-05-10 17:24:13 +04:00
committed by Thiago de Arruda
parent 880957ad4e
commit 70929f7e16
154 changed files with 2190 additions and 6184 deletions

View File

@@ -15,23 +15,9 @@
#include "nvim/option.h"
#include "nvim/option_defs.h"
static Object vim_to_object_rec(typval_T *obj, PMap(ptr_t) *lookup);
static bool object_to_vim(Object obj, typval_T *tv, Error *err);
static void set_option_value_for(char *key,
int numval,
char *stringval,
int opt_flags,
int opt_type,
void *from,
Error *err);
static void set_option_value_err(char *key,
int numval,
char *stringval,
int opt_flags,
Error *err);
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "api/private/helpers.c.generated.h"
#endif
/// Start block that may cause vimscript exceptions
void try_start()
@@ -366,6 +352,11 @@ tabpage_T * find_tab(Tabpage tabpage, Error *err)
return rv;
}
/// Copies a C string into a String (binary safe string, characters + length)
///
/// @param str the C string to copy
/// @return the resulting String, if the input string was NULL, then an
/// empty String is returned
String cstr_to_string(const char *str) {
if (str == NULL) {
return (String) STRING_INIT;

View File

@@ -13,32 +13,7 @@
err->set = true; \
} while (0)
void try_start(void);
bool try_end(Error *err);
Object dict_get_value(dict_T *dict, String key, Error *err);
Object dict_set_value(dict_T *dict, String key, Object value, Error *err);
Object get_option_from(void *from, int type, String name, Error *err);
void set_option_to(void *to, int type, String name, Object value, Error *err);
Object vim_to_object(typval_T *obj);
buf_T *find_buffer(Buffer buffer, Error *err);
win_T * find_window(Window window, Error *err);
tabpage_T * find_tab(Tabpage tabpage, Error *err);
/// Copies a C string into a String (binary safe string, characters + length)
///
/// @param str the C string to copy
/// @return the resulting String, if the input string was NULL, then an
/// empty String is returned
String cstr_to_string(const char *str);
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "api/private/helpers.h.generated.h"
#endif
#endif // NVIM_API_PRIVATE_HELPERS_H