aboutsummaryrefslogtreecommitdiff
path: root/strlib.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-04-06 11:08:08 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-04-06 11:08:08 -0300
commit3a9516ffc8de0d33051f83dc786dba615d6bac49 (patch)
tree9608796ca5abb4a724d70d99cb34dd818eb95662 /strlib.c
parent42fa305649199712aad1c96beadb944b01277e3f (diff)
downloadlua-3a9516ffc8de0d33051f83dc786dba615d6bac49.tar.gz
lua-3a9516ffc8de0d33051f83dc786dba615d6bac49.tar.bz2
lua-3a9516ffc8de0d33051f83dc786dba615d6bac49.zip
luaL check functions do not need the function name (it can be
accessed via luadebug interface).
Diffstat (limited to 'strlib.c')
-rw-r--r--strlib.c58
1 files changed, 29 insertions, 29 deletions
diff --git a/strlib.c b/strlib.c
index 8b57e391..6aa726bc 100644
--- a/strlib.c
+++ b/strlib.c
@@ -3,7 +3,7 @@
3** String library to LUA 3** String library to LUA
4*/ 4*/
5 5
6char *rcs_strlib="$Id: strlib.c,v 1.38 1997/03/26 22:23:15 roberto Exp roberto $"; 6char *rcs_strlib="$Id: strlib.c,v 1.39 1997/04/04 22:24:51 roberto Exp roberto $";
7 7
8#include <string.h> 8#include <string.h>
9#include <stdio.h> 9#include <stdio.h>
@@ -74,8 +74,8 @@ static void addstr (char *s)
74*/ 74*/
75static void str_tok (void) 75static void str_tok (void)
76{ 76{
77 char *s1 = luaL_check_string(1, "strtok"); 77 char *s1 = luaL_check_string(1);
78 char *del = luaL_check_string(2, "strtok"); 78 char *del = luaL_check_string(2);
79 lua_Object t = lua_createtable(); 79 lua_Object t = lua_createtable();
80 int i = 1; 80 int i = 1;
81 /* As strtok changes s1, and s1 is "constant", make a copy of it */ 81 /* As strtok changes s1, and s1 is "constant", make a copy of it */
@@ -97,7 +97,7 @@ static void str_tok (void)
97*/ 97*/
98static void str_len (void) 98static void str_len (void)
99{ 99{
100 lua_pushnumber(strlen(luaL_check_string(1, "strlen"))); 100 lua_pushnumber(strlen(luaL_check_string(1)));
101} 101}
102 102
103/* 103/*
@@ -105,9 +105,9 @@ static void str_len (void)
105*/ 105*/
106static void str_sub (void) 106static void str_sub (void)
107{ 107{
108 char *s = luaL_check_string(1, "strsub"); 108 char *s = luaL_check_string(1);
109 long start = (long)luaL_check_number(2, "strsub"); 109 long start = (long)luaL_check_number(2);
110 long end = (long)luaL_opt_number(3, strlen(s), "strsub"); 110 long end = (long)luaL_opt_number(3, strlen(s));
111 if (1 <= start && start <= end && end <= strlen(s)) { 111 if (1 <= start && start <= end && end <= strlen(s)) {
112 luaI_emptybuff(); 112 luaI_emptybuff();
113 addnchar(s+start-1, end-start+1); 113 addnchar(s+start-1, end-start+1);
@@ -123,7 +123,7 @@ static void str_lower (void)
123{ 123{
124 char *s; 124 char *s;
125 luaI_emptybuff(); 125 luaI_emptybuff();
126 for (s = luaL_check_string(1, "strlower"); *s; s++) 126 for (s = luaL_check_string(1); *s; s++)
127 luaI_addchar(tolower((unsigned char)*s)); 127 luaI_addchar(tolower((unsigned char)*s));
128 lua_pushstring(luaI_addchar(0)); 128 lua_pushstring(luaI_addchar(0));
129} 129}
@@ -135,15 +135,15 @@ static void str_upper (void)
135{ 135{
136 char *s; 136 char *s;
137 luaI_emptybuff(); 137 luaI_emptybuff();
138 for (s = luaL_check_string(1, "strupper"); *s; s++) 138 for (s = luaL_check_string(1); *s; s++)
139 luaI_addchar(toupper((unsigned char)*s)); 139 luaI_addchar(toupper((unsigned char)*s));
140 lua_pushstring(luaI_addchar(0)); 140 lua_pushstring(luaI_addchar(0));
141} 141}
142 142
143static void str_rep (void) 143static void str_rep (void)
144{ 144{
145 char *s = luaL_check_string(1, "strrep"); 145 char *s = luaL_check_string(1);
146 int n = (int)luaL_check_number(2, "strrep"); 146 int n = (int)luaL_check_number(2);
147 luaI_emptybuff(); 147 luaI_emptybuff();
148 while (n-- > 0) 148 while (n-- > 0)
149 addstr(s); 149 addstr(s);
@@ -155,9 +155,9 @@ static void str_rep (void)
155*/ 155*/
156static void str_ascii (void) 156static void str_ascii (void)
157{ 157{
158 char *s = luaL_check_string(1, "ascii"); 158 char *s = luaL_check_string(1);
159 long pos = (long)luaL_opt_number(2, 1, "ascii") - 1; 159 long pos = (long)luaL_opt_number(2, 1) - 1;
160 luaL_arg_check(0<=pos && pos<strlen(s), "ascii", 2, "out of range"); 160 luaL_arg_check(0<=pos && pos<strlen(s), 2, "out of range");
161 lua_pushnumber((unsigned char)s[pos]); 161 lua_pushnumber((unsigned char)s[pos]);
162} 162}
163 163
@@ -364,10 +364,10 @@ static char *match (char *s, char *p, int level)
364 364
365static void str_find (void) 365static void str_find (void)
366{ 366{
367 char *s = luaL_check_string(1, "strfind"); 367 char *s = luaL_check_string(1);
368 char *p = luaL_check_string(2, "strfind"); 368 char *p = luaL_check_string(2);
369 long init = (long)luaL_opt_number(3, 1, "strfind") - 1; 369 long init = (long)luaL_opt_number(3, 1) - 1;
370 luaL_arg_check(0 <= init && init <= strlen(s), "strfind", 3, "out of range"); 370 luaL_arg_check(0 <= init && init <= strlen(s), 3, "out of range");
371 if (lua_getparam(4) != LUA_NOOBJECT || 371 if (lua_getparam(4) != LUA_NOOBJECT ||
372 strpbrk(p, SPECIALS) == NULL) { /* no special caracters? */ 372 strpbrk(p, SPECIALS) == NULL) { /* no special caracters? */
373 char *s2 = strstr(s+init, p); 373 char *s2 = strstr(s+init, p);
@@ -420,15 +420,15 @@ static void add_s (lua_Object newp)
420 addstr(lua_isstring(res) ? lua_getstring(res) : ""); 420 addstr(lua_isstring(res) ? lua_getstring(res) : "");
421 lua_endblock(); 421 lua_endblock();
422 } 422 }
423 else luaL_arg_check(0, "gsub", 3, NULL); 423 else luaL_arg_check(0, 3, NULL);
424} 424}
425 425
426static void str_gsub (void) 426static void str_gsub (void)
427{ 427{
428 char *src = luaL_check_string(1, "gsub"); 428 char *src = luaL_check_string(1);
429 char *p = luaL_check_string(2, "gsub"); 429 char *p = luaL_check_string(2);
430 lua_Object newp = lua_getparam(3); 430 lua_Object newp = lua_getparam(3);
431 int max_s = (int)luaL_opt_number(4, strlen(src)+1, "gsub"); 431 int max_s = (int)luaL_opt_number(4, strlen(src)+1);
432 int anchor = (*p == '^') ? (p++, 1) : 0; 432 int anchor = (*p == '^') ? (p++, 1) : 0;
433 int n = 0; 433 int n = 0;
434 luaI_emptybuff(); 434 luaI_emptybuff();
@@ -452,9 +452,9 @@ static void str_gsub (void)
452 452
453static void str_set (void) 453static void str_set (void)
454{ 454{
455 char *item = luaL_check_string(1, "strset"); 455 char *item = luaL_check_string(1);
456 int i; 456 int i;
457 luaL_arg_check(*luaL_item_end(item) == 0, "strset", 1, "wrong format"); 457 luaL_arg_check(*luaL_item_end(item) == 0, 1, "wrong format");
458 luaI_emptybuff(); 458 luaI_emptybuff();
459 for (i=1; i<256; i++) /* 0 cannot be part of a set */ 459 for (i=1; i<256; i++) /* 0 cannot be part of a set */
460 if (luaL_singlematch(i, item)) 460 if (luaL_singlematch(i, item))
@@ -479,7 +479,7 @@ void luaI_addquoted (char *s)
479static void str_format (void) 479static void str_format (void)
480{ 480{
481 int arg = 1; 481 int arg = 1;
482 char *strfrmt = luaL_check_string(arg++, "format"); 482 char *strfrmt = luaL_check_string(arg++);
483 luaI_emptybuff(); /* initialize */ 483 luaI_emptybuff(); /* initialize */
484 while (*strfrmt) { 484 while (*strfrmt) {
485 if (*strfrmt != '%') 485 if (*strfrmt != '%')
@@ -498,20 +498,20 @@ static void str_format (void)
498 buff = openspace(1000); /* to store the formated value */ 498 buff = openspace(1000); /* to store the formated value */
499 switch (*strfrmt++) { 499 switch (*strfrmt++) {
500 case 'q': 500 case 'q':
501 luaI_addquoted(luaL_check_string(arg++, "format")); 501 luaI_addquoted(luaL_check_string(arg++));
502 continue; 502 continue;
503 case 's': { 503 case 's': {
504 char *s = luaL_check_string(arg++, "format"); 504 char *s = luaL_check_string(arg++);
505 buff = openspace(strlen(s)); 505 buff = openspace(strlen(s));
506 sprintf(buff, form, s); 506 sprintf(buff, form, s);
507 break; 507 break;
508 } 508 }
509 case 'c': case 'd': case 'i': case 'o': 509 case 'c': case 'd': case 'i': case 'o':
510 case 'u': case 'x': case 'X': 510 case 'u': case 'x': case 'X':
511 sprintf(buff, form, (int)luaL_check_number(arg++, "format")); 511 sprintf(buff, form, (int)luaL_check_number(arg++));
512 break; 512 break;
513 case 'e': case 'E': case 'f': case 'g': 513 case 'e': case 'E': case 'f': case 'g':
514 sprintf(buff, form, luaL_check_number(arg++, "format")); 514 sprintf(buff, form, luaL_check_number(arg++));
515 break; 515 break;
516 default: /* also treat cases 'pnLlh' */ 516 default: /* also treat cases 'pnLlh' */
517 lua_error("invalid format option in function `format'"); 517 lua_error("invalid format option in function `format'");