diff options
Diffstat (limited to 'japanese/slirc/files/patch-editor.sl')
| -rw-r--r-- | japanese/slirc/files/patch-editor.sl | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/japanese/slirc/files/patch-editor.sl b/japanese/slirc/files/patch-editor.sl new file mode 100644 index 000000000000..1566a6193eb4 --- /dev/null +++ b/japanese/slirc/files/patch-editor.sl @@ -0,0 +1,109 @@ +--- scripts/editor.sl.orig Mon Jun 7 16:07:23 1999 ++++ scripts/editor.sl Sat Jan 6 21:23:30 2001 +@@ -35,6 +35,13 @@ + { + irc_edit_insert_pos--; + buf = chop_last(irc_buffer); ++#ifdef KANJI ++ if(iskanji(irc_buffer[irc_edit_insert_pos])) ++ { ++ irc_edit_insert_pos--; ++ buf = substr(irc_buffer, 1, irc_edit_insert_pos); ++ } ++#endif + irc_set_buffer(buf); + } + else +@@ -42,6 +49,14 @@ + irc_edit_insert_pos--; + buf = substr(irc_buffer, 1, irc_edit_insert_pos) + + substr(irc_buffer, irc_edit_insert_pos + 2, -1); ++#ifdef KANJI ++ if(iskanji(irc_buffer[irc_edit_insert_pos])) ++ { ++ irc_edit_insert_pos--; ++ buf = substr(irc_buffer, 1, irc_edit_insert_pos) ++ + substr(irc_buffer, irc_edit_insert_pos + 3, -1); ++ } ++#endif + irc_set_buffer(buf); + } + !if(irc_edit_insert_pos) +@@ -67,10 +82,25 @@ + if(ch < 0x0a0) return; % ISO-LATIN-1 are 0xa0-0xff + } + variable buf; ++#ifdef KANJI ++ variable keysym; ++#endif + if(irc_edit_insert_pos >= strlen(irc_buffer)) + { ++#ifdef KANJI ++ buf = irc_buffer + char(ch); ++ irc_edit_insert_pos = strlen(buf); ++ if (iskanji(ch)) ++ { ++ keysym = irc_get_input(); ++ buf = irc_buffer + char(ch) + char(keysym); ++ irc_edit_insert_pos = strlen(buf); ++ } ++ irc_set_buffer(buf); ++#else + irc_set_buffer(irc_buffer + char(ch)); + irc_edit_insert_pos = strlen(irc_buffer); ++#endif + } + else + { +@@ -78,12 +108,30 @@ + { + buf = char(ch) + irc_buffer; + irc_edit_insert_pos = 1; ++#ifdef KANJI ++ if (iskanji(ch)) ++ { ++ keysym = irc_get_input(); ++ buf = char(ch) + char(keysym) + irc_buffer; ++ irc_edit_insert_pos = 2; ++ } ++#endif + } + else + { + buf = substr(irc_buffer, 1, irc_edit_insert_pos) + + char(ch) + + substr(irc_buffer, irc_edit_insert_pos + 1, -1); ++#ifdef KANJI ++ if (iskanji(ch)) ++ { ++ keysym = irc_get_input(); ++ buf = substr(irc_buffer, 1, irc_edit_insert_pos) ++ + char(ch) + char(keysym) ++ + substr(irc_buffer, irc_edit_insert_pos + 1, -1); ++ irc_edit_insert_pos++; ++ } ++#endif + irc_edit_insert_pos++; + } + irc_set_buffer(buf); +@@ -96,10 +144,20 @@ + { + if(irc_edit_insert_pos > 0) + irc_edit_insert_pos --; ++#ifdef KANJI ++ if(irc_edit_insert_pos > 0) ++ if(iskanji(irc_buffer[irc_edit_insert_pos])) ++ irc_edit_insert_pos--; ++#endif + } + + define do_scroll_right() + { ++#ifdef KANJI ++ if(irc_edit_insert_pos < strlen(irc_buffer)) ++ if(iskanji(irc_buffer[irc_edit_insert_pos])) ++ irc_edit_insert_pos++; ++#endif + if(irc_edit_insert_pos < strlen(irc_buffer)) + irc_edit_insert_pos++; + } |
