Commit 1066dbfb authored by Michael Meskes's avatar Michael Meskes

There is no need to have to identical functions in ecpg thus removing one of them.

parent fdf2dbda
...@@ -188,7 +188,7 @@ output_get_descr(char *desc_name, char *index) ...@@ -188,7 +188,7 @@ output_get_descr(char *desc_name, char *index)
break; break;
} }
fprintf(yyout, "%s,", get_dtype(results->value)); fprintf(yyout, "%s,", get_dtype(results->value));
ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, make_str("0"), NULL, NULL); ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, mm_strdup("0"), NULL, NULL);
} }
drop_assignments(); drop_assignments();
fputs("ECPGd_EODT);\n", yyout); fputs("ECPGd_EODT);\n", yyout);
...@@ -293,7 +293,7 @@ output_set_descr(char *desc_name, char *index) ...@@ -293,7 +293,7 @@ output_set_descr(char *desc_name, char *index)
case ECPGd_length: case ECPGd_length:
case ECPGd_type: case ECPGd_type:
fprintf(yyout, "%s,", get_dtype(results->value)); fprintf(yyout, "%s,", get_dtype(results->value));
ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, make_str("0"), NULL, NULL); ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, mm_strdup("0"), NULL, NULL);
break; break;
default: default:
......
...@@ -41,7 +41,7 @@ ECPG: stmtPrepareStmt block ...@@ -41,7 +41,7 @@ ECPG: stmtPrepareStmt block
if ($1.type == NULL || strlen($1.type) == 0) if ($1.type == NULL || strlen($1.type) == 0)
output_prepare_statement($1.name, $1.stmt); output_prepare_statement($1.name, $1.stmt);
else else
output_statement(cat_str(5, make_str("prepare"), $1.name, $1.type, make_str("as"), $1.stmt), 0, ECPGst_normal); output_statement(cat_str(5, mm_strdup("prepare"), $1.name, $1.type, mm_strdup("as"), $1.stmt), 0, ECPGst_normal);
} }
ECPG: stmtTransactionStmt block ECPG: stmtTransactionStmt block
{ {
...@@ -212,21 +212,21 @@ ECPG: var_valueNumericOnly addon ...@@ -212,21 +212,21 @@ ECPG: var_valueNumericOnly addon
if ($1[0] == '$') if ($1[0] == '$')
{ {
free($1); free($1);
$1 = make_str("$0"); $1 = mm_strdup("$0");
} }
ECPG: fetch_argscursor_name addon ECPG: fetch_argscursor_name addon
add_additional_variables($1, false); add_additional_variables($1, false);
if ($1[0] == ':') if ($1[0] == ':')
{ {
free($1); free($1);
$1 = make_str("$0"); $1 = mm_strdup("$0");
} }
ECPG: fetch_argsfrom_incursor_name addon ECPG: fetch_argsfrom_incursor_name addon
add_additional_variables($2, false); add_additional_variables($2, false);
if ($2[0] == ':') if ($2[0] == ':')
{ {
free($2); free($2);
$2 = make_str("$0"); $2 = mm_strdup("$0");
} }
ECPG: fetch_argsNEXTopt_from_incursor_name addon ECPG: fetch_argsNEXTopt_from_incursor_name addon
ECPG: fetch_argsPRIORopt_from_incursor_name addon ECPG: fetch_argsPRIORopt_from_incursor_name addon
...@@ -237,19 +237,19 @@ ECPG: fetch_argsALLopt_from_incursor_name addon ...@@ -237,19 +237,19 @@ ECPG: fetch_argsALLopt_from_incursor_name addon
if ($3[0] == ':') if ($3[0] == ':')
{ {
free($3); free($3);
$3 = make_str("$0"); $3 = mm_strdup("$0");
} }
ECPG: fetch_argsSignedIconstopt_from_incursor_name addon ECPG: fetch_argsSignedIconstopt_from_incursor_name addon
add_additional_variables($3, false); add_additional_variables($3, false);
if ($3[0] == ':') if ($3[0] == ':')
{ {
free($3); free($3);
$3 = make_str("$0"); $3 = mm_strdup("$0");
} }
if ($1[0] == '$') if ($1[0] == '$')
{ {
free($1); free($1);
$1 = make_str("$0"); $1 = mm_strdup("$0");
} }
ECPG: fetch_argsFORWARDALLopt_from_incursor_name addon ECPG: fetch_argsFORWARDALLopt_from_incursor_name addon
ECPG: fetch_argsBACKWARDALLopt_from_incursor_name addon ECPG: fetch_argsBACKWARDALLopt_from_incursor_name addon
...@@ -257,7 +257,7 @@ ECPG: fetch_argsBACKWARDALLopt_from_incursor_name addon ...@@ -257,7 +257,7 @@ ECPG: fetch_argsBACKWARDALLopt_from_incursor_name addon
if ($4[0] == ':') if ($4[0] == ':')
{ {
free($4); free($4);
$4 = make_str("$0"); $4 = mm_strdup("$0");
} }
ECPG: fetch_argsABSOLUTE_PSignedIconstopt_from_incursor_name addon ECPG: fetch_argsABSOLUTE_PSignedIconstopt_from_incursor_name addon
ECPG: fetch_argsRELATIVE_PSignedIconstopt_from_incursor_name addon ECPG: fetch_argsRELATIVE_PSignedIconstopt_from_incursor_name addon
...@@ -267,12 +267,12 @@ ECPG: fetch_argsBACKWARDSignedIconstopt_from_incursor_name addon ...@@ -267,12 +267,12 @@ ECPG: fetch_argsBACKWARDSignedIconstopt_from_incursor_name addon
if ($4[0] == ':') if ($4[0] == ':')
{ {
free($4); free($4);
$4 = make_str("$0"); $4 = mm_strdup("$0");
} }
if ($2[0] == '$') if ($2[0] == '$')
{ {
free($2); free($2);
$2 = make_str("$0"); $2 = mm_strdup("$0");
} }
ECPG: cursor_namename rule ECPG: cursor_namename rule
| char_civar | char_civar
...@@ -287,7 +287,7 @@ ECPG: PrepareStmtPREPAREprepared_nameprep_type_clauseASPreparableStmt block ...@@ -287,7 +287,7 @@ ECPG: PrepareStmtPREPAREprepared_nameprep_type_clauseASPreparableStmt block
{ {
$$.name = $2; $$.name = $2;
$$.type = $3; $$.type = $3;
$$.stmt = cat_str(3, make_str("\""), $5, make_str("\"")); $$.stmt = cat_str(3, mm_strdup("\""), $5, mm_strdup("\""));
} }
| PREPARE prepared_name FROM execstring | PREPARE prepared_name FROM execstring
{ {
...@@ -300,7 +300,7 @@ ECPG: ExecuteStmtEXECUTEprepared_nameexecute_param_clauseexecute_rest block ...@@ -300,7 +300,7 @@ ECPG: ExecuteStmtEXECUTEprepared_nameexecute_param_clauseexecute_rest block
ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectStmt block ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectStmt block
{ {
struct cursor *ptr, *this; struct cursor *ptr, *this;
char *cursor_marker = $2[0] == ':' ? make_str("$0") : mm_strdup($2); char *cursor_marker = $2[0] == ':' ? mm_strdup("$0") : mm_strdup($2);
char *comment, *c1, *c2; char *comment, *c1, *c2;
int (* strcmp_fn)(const char *, const char *) = ($2[0] == ':' ? strcmp : pg_strcasecmp); int (* strcmp_fn)(const char *, const char *) = ($2[0] == ':' ? strcmp : pg_strcasecmp);
...@@ -322,7 +322,7 @@ ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectSt ...@@ -322,7 +322,7 @@ ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectSt
this->function = (current_function ? mm_strdup(current_function) : NULL); this->function = (current_function ? mm_strdup(current_function) : NULL);
this->connection = connection; this->connection = connection;
this->opened = false; this->opened = false;
this->command = cat_str(7, make_str("declare"), cursor_marker, $3, make_str("cursor"), $5, make_str("for"), $7); this->command = cat_str(7, mm_strdup("declare"), cursor_marker, $3, mm_strdup("cursor"), $5, mm_strdup("for"), $7);
this->argsinsert = argsinsert; this->argsinsert = argsinsert;
this->argsinsert_oos = NULL; this->argsinsert_oos = NULL;
this->argsresult = argsresult; this->argsresult = argsresult;
...@@ -337,31 +337,31 @@ ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectSt ...@@ -337,31 +337,31 @@ ECPG: DeclareCursorStmtDECLAREcursor_namecursor_optionsCURSORopt_holdFORSelectSt
c2[0] = '.'; c2[0] = '.';
c2[1] = '.'; c2[1] = '.';
} }
comment = cat_str(3, make_str("/*"), c1, make_str("*/")); comment = cat_str(3, mm_strdup("/*"), c1, mm_strdup("*/"));
if ((braces_open > 0) && INFORMIX_MODE) /* we're in a function */ if ((braces_open > 0) && INFORMIX_MODE) /* we're in a function */
$$ = cat_str(3, adjust_outofscope_cursor_vars(this), $$ = cat_str(3, adjust_outofscope_cursor_vars(this),
make_str("ECPG_informix_reset_sqlca();"), mm_strdup("ECPG_informix_reset_sqlca();"),
comment); comment);
else else
$$ = cat2_str(adjust_outofscope_cursor_vars(this), comment); $$ = cat2_str(adjust_outofscope_cursor_vars(this), comment);
} }
ECPG: ClosePortalStmtCLOSEcursor_name block ECPG: ClosePortalStmtCLOSEcursor_name block
{ {
char *cursor_marker = $2[0] == ':' ? make_str("$0") : $2; char *cursor_marker = $2[0] == ':' ? mm_strdup("$0") : $2;
$$ = cat2_str(make_str("close"), cursor_marker); $$ = cat2_str(mm_strdup("close"), cursor_marker);
} }
ECPG: opt_hold block ECPG: opt_hold block
{ {
if (compat == ECPG_COMPAT_INFORMIX_SE && autocommit) if (compat == ECPG_COMPAT_INFORMIX_SE && autocommit)
$$ = make_str("with hold"); $$ = mm_strdup("with hold");
else else
$$ = EMPTY; $$ = EMPTY;
} }
ECPG: into_clauseINTOOptTempTableName block ECPG: into_clauseINTOOptTempTableName block
{ {
FoundInto = 1; FoundInto = 1;
$$= cat2_str(make_str("into"), $2); $$= cat2_str(mm_strdup("into"), $2);
} }
| ecpg_into { $$ = EMPTY; } | ecpg_into { $$ = EMPTY; }
ECPG: table_refselect_with_parens addon ECPG: table_refselect_with_parens addon
...@@ -369,16 +369,16 @@ ECPG: table_refselect_with_parens addon ...@@ -369,16 +369,16 @@ ECPG: table_refselect_with_parens addon
ECPG: TypenameSimpleTypenameopt_array_bounds block ECPG: TypenameSimpleTypenameopt_array_bounds block
{ $$ = cat2_str($1, $2.str); } { $$ = cat2_str($1, $2.str); }
ECPG: TypenameSETOFSimpleTypenameopt_array_bounds block ECPG: TypenameSETOFSimpleTypenameopt_array_bounds block
{ $$ = cat_str(3, make_str("setof"), $2, $3.str); } { $$ = cat_str(3, mm_strdup("setof"), $2, $3.str); }
ECPG: opt_array_boundsopt_array_bounds'['']' block ECPG: opt_array_boundsopt_array_bounds'['']' block
{ {
$$.index1 = $1.index1; $$.index1 = $1.index1;
$$.index2 = $1.index2; $$.index2 = $1.index2;
if (strcmp($$.index1, "-1") == 0) if (strcmp($$.index1, "-1") == 0)
$$.index1 = make_str("0"); $$.index1 = mm_strdup("0");
else if (strcmp($1.index2, "-1") == 0) else if (strcmp($1.index2, "-1") == 0)
$$.index2 = make_str("0"); $$.index2 = mm_strdup("0");
$$.str = cat_str(2, $1.str, make_str("[]")); $$.str = cat_str(2, $1.str, mm_strdup("[]"));
} }
| opt_array_bounds '[' Iresult ']' | opt_array_bounds '[' Iresult ']'
{ {
...@@ -388,12 +388,12 @@ ECPG: opt_array_boundsopt_array_bounds'['']' block ...@@ -388,12 +388,12 @@ ECPG: opt_array_boundsopt_array_bounds'['']' block
$$.index1 = strdup($3); $$.index1 = strdup($3);
else if (strcmp($1.index2, "-1") == 0) else if (strcmp($1.index2, "-1") == 0)
$$.index2 = strdup($3); $$.index2 = strdup($3);
$$.str = cat_str(4, $1.str, make_str("["), $3, make_str("]")); $$.str = cat_str(4, $1.str, mm_strdup("["), $3, mm_strdup("]"));
} }
ECPG: opt_array_bounds ECPG: opt_array_bounds
{ {
$$.index1 = make_str("-1"); $$.index1 = mm_strdup("-1");
$$.index2 = make_str("-1"); $$.index2 = mm_strdup("-1");
$$.str= EMPTY; $$.str= EMPTY;
} }
ECPG: IconstICONST block ECPG: IconstICONST block
...@@ -404,8 +404,8 @@ ECPG: AexprConstNULL_P rule ...@@ -404,8 +404,8 @@ ECPG: AexprConstNULL_P rule
ECPG: ColIdcol_name_keyword rule ECPG: ColIdcol_name_keyword rule
| ECPGKeywords { $$ = $1; } | ECPGKeywords { $$ = $1; }
| ECPGCKeywords { $$ = $1; } | ECPGCKeywords { $$ = $1; }
| CHAR_P { $$ = make_str("char"); } | CHAR_P { $$ = mm_strdup("char"); }
| VALUES { $$ = make_str("values"); } | VALUES { $$ = mm_strdup("values"); }
ECPG: type_function_nametype_func_name_keyword rule ECPG: type_function_nametype_func_name_keyword rule
| ECPGKeywords { $$ = $1; } | ECPGKeywords { $$ = $1; }
| ECPGTypeName { $$ = $1; } | ECPGTypeName { $$ = $1; }
...@@ -418,60 +418,60 @@ ECPG: VariableShowStmtSHOWALL block ...@@ -418,60 +418,60 @@ ECPG: VariableShowStmtSHOWALL block
ECPG: FetchStmtMOVEfetch_args rule ECPG: FetchStmtMOVEfetch_args rule
| FETCH fetch_args ecpg_fetch_into | FETCH fetch_args ecpg_fetch_into
{ {
$$ = cat2_str(make_str("fetch"), $2); $$ = cat2_str(mm_strdup("fetch"), $2);
} }
| FETCH FORWARD cursor_name opt_ecpg_fetch_into | FETCH FORWARD cursor_name opt_ecpg_fetch_into
{ {
char *cursor_marker = $3[0] == ':' ? make_str("$0") : $3; char *cursor_marker = $3[0] == ':' ? mm_strdup("$0") : $3;
add_additional_variables($3, false); add_additional_variables($3, false);
$$ = cat_str(2, make_str("fetch forward"), cursor_marker); $$ = cat_str(2, mm_strdup("fetch forward"), cursor_marker);
} }
| FETCH FORWARD from_in cursor_name opt_ecpg_fetch_into | FETCH FORWARD from_in cursor_name opt_ecpg_fetch_into
{ {
char *cursor_marker = $4[0] == ':' ? make_str("$0") : $4; char *cursor_marker = $4[0] == ':' ? mm_strdup("$0") : $4;
add_additional_variables($4, false); add_additional_variables($4, false);
$$ = cat_str(2, make_str("fetch forward from"), cursor_marker); $$ = cat_str(2, mm_strdup("fetch forward from"), cursor_marker);
} }
| FETCH BACKWARD cursor_name opt_ecpg_fetch_into | FETCH BACKWARD cursor_name opt_ecpg_fetch_into
{ {
char *cursor_marker = $3[0] == ':' ? make_str("$0") : $3; char *cursor_marker = $3[0] == ':' ? mm_strdup("$0") : $3;
add_additional_variables($3, false); add_additional_variables($3, false);
$$ = cat_str(2, make_str("fetch backward"), cursor_marker); $$ = cat_str(2, mm_strdup("fetch backward"), cursor_marker);
} }
| FETCH BACKWARD from_in cursor_name opt_ecpg_fetch_into | FETCH BACKWARD from_in cursor_name opt_ecpg_fetch_into
{ {
char *cursor_marker = $4[0] == ':' ? make_str("$0") : $4; char *cursor_marker = $4[0] == ':' ? mm_strdup("$0") : $4;
add_additional_variables($4, false); add_additional_variables($4, false);
$$ = cat_str(2, make_str("fetch backward from"), cursor_marker); $$ = cat_str(2, mm_strdup("fetch backward from"), cursor_marker);
} }
| MOVE FORWARD cursor_name | MOVE FORWARD cursor_name
{ {
char *cursor_marker = $3[0] == ':' ? make_str("$0") : $3; char *cursor_marker = $3[0] == ':' ? mm_strdup("$0") : $3;
add_additional_variables($3, false); add_additional_variables($3, false);
$$ = cat_str(2, make_str("move forward"), cursor_marker); $$ = cat_str(2, mm_strdup("move forward"), cursor_marker);
} }
| MOVE FORWARD from_in cursor_name | MOVE FORWARD from_in cursor_name
{ {
char *cursor_marker = $4[0] == ':' ? make_str("$0") : $4; char *cursor_marker = $4[0] == ':' ? mm_strdup("$0") : $4;
add_additional_variables($4, false); add_additional_variables($4, false);
$$ = cat_str(2, make_str("move forward from"), cursor_marker); $$ = cat_str(2, mm_strdup("move forward from"), cursor_marker);
} }
| MOVE BACKWARD cursor_name | MOVE BACKWARD cursor_name
{ {
char *cursor_marker = $3[0] == ':' ? make_str("$0") : $3; char *cursor_marker = $3[0] == ':' ? mm_strdup("$0") : $3;
add_additional_variables($3, false); add_additional_variables($3, false);
$$ = cat_str(2, make_str("move backward"), cursor_marker); $$ = cat_str(2, mm_strdup("move backward"), cursor_marker);
} }
| MOVE BACKWARD from_in cursor_name | MOVE BACKWARD from_in cursor_name
{ {
char *cursor_marker = $4[0] == ':' ? make_str("$0") : $4; char *cursor_marker = $4[0] == ':' ? mm_strdup("$0") : $4;
add_additional_variables($4, false); add_additional_variables($4, false);
$$ = cat_str(2, make_str("move backward from"), cursor_marker); $$ = cat_str(2, mm_strdup("move backward from"), cursor_marker);
} }
ECPG: limit_clauseLIMITselect_limit_value','select_offset_value block ECPG: limit_clauseLIMITselect_limit_value','select_offset_value block
{ {
mmerror(PARSE_ERROR, ET_WARNING, "no longer supported LIMIT #,# syntax passed to server"); mmerror(PARSE_ERROR, ET_WARNING, "no longer supported LIMIT #,# syntax passed to server");
$$ = cat_str(4, make_str("limit"), $2, make_str(","), $4); $$ = cat_str(4, mm_strdup("limit"), $2, mm_strdup(","), $4);
} }
ECPG: SignedIconstIconst rule ECPG: SignedIconstIconst rule
| civar { $$ = $1; } | civar { $$ = $1; }
This diff is collapsed.
This diff is collapsed.
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
/* defines */ /* defines */
#define STRUCT_DEPTH 128 #define STRUCT_DEPTH 128
#define EMPTY make_str("") #define EMPTY mm_strdup("")
/* variables */ /* variables */
...@@ -62,7 +62,6 @@ extern struct ECPGstruct_member *struct_member_list[STRUCT_DEPTH]; ...@@ -62,7 +62,6 @@ extern struct ECPGstruct_member *struct_member_list[STRUCT_DEPTH];
extern const char *get_dtype(enum ECPGdtype); extern const char *get_dtype(enum ECPGdtype);
extern void lex_init(void); extern void lex_init(void);
extern char *make_str(const char *);
extern void output_line_number(void); extern void output_line_number(void);
extern void output_statement(char *, int, enum ECPG_statement_type); extern void output_statement(char *, int, enum ECPG_statement_type);
extern void output_prepare_statement(char *, char *); extern void output_prepare_statement(char *, char *);
......
...@@ -397,7 +397,7 @@ sub dump_fields { ...@@ -397,7 +397,7 @@ sub dump_fields {
&add_to_buffer('rules', " \$\$=EMPTY; }"); &add_to_buffer('rules', " \$\$=EMPTY; }");
} }
else { else {
# Go through each field and try to 'aggregate' the tokens into a single 'make_str' where possible # Go through each field and try to 'aggregate' the tokens into a single 'mm_strdup' where possible
$cnt = 0; $cnt = 0;
for ($z = 0; $z < $len; $z++) { for ($z = 0; $z < $len; $z++) {
if (substr($flds{$z}, 1, 1) eq "\$") { if (substr($flds{$z}, 1, 1) eq "\$") {
...@@ -410,7 +410,7 @@ sub dump_fields { ...@@ -410,7 +410,7 @@ sub dump_fields {
while (1) { while (1) {
if ($z >= $len - 1 || substr($flds{$z + 1}, 1, 1) eq "\$") { if ($z >= $len - 1 || substr($flds{$z + 1}, 1, 1) eq "\$") {
# We're at the end... # We're at the end...
$flds_new{$cnt++} = "make_str(\"" . $str . "\")"; $flds_new{$cnt++} = "mm_strdup(\"" . $str . "\")";
last; last;
} }
$z++; $z++;
......
...@@ -120,7 +120,7 @@ ECPGmake_array_type(struct ECPGtype * type, char *size) ...@@ -120,7 +120,7 @@ ECPGmake_array_type(struct ECPGtype * type, char *size)
struct ECPGtype * struct ECPGtype *
ECPGmake_struct_type(struct ECPGstruct_member * rm, enum ECPGttype type, char *type_name, char *struct_sizeof) ECPGmake_struct_type(struct ECPGstruct_member * rm, enum ECPGttype type, char *type_name, char *struct_sizeof)
{ {
struct ECPGtype *ne = ECPGmake_simple_type(type, make_str("1"), 0); struct ECPGtype *ne = ECPGmake_simple_type(type, mm_strdup("1"), 0);
ne->type_name = mm_strdup(type_name); ne->type_name = mm_strdup(type_name);
ne->u.members = ECPGstruct_member_dup(rm); ne->u.members = ECPGstruct_member_dup(rm);
...@@ -308,7 +308,7 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type, const int bra ...@@ -308,7 +308,7 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type, const int bra
if (ind_type != NULL) if (ind_type != NULL)
{ {
if (ind_type->type == ECPGt_NO_INDICATOR) if (ind_type->type == ECPGt_NO_INDICATOR)
ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, make_str("-1"), NULL, ind_prefix, 0); ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, mm_strdup("-1"), NULL, ind_prefix, 0);
else else
{ {
ECPGdump_a_simple(o, ind_name, ind_type->u.element->type, ECPGdump_a_simple(o, ind_name, ind_type->u.element->type,
...@@ -321,7 +321,7 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type, const int bra ...@@ -321,7 +321,7 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type, const int bra
if (indicator_set && ind_type->type != ECPGt_struct) if (indicator_set && ind_type->type != ECPGt_struct)
mmerror(INDICATOR_NOT_STRUCT, ET_FATAL, "indicator for struct has to be a struct"); mmerror(INDICATOR_NOT_STRUCT, ET_FATAL, "indicator for struct has to be a struct");
ECPGdump_a_struct(o, name, ind_name, make_str("1"), type, ind_type, prefix, ind_prefix); ECPGdump_a_struct(o, name, ind_name, mm_strdup("1"), type, ind_type, prefix, ind_prefix);
break; break;
case ECPGt_union: /* cannot dump a complete union */ case ECPGt_union: /* cannot dump a complete union */
base_yyerror("type of union has to be specified"); base_yyerror("type of union has to be specified");
...@@ -330,25 +330,25 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type, const int bra ...@@ -330,25 +330,25 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type, const int bra
if (indicator_set && (ind_type->type == ECPGt_struct || ind_type->type == ECPGt_array)) if (indicator_set && (ind_type->type == ECPGt_struct || ind_type->type == ECPGt_array))
mmerror(INDICATOR_NOT_SIMPLE, ET_FATAL, "indicator for simple data type has to be simple"); mmerror(INDICATOR_NOT_SIMPLE, ET_FATAL, "indicator for simple data type has to be simple");
ECPGdump_a_simple(o, name, type->type, make_str("1"), (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : make_str("1"), struct_sizeof, prefix, 0); ECPGdump_a_simple(o, name, type->type, mm_strdup("1"), (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : mm_strdup("1"), struct_sizeof, prefix, 0);
if (ind_type != NULL) if (ind_type != NULL)
ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : make_str("-1"), ind_struct_sizeof, ind_prefix, 0); ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : mm_strdup("-1"), ind_struct_sizeof, ind_prefix, 0);
break; break;
case ECPGt_descriptor: case ECPGt_descriptor:
if (indicator_set && (ind_type->type == ECPGt_struct || ind_type->type == ECPGt_array)) if (indicator_set && (ind_type->type == ECPGt_struct || ind_type->type == ECPGt_array))
mmerror(INDICATOR_NOT_SIMPLE, ET_FATAL, "indicator for simple data type has to be simple"); mmerror(INDICATOR_NOT_SIMPLE, ET_FATAL, "indicator for simple data type has to be simple");
ECPGdump_a_simple(o, name, type->type, NULL, make_str("-1"), NULL, prefix, 0); ECPGdump_a_simple(o, name, type->type, NULL, mm_strdup("-1"), NULL, prefix, 0);
if (ind_type != NULL) if (ind_type != NULL)
ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, make_str("-1"), NULL, ind_prefix, 0); ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, mm_strdup("-1"), NULL, ind_prefix, 0);
break; break;
default: default:
if (indicator_set && (ind_type->type == ECPGt_struct || ind_type->type == ECPGt_array)) if (indicator_set && (ind_type->type == ECPGt_struct || ind_type->type == ECPGt_array))
mmerror(INDICATOR_NOT_SIMPLE, ET_FATAL, "indicator for simple data type has to be simple"); mmerror(INDICATOR_NOT_SIMPLE, ET_FATAL, "indicator for simple data type has to be simple");
ECPGdump_a_simple(o, name, type->type, type->size, (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : make_str("-1"), struct_sizeof, prefix, type->counter); ECPGdump_a_simple(o, name, type->type, type->size, (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : mm_strdup("-1"), struct_sizeof, prefix, type->counter);
if (ind_type != NULL) if (ind_type != NULL)
ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : make_str("-1"), ind_struct_sizeof, ind_prefix, 0); ECPGdump_a_simple(o, ind_name, ind_type->type, ind_type->size, (arr_str_siz && strcmp(arr_str_siz, "0") != 0) ? arr_str_siz : mm_strdup("-1"), ind_struct_sizeof, ind_prefix, 0);
break; break;
} }
} }
......
...@@ -446,7 +446,7 @@ dump_variables(struct arguments * list, int mode) ...@@ -446,7 +446,7 @@ dump_variables(struct arguments * list, int mode)
/* Then the current element and its indicator */ /* Then the current element and its indicator */
ECPGdump_a_type(yyout, list->variable->name, list->variable->type, list->variable->brace_level, ECPGdump_a_type(yyout, list->variable->name, list->variable->type, list->variable->brace_level,
list->indicator->name, list->indicator->type, list->indicator->brace_level, list->indicator->name, list->indicator->type, list->indicator->brace_level,
NULL, NULL, make_str("0"), NULL, NULL); NULL, NULL, mm_strdup("0"), NULL, NULL);
/* Then release the list element. */ /* Then release the list element. */
if (mode != 0) if (mode != 0)
...@@ -542,7 +542,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty ...@@ -542,7 +542,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty
if (pointer_len) if (pointer_len)
{ {
*length = *dimension; *length = *dimension;
*dimension = make_str("0"); *dimension = mm_strdup("0");
} }
if (atoi(*length) >= 0) if (atoi(*length) >= 0)
...@@ -552,13 +552,13 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty ...@@ -552,13 +552,13 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty
case ECPGt_varchar: case ECPGt_varchar:
/* pointer has to get dimension 0 */ /* pointer has to get dimension 0 */
if (pointer_len) if (pointer_len)
*dimension = make_str("0"); *dimension = mm_strdup("0");
/* one index is the string length */ /* one index is the string length */
if (atoi(*length) < 0) if (atoi(*length) < 0)
{ {
*length = *dimension; *length = *dimension;
*dimension = make_str("-1"); *dimension = mm_strdup("-1");
} }
break; break;
...@@ -568,13 +568,13 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty ...@@ -568,13 +568,13 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty
/* char ** */ /* char ** */
if (pointer_len == 2) if (pointer_len == 2)
{ {
*length = *dimension = make_str("0"); *length = *dimension = mm_strdup("0");
break; break;
} }
/* pointer has to get length 0 */ /* pointer has to get length 0 */
if (pointer_len == 1) if (pointer_len == 1)
*length = make_str("0"); *length = mm_strdup("0");
/* one index is the string length */ /* one index is the string length */
if (atoi(*length) < 0) if (atoi(*length) < 0)
...@@ -589,13 +589,13 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty ...@@ -589,13 +589,13 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty
* do not change this for typedefs since it will be * do not change this for typedefs since it will be
* changed later on when the variable is defined * changed later on when the variable is defined
*/ */
*length = make_str("1"); *length = mm_strdup("1");
else if (strcmp(*dimension, "0") == 0) else if (strcmp(*dimension, "0") == 0)
*length = make_str("-1"); *length = mm_strdup("-1");
else else
*length = *dimension; *length = *dimension;
*dimension = make_str("-1"); *dimension = mm_strdup("-1");
} }
break; break;
default: default:
...@@ -603,7 +603,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty ...@@ -603,7 +603,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty
if (pointer_len) if (pointer_len)
{ {
*length = *dimension; *length = *dimension;
*dimension = make_str("0"); *dimension = mm_strdup("0");
} }
if (atoi(*length) >= 0) if (atoi(*length) >= 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment