svnno****@sourc*****
svnno****@sourc*****
2015年 4月 7日 (火) 13:51:33 JST
Revision: 5833 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5833 Author: doda Date: 2015-04-07 13:51:31 +0900 (Tue, 07 Apr 2015) Log Message: ----------- filewrite/filewritelnで、数値を受け付けるようにした。[ttssh2-devel 2460] 数値を渡された場合は、sendと同様に数値に対応した文字を書き込む。 Modified Paths: -------------- trunk/teraterm/ttpmacro/ttl.c -------------- next part -------------- Modified: trunk/teraterm/ttpmacro/ttl.c =================================================================== --- trunk/teraterm/ttpmacro/ttl.c 2015-03-27 09:05:42 UTC (rev 5832) +++ trunk/teraterm/ttpmacro/ttl.c 2015-04-07 04:51:31 UTC (rev 5833) @@ -1961,39 +1961,43 @@ return Err; } -WORD TTLFileWrite() +WORD TTLFileWrite(BOOL addCRLF) { - WORD Err; - int FH; + WORD Err, P; + int FH, Val; TStrVal Str; Err = 0; - GetIntVal(&FH,&Err); - GetStrVal(Str,&Err); - if ((Err==0) && (GetFirstChar()!=0)) - Err = ErrSyntax; - if (Err!=0) return Err; + GetIntVal(&FH, &Err); + if (Err) return Err; - _lwrite(FH,Str,strlen(Str)); - return Err; -} + P = LinePtr; + GetStrVal(Str, &Err); + if (!Err) { + if (GetFirstChar()) + return ErrSyntax; -WORD TTLFileWriteLn() -{ - WORD Err; - int FH; - TStrVal Str; + _lwrite(FH, Str, strlen(Str)); + } + else if (Err == ErrTypeMismatch) { + Err = 0; + LinePtr = P; + GetIntVal(&Val, &Err); + if (Err) return Err; + if (GetFirstChar()) + return ErrSyntax; - Err = 0; - GetIntVal(&FH,&Err); - GetStrVal(Str,&Err); - if ((Err==0) && (GetFirstChar()!=0)) - Err = ErrSyntax; - if (Err!=0) return Err; + Str[0] = Val & 0xff; + _lwrite(FH, Str, 1); + } + else { + return Err; + } - _lwrite(FH,Str,strlen(Str)); - _lwrite(FH,"\015\012",2); - return Err; + if (addCRLF) { + _lwrite(FH,"\015\012",2); + } + return 0; } WORD TTLFindClose() @@ -6009,9 +6013,9 @@ case RsvFileTruncate: Err = TTLFileTruncate(); break; case RsvFileWrite: - Err = TTLFileWrite(); break; + Err = TTLFileWrite(FALSE); break; case RsvFileWriteLn: - Err = TTLFileWriteLn(); break; + Err = TTLFileWrite(TRUE); break; case RsvFindClose: Err = TTLFindClose(); break; case RsvFindFirst: