ÀÌÀü ¹®ÀÚ¸¦ ã´Â GetPrevOff ÇÔ¼ö´Â ¹®ÀÚÀÇ °æ°è¿¡ °ÉÄ¡´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ Ç×»ó ¹öÆÛÀÇ Ã³À½ºÎÅÍ ¹®ÀÚµéÀ» °Ë»öÇϵµ·Ï µÇ¾î ÀÖ´Ù. MBCS¿¡¼ ÀÌÀü ¹®ÀÚ¸¦ Á¤È®ÇÏ°Ô Ã£±â À§Çؼ´Â ÀÌ ¹æ¹ýÀÌ °¡Àå È®½ÇÇϱâ´Â Çϳª ¹®¼ ±æÀÌ°¡ ±æ¾îÁö¸é ³Ê¹« ºñÈ¿À²ÀûÀÓÀ» ½±°Ô Á÷°¨ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
±»ÀÌ ¹®¼ÀÇ Ã³À½ºÎÅÍ ½ÃÀÛÇÒ ÇÊ¿ä´Â ¾øÀ¸¸ç ¹®ÀÚÀÇ °æ°è°¡ ¾Æ´ÔÀ» È®½ÅÇÒ ¼ö ÀÖ´Â °÷À̶ó¸é Àû´çÈ÷ ¾Õ¿¡¼ºÎÅÍ ½ÃÀÛÇصµ µÈ´Ù. ±×·¡¼ ¾ÕÂÊÀ¸·Î °¡Àå °¡±î¿î °³ÇàÄڵ带 ãÀº ÈÄ °³ÇàÄÚµå ÀÌÈĺÎÅÍ °Ë»öÇϵµ·Ï ¼öÁ¤ÇÏ¿´´Ù.
int GetPrevOff(int nPos)
{
int n, size;
if (nPos==0) {
return 0;
}
for (n=nPos-1;n!=0;n--) {
if (buf[n]==¡®\r¡¯ && buf[n+1]==¡®\n¡¯) {
break;
}
}
for (;;) {
if (IsDBCS(n)) {
size=2;
} else {
size=1;
}
n+=size;
if (n >= nPos)
break;
}
return n-size;
}
¾Õ ÁÙÀÇ °³ÇàÄÚµåºÎÅÍ °Ë»öÀ» ½ÃÀÛÇϹǷΠȮ½ÇÇÏ°Ô ¹®ÀÚÀÇ °æ°è¿¡ °ÉÄ¡Áö ¾Ê°Ô µÉ °ÍÀÌ´Ù. ÀÌ ÇÔ¼ö¸¦ ¼öÁ¤ÇÔ¿¡ µû¶ó ¿ÞÂÊ À̵¿°ú BS 󸮰¡ ´õ »¡¶óÁö´Â °ÍÀº »ç½ÇÀÌÁö¸¸ ±× Â÷À̸¦ ü°¨ÇÏ´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù. ¿Ö³ÄÇϸé ÀÌ ÇÔ¼ö°¡ È£ÃâµÇ´Â ½ÃÁ¡Àº ·çÇÁ ³»¿¡¼°¡ ¾Æ´Ï¶ó »ç¿ëÀÚ°¡ ¿ÞÂÊ Ä¿¼À̵¿Å°¸¦ ´©¸¦ ¶§Àε¥ ¾Æ¹«¸® Å°¸¦ »¡¸® ´·¯µµ ÀÌ ÇÔ¼öÀÇ µ¿À۽𣺸´Ù »¡¸® ´©¸¦ ¼ö´Â ¾ø±â ¶§¹®ÀÌ´Ù.
¹®µæ ÀÌ·± ¾ê±â°¡ »ý°¢³´Ù. °©°ú À»ÀÌ È£Á£ÇÑ »ê±æÀ» °È´Ù°¡ °õÀ» ¸¸³µ´Ù. À»ÀÌ ¸ÕÀú °õÀ» ¹ß°ßÇߴµ¥ °©¿¡°Ô ¸»µµ ÇÏÁö ¾Ê°í È¥ÀÚ¼ ¶Ù¾ú´Ù. °ðÀÌ¾î °©µµ °õÀ» ¹ß°ßÇÏ°í °°ÀÌ ¶Ù±â ½ÃÀÛÇß´Ù. °©ÀÌ À»À» ¾ÕÁö¸£·Á ÇÏÀÚ À»ÀÌ ¡®´Ï°¡ ±×·¸°Ô ¶Ù¾îºÃÀÚ °õº¸´Ù »¡¸® ¶Û ¼ö ÀÖÀ» °Í °°¾Æ?¡¯, ±×·¯ÀÚ °©ÀÌ ¡®´©°¡ °õº¸´Ù »¡¸® ¶Ú µ¥? ³Êº¸´Ù »¡¸® ¶Ù±â¸¸ ÇÏ¸é µÅ!¡¯. »ç¿ëÀÚ°¡ È£ÃâÇÏ´Â ÇÔ¼ö´Â »ç¿ëÀÚº¸´Ù ºü¸£±â¸¸ ÇÏ¸é º° ¹®Á¦°¡ ¾øÀ¸¹Ç·Î ¼Óµµ°³¼±ÀÇ ¿ì¼± ¼øÀ§¸¦ ´Ê°Ô Àâ¾Æµµ »ó°ü¾ø´Ù.