implemented comment preservation in the ini-format reader code correctly

This commit is contained in:
hyung-hwan 2015-09-01 12:24:05 +00:00
parent 9cf7a9af9d
commit 3e1f52baa9
2 changed files with 7 additions and 7 deletions

View File

@ -112,16 +112,12 @@ static int skip_comment (qse_xli_t* xli, qse_xli_tok_t* tok)
GET_CHAR_TO (xli, c); GET_CHAR_TO (xli, c);
if (c == QSE_T('\n') || c == QSE_CHAR_EOF) break; if (c == QSE_T('\n') || c == QSE_CHAR_EOF) break;
/* i don't honor QSE_XLI_KEEPTEXT in the ini-format reader...
if (xli->opt.trait & QSE_XLI_KEEPTEXT) ADD_TOKEN_CHAR (xli, tok, c); if (xli->opt.trait & QSE_XLI_KEEPTEXT) ADD_TOKEN_CHAR (xli, tok, c);
*/
} }
while (1); while (1);
/* i don't honor QSE_XLI_KEEPTEXT in the ini-format reader...
if ((xli->opt.trait & QSE_XLI_KEEPTEXT) && if ((xli->opt.trait & QSE_XLI_KEEPTEXT) &&
qse_xli_inserttext (xli, &xli->root->list, QSE_NULL, QSE_STR_PTR(tok->name)) == QSE_NULL) return -1; qse_xli_inserttext (xli, xli->parlink->list, QSE_NULL, QSE_STR_PTR(tok->name)) == QSE_NULL) return -1;
*/
GET_CHAR (xli); /* eat the new line letter */ GET_CHAR (xli); /* eat the new line letter */
return 1; /* comment by ; */ return 1; /* comment by ; */
@ -317,11 +313,13 @@ static int read_list (qse_xli_t* xli)
/* insert a pair with an empty list */ /* insert a pair with an empty list */
pair = qse_xli_insertpairwithemptylist (xli, &xli->root->list, QSE_NULL, QSE_STR_PTR(xli->tok.name), QSE_NULL, QSE_NULL); pair = qse_xli_insertpairwithemptylist (xli, &xli->root->list, QSE_NULL, QSE_STR_PTR(xli->tok.name), QSE_NULL, QSE_NULL);
if (pair == QSE_NULL) goto oops; if (pair == QSE_NULL) goto oops;
curlist = (qse_xli_list_t*)pair->val; curlist = (qse_xli_list_t*)pair->val;
xli->parlink->list = curlist;
while (1) while (1)
{ {
if (get_token(xli) <= -1) goto oops; if (get_token (xli) <= -1) goto oops;
if (MATCH(xli, QSE_XLI_TOK_EOF)) break; if (MATCH(xli, QSE_XLI_TOK_EOF)) break;
if (MATCH(xli, QSE_XLI_TOK_TAG)) if (MATCH(xli, QSE_XLI_TOK_TAG))
@ -329,7 +327,9 @@ static int read_list (qse_xli_t* xli)
/* switch to a new tag */ /* switch to a new tag */
pair = qse_xli_insertpairwithemptylist (xli, &xli->root->list, QSE_NULL, QSE_STR_PTR(xli->tok.name), QSE_NULL, QSE_NULL); pair = qse_xli_insertpairwithemptylist (xli, &xli->root->list, QSE_NULL, QSE_STR_PTR(xli->tok.name), QSE_NULL, QSE_NULL);
if (pair == QSE_NULL) goto oops; if (pair == QSE_NULL) goto oops;
curlist = (qse_xli_list_t*)pair->val; curlist = (qse_xli_list_t*)pair->val;
xli->parlink->list = curlist;
continue; continue;
} }

View File

@ -319,7 +319,7 @@ qse_xli_pair_t* qse_xli_insertpairwithemptylist (
if (!val) return QSE_NULL; if (!val) return QSE_NULL;
val->type = QSE_XLI_LIST; val->type = QSE_XLI_LIST;
tmp = qse_xli_insertpair (xli, parent, peer, key, alias, keytag, (qse_xli_val_t*)val); tmp = qse_xli_insertpair (xli, parent, peer, key, alias, keytag, (qse_xli_val_t*)val);
if (!tmp) qse_xli_freemem (xli, val); if (!tmp) qse_xli_freemem (xli, val);
return tmp; return tmp;
} }