X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Futilities%2Fhost.c;h=fbc9d208be7a08a1b4c518894f0e317d1413be5b;hb=9ade26c8349b4434008c46cf09bc7473ec743972;hp=f9b10480d2507c95d20dc677767c41c98639565f;hpb=afdf3096926b561f4e6511c10fcf73fc6796b9d2;p=pspp-builds.git diff --git a/src/language/utilities/host.c b/src/language/utilities/host.c index f9b10480..fbc9d208 100644 --- a/src/language/utilities/host.c +++ b/src/language/utilities/host.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2009, 2010, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,9 +30,11 @@ #include "language/lexer/lexer.h" #include "libpspp/assertion.h" #include "libpspp/compiler.h" +#include "libpspp/i18n.h" #include "libpspp/message.h" #include "libpspp/str.h" +#include "gl/localcharset.h" #include "gl/xalloc.h" #include "gl/xmalloca.h" @@ -134,6 +136,7 @@ cmd_host (struct lexer *lexer, struct dataset *ds UNUSED) else if (lex_match_id (lexer, "COMMAND")) { struct string command; + char *locale_command; bool ok; lex_match (lexer, T_EQUALS); @@ -154,10 +157,15 @@ cmd_host (struct lexer *lexer, struct dataset *ds UNUSED) return CMD_FAILURE; } - ok = run_command (ds_cstr (&command)); + locale_command = recode_string (locale_charset (), "UTF-8", + ds_cstr (&command), + ds_length (&command)); ds_destroy (&command); - return ok ? lex_end_of_command (lexer) : CMD_FAILURE; + ok = run_command (locale_command); + free (locale_command); + + return ok ? CMD_SUCCESS : CMD_FAILURE; } else {