#ifndef MUTT_LIB_LUA_LUA_TOKEN_H
#define MUTT_LIB_LUA_LUA_TOKEN_H
-enum lua_token {
+typedef enum mlua_token {
LTK_UNKNOWN = -1,
-`tr 'a-z-/' 'A-Z__' | sed -e 's/.*/ LTK_&,/'`
+`grep_self "$0" | tr 'a-z-/' 'A-Z__' | sed -e 's/.*/ LTK_&,/'`
LTK_count,
-};
+} mlua_token;
+
+extern const char *__mlua_token[LTK_count];
__attribute__((pure))
-enum lua_token lua_which_token(const char *s, ssize_t len);
+mlua_token mlua_which_token(const char *s, ssize_t len);
#endif /* MUTT_LIB_LUA_LUA_TOKEN_H */
EOF
}
}
do_c() {
- cat <<EOF | gperf -m16 -l -t -C -F",0" -Nlua_which_token_aux
+ cat <<EOF | gperf -m16 -l -t -C -F",0" -Nmlua_which_token_aux
%{
`do_hdr`
#include "lua-token.h"
static const struct tok *
-lua_which_token_aux(const char *str, unsigned int len);
+mlua_which_token_aux(const char *str, unsigned int len);
%}
struct tok { const char *name; int val; };
%%
-`do_tokens`
+`grep_self "$0" | do_tokens`
%%
-enum lua_token lua_which_token(const char *s, ssize_t len)
+const char *__mlua_token[LTK_count] = {
+`grep_self "$0" | sed -e 's/.*/ "&",/'`
+};
+
+mlua_token mlua_which_token(const char *s, ssize_t len)
{
if (len < 0)
len = m_strlen(s);
if (len) {
- const struct tok *res = lua_which_token_aux(s, len);
+ const struct tok *res = mlua_which_token_aux(s, len);
return res ? res->val : LTK_UNKNOWN;
} else {
return LTK_UNKNOWN;
rm -f $1
case "$1" in
- *.h) grep_self "$0" | do_h > $1;;
- *.c) grep_self "$0" | do_c > $1;;
+ *.h) do_h > $1;;
+ *.c) do_c > $1;;
*) die "you must ask for the 'h' or 'c' generation";;
esac
chmod -w $1
exit 0
############ Put tokens here ############
+## alias_file
+## alias_format
+## ask-no
+## ask-yes
+## assumed_charset
+## autoencrypt
+## autopgp
+## autosign
+## autosmime
+## beep
+## beep_new
+## bindir
+## ca_certificates_file
+## cert_file
+## charset
+## docdir
## dotlock
+## dsn_notify
+## dsn_return
## editor
+## envelope_from_address
+## file_charset
+## force_tls
+## from
+## gecos_mask
+## hcache_backend
+## homedir
+## hostname
+## mailcap_path
+## mailcap_sanitize
+## mail_check
+## min_dh_prime_bits
+## no
+## operating_system
## quit
+## record
+## replyencrypt
+## replysign
+## replysignencrypted
+## send_charset
## sendmail
+## sendmail_wait
## shell
+## shorthost
+## signature
+## spam_separator
+## starttls
+## sysconfdir
## tmpdir
+## use_8bitmime
+## use_domain
+## use_envelope_from
+## username
+## use_sslv3
+## use_tlsv1
+## verify_sig
+## version
+## yes