luaL_buffinit, luaL_prepbuffer, luaL_putchar, luaL_addsize, luaL_addlstring, luaL_addstring, luaL_addvalue, luaL_pushresult,
·ç¾Æ¿¡¼ ¹®ÀÚ¿Àº °ªÀ» ¹Ù²Ü ¼ö ¾ø´Â ¿ÀºêÁ§Æ®ÀÌ´Ù. ¶§¹®¿¡ Á¶±×¸¸ ¹®ÀÚ¿À» ÇÕÃļ ±ä ¹®ÀÚ¿À» ¸¸µå´Â ÀÛ¾÷Àº »ó´çÈ÷ ºñÈ¿À²ÀûÀÌ´Ù. ¹®ÀÚ¿ ÇÕÄ¡±â ¿¬»ê .. À» ¼öÇàÇÒ ¶§¸¶´Ù, »õ·Î¿î ¹®ÀÚ¿ ¿ÀºêÁ§Æ®°¡ »ý¼ºµÇ°í, ÀÌÀüÀÇ ¿ÀºêÁ§Æ®´Â ¹ö·ÁÁö´Ï±î. ÀÌ ÀÛ¾÷À» À§Çؼ ¸¸µé¾îÁø Ưº°ÇÑ APIµéÀÌ auxlib¿¡ Á¸ÀçÇÑ´Ù.
1 luaL_buffinit
void luaL_buffinit (lua_State *L, luaL_Buffer *B);
¹öÆÛ¸¦ ÃʱâÈÇÑ´Ù. B ¹öÆÛ °´Ã¼´Â º¸Åë ÇÔ¼ö ¾ÈÀÇ Áö¿ª º¯¼ö´Ù.
2 luaL_prepbuffer
char *luaL_prepbuffer (luaL_Buffer *B);
B ¹öÆÛ ¾È¿¡ µé¾îÀÖ´Â ¹®ÀÚ¿À» ½ºÅà À§¿¡´Ù Ǫ½¬Çϰí, ¹öÆÛ ÀÚü´Â Àç»ç¿ëÀ» À§ÇØ ÃʱâÈÇÑ´Ù.
3 luaL_putchar
#define luaL_putchar(B,c) \
((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \
(*(B)->p++ = (char)(c)))
¹öÆÛ¿¡´Ù ¹®ÀÚ¿ Çϳª¸¦ ºÙÀδÙ.
4 luaL_addsize
#define luaL_addsize(B,n) ((B)->p += (n))
¹öÆÛÀÇ Å©±â¸¦ n ¸¸Å ´Ã¸°´Ù.
5 luaL_addlstring
void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);
¹öÆÛ¿¡´Ù ¹®ÀÚ¿À» ºÙÀδÙ. lÀº ºÙÀÏ ¹®ÀÚ¿ÀÇ ±æÀÌ´Ù.
6 luaL_addstring
void luaL_addstring (luaL_Buffer *B, const char *s);
¹öÆÛ¿¡´Ù 0À¸·Î ³¡³ª´Â ¹®ÀÚ¿À» ºÙÀδÙ.
7 luaL_addvalue
void luaL_addvalue (luaL_Buffer *B);
½ºÅÃÀÇ ¸Ç À§¿¡ ÀÖ´Â °ªÀ» ÆËÇØ¼ ¹®ÀÚ¿·Î º¯È¯ÇØ, ¹öÆÛ¿¡´Ù ºÙÀδÙ.
8 luaL_pushresult
void luaL_pushresult (luaL_Buffer *B);
¹öÆÛ ¾È¿¡ µé¾îÀÖ´Â ¹®ÀÚ¿À» ½ºÅÿ¡´Ù Ǫ½ÃÇÑ´Ù.
ÁÖ¾îÁø ¹®ÀÚ¿À» ¸ðµÎ ´ë¹®ÀÚ·Î ¹Ù²Ù´Â »ùÇÃ
static int str_upper(lua_State* L)
{
size_t l = 0, i = 0;
luaL_Buffer b;
const char *s = luaL_checklstr(L, 1, &l);
luaL_bufferinit(L, &b);
for (i=0; i<l; i++)
luaL_putchar(&b, toupper((unsigned char)(s[i])));
luaL_pushresult(&b);
return 1;
}
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)