- ÇÑ±Û º¯¼ö¸í ¹× ÇÔ¼ö À̸§ »ç¿ëÇϱâ
- ¹®ÀÚ¿ ÇÕÄ¡±â ¿¬»êÀÚ·Î ".." ´ë½Å "+" ¾²±â
1 ÇÑ±Û º¯¼ö¸í ¹× ÇÔ¼ö À̸§ »ç¿ëÇϱâ
from
LuaHangulPatch
llex.c ÆÄÀÏÀ» ¿¾î¼ readnameÀ̶ó´Â ÇÔ¼ö¸¦ ¼öÁ¤ÇÑ´Ù.
////////////////////////////////////////////////////////////////////
/// Original
////////////////////////////////////////////////////////////////////
static size_t readname (LexState *LS)
{
...»ý·«...
} while (isalnum(LS->current) || LS->current == '_');
...»ý·«...
}
////////////////////////////////////////////////////////////////////
/// Modified
////////////////////////////////////////////////////////////////////
static size_t readname (LexState *LS)
{
...»ý·«...
} while (isalnum(LS->current) || ishan(LS->current) || LS->current == '_');
...»ý·«...
} luaX_lex¶ó´Â ÇÔ¼öµµ ¼öÁ¤ÇÑ´Ù.
////////////////////////////////////////////////////////////////////
/// Original
////////////////////////////////////////////////////////////////////
int luaX_lex (LexState *LS, SemInfo *seminfo)
{
...»ý·«...
else if (isalpha(LS->current) || LS->current == '_') {
...»ý·«...
}
////////////////////////////////////////////////////////////////////
/// Modified
////////////////////////////////////////////////////////////////////
int luaX_lex (LexState *LS, SemInfo *seminfo)
{
...»ý·«...
else if (isalpha(LS->current) || ishan(LS->current) || LS->current == '_') {
...»ý·«...
} À̰ÍÀ¸·Î¼ ±âº»ÀûÀÎ ÇÑ±Û º¯¼ö¿Í ÇÔ¼ö À̸§ÀÌ »ç¿ë°¡´ÉÇÏ´Ù. Ãß°¡ÀûÀ¸·Î strlib¿¡¼ ÇѱÛÀ» »ç¿ëÇÏ°í ½ÍÀ¸¸é lib/lstrlib.c ÆÄÀÏÀ» ¿¾î¼ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
////////////////////////////////////////////////////////////////////
/// Original
////////////////////////////////////////////////////////////////////
static int match_class (int c, int cl)
{
int res;
switch (tolower(cl))
{
...»ý·«...
case 'w' : res = isalnum(c); break;
...»ý·«...
}
}
////////////////////////////////////////////////////////////////////
/// Modified
////////////////////////////////////////////////////////////////////
static int match_class (int c, int cl)
{
int res;
switch (tolower(cl))
{
...»ý·«...
case 'w' : res = isalnum(c) || ishan(c); break;
case 'h' : res = ishan(c); break;
...»ý·«...
}
} ÀÌ·¸°Ô °íÄ¡¸é ÇѱÛÀ» ÀǹÌÇÏ´Â ÆÐÅÏ %h°¡ Ãß°¡µÇ°í Çѱ۵µ wordÀÇ ÇÑ Á¾·ù·Î¼ Æ÷ÇÔµÇ°Ô µÈ´Ù.
2 ¹®ÀÚ¿ ÇÕÄ¡±â ¿¬»êÀÚ·Î ".." ´ë½Å "+" ¾²±â
·ç¾Æ ¶óÀ̺귯¸® ¼Ò½º µð·ºÅ丮¿¡¼ lvm.c ÆÄÀÏÀ» ã´Â´Ù. ÆÄÀÏ ¾È¿¡ º¸¸é Op Äڵ忡 µû¶ó¼ ½ºÀ§Ä¡°¡ µé¾î°¡ÀÖ´Â ºÎºÐÀÌ ÀÖÀ» °ÍÀÌ´Ù. °Å±â¿¡¼ OP_ADD¿¡ °üÇÑ ºÎºÐÀ» ã´Â´Ù.
////////////////////////////////////////////////////////////////////
/// Original
////////////////////////////////////////////////////////////////////
case OP_ADD: {
TObject *rb = RKB(i);
TObject *rc = RKC(i);
if (ttisnumber(rb) && ttisnumber(rc)) {
setnvalue(ra, nvalue(rb) + nvalue(rc));
}
else
Arith(L, ra, rb, rc, TM_ADD);
break;
}
////////////////////////////////////////////////////////////////////
/// Modified
////////////////////////////////////////////////////////////////////
case OP_ADD: {
TObject *rb = RKB(i);
TObject *rc = RKC(i);
if (ttisnumber(rb) && ttisnumber(rc)) {
setnvalue(ra, nvalue(rb) + nvalue(rc));
}
// modified by excel96 //////////////
else if (ttisstring(rb) && ttisstring(rc))
{
int size = strlen(svalue(rb)) + strlen(svalue(rc)) + 1;
char* buf = malloc(size);
memset(buf, 0, size);
sprintf(buf, "%s%s", svalue(rb), svalue(rc));
setsvalue(ra, luaS_new(L, buf));
free(buf);
}
//////////////////////////////////
else
Arith(L, ra, rb, rc, TM_ADD);
break;
} ¼öÁ¤ÇÑ ´ÙÀ½ ¶óÀ̺귯¸®¸¦ ÀçÄÄÆÄÀÏÇϰí, ½ÇÇàÆÄÀÏ¿¡´Ù »õ·Î ¸µÅ©ÇÑ´Ù. À̷μ + ¿¬»êÀÚ¸¦ ¾µ ¼ö ÀÖ´Ù. ¹®Á¦´Â ¹®ÀÚ¿ÀÇ + ¿¬»êÀ» ¸·¾Æ³õÀº ÀÌÀ¯°¡ ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¹®ÀÚ¿Àº º¯°æÀÌ ºÒ°¡´ÉÇÑ(immutable) °ªÀÌ´Ù. ±×·¯¹Ç·Î ¹®ÀÚ¿ ÇÕÄ¡±â ¿¬»êÀ» ¼öÇàÇÏ´Â °æ¿ì, ±âÁ¸ÀÇ ¹®ÀÚ¿ÀÇ °ªÀÌ º¯°æµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó, »õ·Î¿î ¹®ÀÚ¿ °´Ã¼°¡ »ý¼ºµÈ´Ù. ¿¹¸¦ µé¾î ¾Æ·¡¿Í °°Àº ÄÚµå´Â ¸Þ¸ð¸®¸¦ ¼ø½Ä°£¿¡ Àâ¾Æ¸Ô¾î¹ö¸°´Ù.
str = "aaa"
for i=1,1000 do
str = str .. "bbb"
end ¸Å ·çÇÁ¸¶´Ù »õ·Î¿î ¹®ÀÚ¿ °´Ã¼°¡ »ý¼ºµÇ´Âµ¥, °¡ºñÁö Ä÷ºÅͰ¡ È£ÃâµÉ Æ´ÀÌ ¾øÀ¸¹Ç·Î, ±× ¹®ÀÚ¿µéÀº °í½º¶õÈ÷ ¸Þ¸ð¸®¿¡ ³²¾ÆÀÖ°Ô µÇ´Â °ÍÀÌ´Ù. ÀÌ·± ¹®Á¦ ¶§¹®¿¡ ¹®ÀÚ¿ ¿¬»êÀ» ÀϺη¯ ±ÍÂú°Ô ¸¸µé¾î ³õÀº °Ô ¾Æ´Ñ°¡ ÇÏ°í »ý°¢ÇÏÁö¸¸ Áõ°Å´Â ¾ø´Ù.
(ÀÌ ¹®Á¦´Â table.concat ÇÔ¼ö¸¦ ÀÌ¿ëÇØ ÇØ°áÇÒ ¼ö ÀÖ´Ù.)
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)