X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Frepeat.c;h=c0510c5d5e26fc94df4dca0514660c369e8efe4d;hb=4a73877b4d56caed03d383fb4d38347a9774046f;hp=b95dbc00c62725ff44ffcc5ac0b10c26c0a94d16;hpb=fad826ff86720f76220b05e00dc7dfa46e418859;p=pspp-builds.git diff --git a/src/repeat.c b/src/repeat.c index b95dbc00..c0510c5d 100644 --- a/src/repeat.c +++ b/src/repeat.c @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #include #include "repeat.h" @@ -27,13 +27,16 @@ #include "command.h" #include "dictionary.h" #include "error.h" -#include "getline.h" +#include "getl.h" #include "lexer.h" #include "misc.h" #include "settings.h" #include "str.h" #include "var.h" +#include "gettext.h" +#define _(msgid) gettext (msgid) + #include "debug-print.h" /* Describes one DO REPEAT macro. */ @@ -146,7 +149,7 @@ internal_cmd_do_repeat (void) if (!lex_force_id ()) return 0; for (iter = repeat_tab; iter; iter = iter->next) - if (!strcmp (iter->id, tokid)) + if (!strcasecmp (iter->id, tokid)) { msg (SE, _("Identifier %s is given twice."), tokid); return 0; @@ -338,8 +341,8 @@ internal_cmd_do_repeat (void) static int parse_ids (struct repeat_entry * e) { - int i; - int n = 0; + size_t i; + size_t n = 0; e->type = 1; e->replacement = NULL; @@ -347,13 +350,13 @@ parse_ids (struct repeat_entry * e) do { char **names; - int nnames; + size_t nnames; if (!parse_mixed_vars (&names, &nnames, PV_NONE)) return 0; - e->replacement = xrealloc (e->replacement, - (nnames + n) * sizeof *e->replacement); + e->replacement = xnrealloc (e->replacement, + nnames + n, sizeof *e->replacement); for (i = 0; i < nnames; i++) { e->replacement[n + i] = xstrdup (names[i]); @@ -415,8 +418,8 @@ parse_numbers (struct repeat_entry *e) if (n + (abs (b - a) + 1) > m) { m = n + (abs (b - a) + 1) + 16; - e->replacement = array = xrealloc (array, - m * sizeof *e->replacement); + e->replacement = array = xnrealloc (array, + m, sizeof *e->replacement); } if (a == b) @@ -467,8 +470,8 @@ parse_strings (struct repeat_entry * e) if (n + 1 > m) { m += 16; - e->replacement = string = xrealloc (string, - m * sizeof *e->replacement); + e->replacement = string = xnrealloc (string, + m, sizeof *e->replacement); } string[n++] = lex_token_representation (); lex_get (); @@ -476,7 +479,7 @@ parse_strings (struct repeat_entry * e) lex_match (','); } while (token != '/' && token != '.'); - e->replacement = xrealloc (string, n * sizeof *e->replacement); + e->replacement = xnrealloc (string, n, sizeof *e->replacement); return n; } @@ -576,7 +579,7 @@ perform_DO_REPEAT_substitutions (void) } } if (dot) - ds_putc (&output, get_endcmd() ); + ds_putc (&output, get_endcmd ()); ds_destroy (&getl_buf); getl_buf = output;