added more documentation with some code fix

This commit is contained in:
2009-06-08 06:11:56 +00:00
parent a6c0d71710
commit cc1438a2cf
4 changed files with 128 additions and 24 deletions

View File

@ -52,7 +52,7 @@ static const qse_char_t* dflerrstr (qse_sed_t* sed, qse_sed_errnum_t errnum)
QSE_T("failed to compile regular expression '${0}'"),
QSE_T("failed to match regular expression"),
QSE_T("address 1 prohibited for '${0}'"),
QSE_T("address 2 prohibited"),
QSE_T("address 2 prohibited for '${0}'"),
QSE_T("address 2 missing or invalid"),
QSE_T("newline expected"),
QSE_T("backslash expected"),
@ -1139,7 +1139,10 @@ static int get_command (qse_sed_t* sed, qse_sed_cmd_t* cmd)
if (sed->option & QSE_SED_CLASSIC &&
cmd->a2.type != QSE_SED_ADR_NONE)
{
SETERR0 (sed, QSE_SED_EA2PHB, sed->src.lnum);
SETERR1 (
sed, QSE_SED_EA2PHB,
sed->src.lnum, &cmd->type, 1
);
return -1;
}
@ -1149,6 +1152,16 @@ static int get_command (qse_sed_t* sed, qse_sed_cmd_t* cmd)
case QSE_T('a'):
case QSE_T('i'):
if (sed->option & QSE_SED_CLASSIC &&
cmd->a2.type != QSE_SED_ADR_NONE)
{
qse_char_t tmpc = c;
SETERR1 (
sed, QSE_SED_EA2PHB,
sed->src.lnum, &tmpc, 1
);
return -1;
}
case QSE_T('c'):
{
cmd->type = c;
@ -1186,16 +1199,21 @@ static int get_command (qse_sed_t* sed, qse_sed_cmd_t* cmd)
if (sed->option & QSE_SED_CLASSIC &&
cmd->a2.type != QSE_SED_ADR_NONE)
{
SETERR0 (sed, QSE_SED_EA2PHB, sed->src.lnum);
qse_char_t tmpc = c;
SETERR1 (
sed, QSE_SED_EA2PHB,
sed->src.lnum, &tmpc, 1
);
return -1;
}
case QSE_T('p'):
case QSE_T('P'):
case QSE_T('l'):
case QSE_T('d'):
case QSE_T('D'):
case QSE_T('p'):
case QSE_T('P'):
case QSE_T('l'):
case QSE_T('h'):
case QSE_T('H'):
case QSE_T('g'):
@ -1326,7 +1344,8 @@ int qse_sed_comp (qse_sed_t* sed, const qse_char_t* sptr, qse_size_t slen)
return -1;
}
}
else if (delim == QSE_T('~'))
else if (!(sed->option & QSE_SED_CLASSIC) &&
(delim == QSE_T('~')))
{
if (cmd->a1.type != QSE_SED_ADR_LINE ||
cmd->a2.type != QSE_SED_ADR_LINE)