projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Removed extra free
[pspp-builds.git]
/
src
/
repeat.c
diff --git
a/src/repeat.c
b/src/repeat.c
index 42467096808b98d9a6891584c383b41eb65ce6da..c0510c5d5e26fc94df4dca0514660c369e8efe4d 100644
(file)
--- 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
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., 5
9 Temple Place - Suite 330
, Boston, MA
- 0211
1-1307
, USA. */
+ Foundation, Inc., 5
1 Franklin Street, Fifth Floor
, Boston, MA
+ 0211
0-1301
, USA. */
#include <config.h>
#include "repeat.h"
#include <config.h>
#include "repeat.h"
@@
-27,20
+27,23
@@
#include "command.h"
#include "dictionary.h"
#include "error.h"
#include "command.h"
#include "dictionary.h"
#include "error.h"
-#include "getl
ine
.h"
+#include "getl.h"
#include "lexer.h"
#include "misc.h"
#include "settings.h"
#include "str.h"
#include "var.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. */
struct repeat_entry
{
int type; /* 1=variable names, 0=any other. */
#include "debug-print.h"
/* Describes one DO REPEAT macro. */
struct repeat_entry
{
int type; /* 1=variable names, 0=any other. */
- char id[
SHORT_NAME_LEN + 1];
/* Macro identifier. */
+ char id[
LONG_NAME_LEN + 1];
/* Macro identifier. */
char **replacement; /* Macro replacement. */
struct repeat_entry *next;
};
char **replacement; /* Macro replacement. */
struct repeat_entry *next;
};
@@
-125,7
+128,7
@@
static int
internal_cmd_do_repeat (void)
{
/* Name of first DO REPEAT macro. */
internal_cmd_do_repeat (void)
{
/* Name of first DO REPEAT macro. */
- char first_name[
SHORT
_NAME_LEN + 1];
+ char first_name[
LONG
_NAME_LEN + 1];
/* Current filename. */
const char *current_filename = NULL;
/* Current filename. */
const char *current_filename = NULL;
@@
-146,7
+149,7
@@
internal_cmd_do_repeat (void)
if (!lex_force_id ())
return 0;
for (iter = repeat_tab; iter; iter = iter->next)
if (!lex_force_id ())
return 0;
for (iter = repeat_tab; iter; iter = iter->next)
- if (!strcmp (iter->id, tokid))
+ if (!strc
asec
mp (iter->id, tokid))
{
msg (SE, _("Identifier %s is given twice."), tokid);
return 0;
{
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)
{
static int
parse_ids (struct repeat_entry * e)
{
-
in
t i;
-
in
t n = 0;
+
size_
t i;
+
size_
t n = 0;
e->type = 1;
e->replacement = NULL;
e->type = 1;
e->replacement = NULL;
@@
-347,13
+350,13
@@
parse_ids (struct repeat_entry * e)
do
{
char **names;
do
{
char **names;
-
in
t nnames;
+
size_
t nnames;
if (!parse_mixed_vars (&names, &nnames, PV_NONE))
return 0;
if (!parse_mixed_vars (&names, &nnames, PV_NONE))
return 0;
- e->replacement = xrealloc (e->replacement,
-
(nnames + n) *
sizeof *e->replacement);
+ e->replacement = x
n
realloc (e->replacement,
+
nnames + n,
sizeof *e->replacement);
for (i = 0; i < nnames; i++)
{
e->replacement[n + i] = xstrdup (names[i]);
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;
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 = x
n
realloc (array,
+
m,
sizeof *e->replacement);
}
if (a == b)
}
if (a == b)
@@
-467,8
+470,8
@@
parse_strings (struct repeat_entry * e)
if (n + 1 > m)
{
m += 16;
if (n + 1 > m)
{
m += 16;
- e->replacement = string = xrealloc (string,
-
m *
sizeof *e->replacement);
+ e->replacement = string = x
n
realloc (string,
+
m,
sizeof *e->replacement);
}
string[n++] = lex_token_representation ();
lex_get ();
}
string[n++] = lex_token_representation ();
lex_get ();
@@
-476,7
+479,7
@@
parse_strings (struct repeat_entry * e)
lex_match (',');
}
while (token != '/' && token != '.');
lex_match (',');
}
while (token != '/' && token != '.');
- e->replacement = x
realloc (string, n *
sizeof *e->replacement);
+ e->replacement = x
nrealloc (string, n,
sizeof *e->replacement);
return n;
}
return n;
}
@@
-553,12
+556,12
@@
perform_DO_REPEAT_substitutions (void)
/* Collect an identifier. */
{
/* Collect an identifier. */
{
- char name[
SHORT
_NAME_LEN + 1];
+ char name[
LONG
_NAME_LEN + 1];
char *start = cp;
char *np = name;
char *substitution;
char *start = cp;
char *np = name;
char *substitution;
- while (CHAR_IS_IDN (*cp) && np < &name[
SHORT
_NAME_LEN])
+ while (CHAR_IS_IDN (*cp) && np < &name[
LONG
_NAME_LEN])
*np++ = *cp++;
while (CHAR_IS_IDN (*cp))
cp++;
*np++ = *cp++;
while (CHAR_IS_IDN (*cp))
cp++;
@@
-576,7
+579,7
@@
perform_DO_REPEAT_substitutions (void)
}
}
if (dot)
}
}
if (dot)
- ds_putc (&output, get_endcmd
()
);
+ ds_putc (&output, get_endcmd
()
);
ds_destroy (&getl_buf);
getl_buf = output;
ds_destroy (&getl_buf);
getl_buf = output;