iTerm ペースト時のエンマークの文字化けを回避するPatch
iTermでペースト時にエンマークが文字化けする問題を回避するPatchをつくりました。
これで快適にPerlのワンライナーを書ける。
普通に文字を挿入する時と、ペーストするときと、処理が異なっていて、ペースト時に¥(円記号)をコンバートしないようになっていたので、文字を挿入するときのプログラムをコピー。
初めて、Xcodeを触って、Objective-Cもはじめて見る。非常に自信ない。
max = [aString length];は合っているのだろうか。。
以下Patch
Index: PTYSession.m
===================================================================
RCS file: /cvsroot/iterm/iTerm/PTYSession.m,v
retrieving revision 1.252
diff --unified=3 -r1.252 PTYSession.m
--- PTYSession.m 18 May 2004 06:52:23 -0000 1.252
+++ PTYSession.m 27 Aug 2004 09:15:52 -0000
@@ -824,7 +824,19 @@
if ([aString length] > 0)
{
- NSData *strdata = [[aString stringReplaceSubstringFrom:@"\n" to:@"\r"]
+
+ NSMutableString *mstring;
+ int i, max;
+
+ mstring = [NSMutableString stringWithString:aString];
+ max = [aString length];
+ for(i=0; i<max; i++) {
+ if ([mstring characterAtIndex:i] == 0xa5) {
+ [mstring replaceCharactersInRange:NSMakeRange(i, 1) withString:@"\\"];
+ }
+ }
+
+ NSData *strdata = [[mstring stringReplaceSubstringFrom:@"\n" to:@"\r"]
dataUsingEncoding:[TERMINAL encoding]
allowLossyConversion:YES];
</pre>
なぜ、0x5cでもなく0xb4でもなく0x80でもなく、0xa5なのか、よくわからなかったり。
はやくSafariの文字化けをなおしてください to Apple