api: move verbatim c code out of gendispatch.lua and into c files

Remove max_fname_len check, which caused false successful lookups,
and was an optimization for a very rare case.
This commit is contained in:
Björn Linse
2016-09-27 16:54:08 +02:00
parent 9d4fcec7c6
commit caf85b80ae
5 changed files with 89 additions and 90 deletions

View File

@@ -0,0 +1,45 @@
#include <inttypes.h>
#include <stdbool.h>
#include <stdint.h>
#include <assert.h>
#include <msgpack.h>
#include "nvim/map.h"
#include "nvim/log.h"
#include "nvim/vim.h"
#include "nvim/msgpack_rpc/helpers.h"
#include "nvim/api/private/dispatch.h"
#include "nvim/api/private/helpers.h"
#include "nvim/api/private/defs.h"
#include "nvim/api/buffer.h"
#include "nvim/api/tabpage.h"
#include "nvim/api/ui.h"
#include "nvim/api/vim.h"
#include "nvim/api/window.h"
static Map(String, MsgpackRpcRequestHandler) *methods = NULL;
static void msgpack_rpc_add_method_handler(String method,
MsgpackRpcRequestHandler handler)
{
map_put(String, MsgpackRpcRequestHandler)(methods, method, handler);
}
MsgpackRpcRequestHandler msgpack_rpc_get_handler_for(const char *name,
size_t name_len)
{
String m = { .data = (char *)name, .size = name_len };
MsgpackRpcRequestHandler rv =
map_get(String, MsgpackRpcRequestHandler)(methods, m);
if (!rv.fn) {
rv.fn = msgpack_rpc_handle_missing_method;
}
return rv;
}
#ifdef INCLUDE_GENERATED_DECLARATIONS
#include "api/private/dispatch_wrappers.generated.h"
#endif