aboutsummaryrefslogtreecommitdiff
path: root/lstrlib.c
diff options
context:
space:
mode:
Diffstat (limited to 'lstrlib.c')
-rw-r--r--lstrlib.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/lstrlib.c b/lstrlib.c
index 502ad9b3..fd898ce3 100644
--- a/lstrlib.c
+++ b/lstrlib.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lstrlib.c,v 1.112 2005/05/05 15:34:03 roberto Exp roberto $ 2** $Id: lstrlib.c,v 1.113 2005/05/16 19:21:11 roberto Exp roberto $
3** Standard library for string operations and pattern-matching 3** Standard library for string operations and pattern-matching
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -200,14 +200,14 @@ static const char *classend (MatchState *ms, const char *p) {
200 switch (*p++) { 200 switch (*p++) {
201 case L_ESC: { 201 case L_ESC: {
202 if (*p == '\0') 202 if (*p == '\0')
203 luaL_error(ms->L, "malformed pattern (ends with `%%')"); 203 luaL_error(ms->L, "malformed pattern (ends with '%%')");
204 return p+1; 204 return p+1;
205 } 205 }
206 case '[': { 206 case '[': {
207 if (*p == '^') p++; 207 if (*p == '^') p++;
208 do { /* look for a `]' */ 208 do { /* look for a `]' */
209 if (*p == '\0') 209 if (*p == '\0')
210 luaL_error(ms->L, "malformed pattern (missing `]')"); 210 luaL_error(ms->L, "malformed pattern (missing ']')");
211 if (*(p++) == L_ESC && *p != '\0') 211 if (*(p++) == L_ESC && *p != '\0')
212 p++; /* skip escapes (e.g. `%]') */ 212 p++; /* skip escapes (e.g. `%]') */
213 } while (*p != ']'); 213 } while (*p != ']');
@@ -382,7 +382,7 @@ static const char *match (MatchState *ms, const char *s, const char *p) {
382 const char *ep; char previous; 382 const char *ep; char previous;
383 p += 2; 383 p += 2;
384 if (*p != '[') 384 if (*p != '[')
385 luaL_error(ms->L, "missing `[' after `%%f' in pattern"); 385 luaL_error(ms->L, "missing '[' after '%%f' in pattern");
386 ep = classend(ms, p); /* points to what is next */ 386 ep = classend(ms, p); /* points to what is next */
387 previous = (s == ms->src_init) ? '\0' : *(s-1); 387 previous = (s == ms->src_init) ? '\0' : *(s-1);
388 if (matchbracketclass(uchar(previous), p, ep-1) || 388 if (matchbracketclass(uchar(previous), p, ep-1) ||
@@ -705,8 +705,6 @@ static int str_format (lua_State *L) {
705 char form[MAX_FORMAT]; /* to store the format (`%...') */ 705 char form[MAX_FORMAT]; /* to store the format (`%...') */
706 char buff[MAX_ITEM]; /* to store the formatted item */ 706 char buff[MAX_ITEM]; /* to store the formatted item */
707 int hasprecision = 0; 707 int hasprecision = 0;
708 if (isdigit(uchar(*strfrmt)) && *(strfrmt+1) == '$')
709 return luaL_error(L, "obsolete option (d$) to `format'");
710 arg++; 708 arg++;
711 strfrmt = scanformat(L, strfrmt, form, &hasprecision); 709 strfrmt = scanformat(L, strfrmt, form, &hasprecision);
712 switch (*strfrmt++) { 710 switch (*strfrmt++) {
@@ -725,7 +723,7 @@ static int str_format (lua_State *L) {
725 } 723 }
726 case 'q': { 724 case 'q': {
727 addquoted(L, &b, arg); 725 addquoted(L, &b, arg);
728 continue; /* skip the `addsize' at the end */ 726 continue; /* skip the 'addsize' at the end */
729 } 727 }
730 case 's': { 728 case 's': {
731 size_t l; 729 size_t l;
@@ -743,7 +741,7 @@ static int str_format (lua_State *L) {
743 } 741 }
744 } 742 }
745 default: { /* also treat cases `pnLlh' */ 743 default: { /* also treat cases `pnLlh' */
746 return luaL_error(L, "invalid option to `format'"); 744 return luaL_error(L, "invalid option to " LUA_SM, "format");
747 } 745 }
748 } 746 }
749 luaL_addlstring(&b, buff, strlen(buff)); 747 luaL_addlstring(&b, buff, strlen(buff));