#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <locale.h>
#include <m17n.h>
#include <m17n-misc.h>
}
MPlist *
+eval_get_description (MPlist *arg)
+{
+ MSymbol lang, name;
+ MText *mt;
+ MPlist *plist;
+
+ if (! SYMBOLP (arg))
+ ERROR (error_invalid_arg);
+ lang = mplist_value (arg);
+ arg = mplist_next (arg);
+ if (! SYMBOLP (arg))
+ ERROR (error_invalid_arg);
+ name = mplist_value (arg);
+ mt = minput_get_description (lang, name);
+ if (! mt)
+ ERROR (error_command_fail);
+ plist = mplist ();
+ mplist_add (plist, Mtext, mt);
+ m17n_object_unref (mt);
+ return plist;
+}
+
+
+MPlist *
parse_arg_common (MPlist *arg, MSymbol *lang, MSymbol *name, MSymbol *target)
{
if (TAILP (arg))
{eval_set, "set SYMBOL FORM"},
{eval_open, "open LANG NAME"},
{eval_close, "close SYMBOL"},
+ {eval_get_description, "get-description LANG NAME"},
{eval_get_command, "get-command [LANG NAME [COMMAND]]"},
{eval_config_command, "config-command LANG NAME [COMMAND [(KEY ...) ...]]"},
{eval_get_variable, "get-variable [LANG NAME [VARIABLE]]"},
void
init (void)
{
+ int n;
+
M17N_INIT ();
Merror = msymbol ("error");
Mvalue = msymbol ("value");
Meval_function = msymbol ("eval-function");
- msymbol_put (msymbol ("help"), Meval_function, eval_functions + 0);
- msymbol_put (msymbol ("set"), Meval_function, eval_functions + 1);
- msymbol_put (msymbol ("open"), Meval_function, eval_functions + 2);
- msymbol_put (msymbol ("close"), Meval_function, eval_functions + 3);
- msymbol_put (msymbol ("get-command"), Meval_function, eval_functions + 4);
- msymbol_put (msymbol ("config-command"), Meval_function, eval_functions + 5);
- msymbol_put (msymbol ("get-variable"), Meval_function, eval_functions + 6);
- msymbol_put (msymbol ("config-variable"), Meval_function, eval_functions + 7);
- msymbol_put (msymbol ("save-config"), Meval_function, eval_functions + 8);
+ n = 0;
+ msymbol_put (msymbol ("help"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("set"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("open"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("close"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("get-description"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("get-command"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("config-command"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("get-variable"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("config-variable"), Meval_function, eval_functions + n), n++;
+ msymbol_put (msymbol ("save-config"), Meval_function, eval_functions + n);
error_invalid_format = mplist ();
mplist_add (error_invalid_format, Msymbol, Merror);
{
char line[256];
+ setlocale (LC_ALL, "");
+
init ();
while (printf ("> ") && fgets (line, 256, stdin) != NULL)