• R/O
  • SSH
  • HTTPS

ttssh2: 提交


Commit MetaInfo

修订版8949 (tree)
时间2020-10-03 00:46:34
作者zmatsuo

Log Message

ttdde.c 内で変数 FileVar の参照をなくした

- 各通信プロトコルの受信送信開始関数を追加

更改概述

差异

--- trunk/teraterm/teraterm/filesys.cpp (revision 8948)
+++ trunk/teraterm/teraterm/filesys.cpp (revision 8949)
@@ -376,6 +376,24 @@
376376 FileTransEnd(OpSendFile);
377377 }
378378
379+BOOL FileSendStart2(const char *filename, int binary)
380+{
381+ if (SendVar != NULL) {
382+ return FALSE;
383+ }
384+ if (!NewFileVar(&SendVar)) {
385+ return FALSE;
386+ }
387+
388+ SendVar->DirLen = 0;
389+ strncpy_s(SendVar->FullName, sizeof(SendVar->FullName), filename, _TRUNCATE);
390+ ts.TransBin = binary;
391+ SendVar->NoMsg = TRUE;
392+ FileSendStart();
393+
394+ return TRUE;
395+}
396+
379397 void FileTransEnd(WORD OpId)
380398 /* OpId = 0: close Log and FileSend
381399 OpLog: close Log
@@ -835,6 +853,64 @@
835853 ProtoEnd();
836854 }
837855
856+BOOL KermitStartSend(const char *filename)
857+{
858+ if (FileVar !=NULL)
859+ return FALSE;
860+ if (!NewFileVar(&FileVar))
861+ return FALSE;
862+
863+ FileVar->DirLen = 0;
864+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),filename, _TRUNCATE);
865+ FileVar->NumFname = 1;
866+ FileVar->NoMsg = TRUE;
867+ KermitStart(IdKmtSend);
868+
869+ return TRUE;
870+}
871+
872+BOOL KermitGet(const char *filename)
873+{
874+ if (FileVar !=NULL)
875+ return FALSE;
876+ if (!NewFileVar(&FileVar))
877+ return FALSE;
878+
879+ FileVar->DirLen = 0;
880+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),filename, _TRUNCATE);
881+ FileVar->NumFname = 1;
882+ FileVar->NoMsg = TRUE;
883+ KermitStart(IdKmtGet);
884+
885+ return TRUE;
886+}
887+
888+BOOL KermitStartRecive(void)
889+{
890+ if (FileVar !=NULL)
891+ return FALSE;
892+ if (!NewFileVar(&FileVar))
893+ return FALSE;
894+
895+ FileVar->NoMsg = TRUE;
896+ KermitStart(IdKmtReceive);
897+
898+ return TRUE;
899+}
900+
901+BOOL KermitFinish(void)
902+{
903+ if (FileVar !=NULL)
904+ return FALSE;
905+ if (!NewFileVar(&FileVar))
906+ return FALSE;
907+
908+ FileVar->NoMsg = TRUE;
909+ KermitStart(IdKmtFinish);
910+
911+ return TRUE;
912+}
913+
838914 void XMODEMStart(int mode)
839915 {
840916 LONG Option;
@@ -922,6 +998,70 @@
922998 ProtoEnd();
923999 }
9241000
1001+BOOL XMODEMStartReceive(const char *fiename, WORD ParamBinaryFlag, WORD ParamXmodemOpt)
1002+{
1003+ if (FileVar !=NULL)
1004+ return FALSE;
1005+ if (!NewFileVar(&FileVar))
1006+ return FALSE;
1007+
1008+ FileVar->DirLen = 0;
1009+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),fiename, _TRUNCATE);
1010+ if (IsXopt1k(ts.XmodemOpt)) {
1011+ if (IsXoptCRC(ParamXmodemOpt)) {
1012+ // CRC
1013+ ts.XmodemOpt = Xopt1kCRC;
1014+ }
1015+ else { // Checksum
1016+ ts.XmodemOpt = Xopt1kCksum;
1017+ }
1018+ }
1019+ else {
1020+ if (IsXoptCRC(ParamXmodemOpt)) {
1021+ ts.XmodemOpt = XoptCRC;
1022+ }
1023+ else {
1024+ ts.XmodemOpt = XoptCheck;
1025+ }
1026+ }
1027+ ts.XmodemBin = ParamBinaryFlag;
1028+ FileVar->NoMsg = TRUE;
1029+ XMODEMStart(IdXReceive);
1030+
1031+ return TRUE;
1032+}
1033+
1034+BOOL XMODEMStartSend(const char *fiename, WORD ParamXmodemOpt)
1035+{
1036+ if (FileVar !=NULL)
1037+ return FALSE;
1038+ if (!NewFileVar(&FileVar))
1039+ return FALSE;
1040+
1041+ FileVar->DirLen = 0;
1042+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName), fiename, _TRUNCATE);
1043+ if (IsXoptCRC(ts.XmodemOpt)) {
1044+ if (IsXopt1k(ParamXmodemOpt)) {
1045+ ts.XmodemOpt = Xopt1kCRC;
1046+ }
1047+ else {
1048+ ts.XmodemOpt = XoptCRC;
1049+ }
1050+ }
1051+ else {
1052+ if (IsXopt1k(ParamXmodemOpt)) {
1053+ ts.XmodemOpt = Xopt1kCksum;
1054+ }
1055+ else {
1056+ ts.XmodemOpt = XoptCheck;
1057+ }
1058+ }
1059+ FileVar->NoMsg = TRUE;
1060+ XMODEMStart(IdXSend);
1061+
1062+ return TRUE;
1063+}
1064+
9251065 void YMODEMStart(int mode)
9261066 {
9271067 WORD Opt;
@@ -967,6 +1107,36 @@
9671107 ProtoEnd();
9681108 }
9691109
1110+BOOL YMODEMStartReceive()
1111+{
1112+ if (FileVar != NULL) {
1113+ return FALSE;
1114+ }
1115+ if (!NewFileVar(&FileVar)) {
1116+ return FALSE;
1117+ }
1118+ FileVar->NoMsg = TRUE;
1119+ YMODEMStart(IdYReceive);
1120+ return TRUE;
1121+}
1122+
1123+BOOL YMODEMStartSend(const char *fiename)
1124+{
1125+ if (FileVar != NULL) {
1126+ return FALSE;
1127+ }
1128+ if (!NewFileVar(&FileVar)) {
1129+ return FALSE;
1130+ }
1131+
1132+ FileVar->DirLen = 0;
1133+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),fiename, _TRUNCATE);
1134+ FileVar->NumFname = 1;
1135+ FileVar->NoMsg = TRUE;
1136+ YMODEMStart(IdYSend);
1137+ return TRUE;
1138+}
1139+
9701140 void ZMODEMStart(int mode)
9711141 {
9721142 WORD Opt;
@@ -1008,6 +1178,41 @@
10081178 ProtoEnd();
10091179 }
10101180
1181+BOOL ZMODEMStartReceive(void)
1182+{
1183+ if (FileVar != NULL) {
1184+ return FALSE;
1185+ }
1186+ if (!NewFileVar(&FileVar)) {
1187+ return FALSE;
1188+ }
1189+
1190+ FileVar->NoMsg = TRUE;
1191+ ZMODEMStart(IdZReceive);
1192+
1193+ return TRUE;
1194+}
1195+
1196+BOOL ZMODEMStartSend(const char *fiename, WORD ParamBinaryFlag)
1197+{
1198+ if (FileVar != NULL) {
1199+ return FALSE;
1200+ }
1201+ if (!NewFileVar(&FileVar)) {
1202+ return FALSE;
1203+ }
1204+
1205+ FileVar->DirLen = 0;
1206+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),fiename, _TRUNCATE);
1207+ FileVar->NumFname = 1;
1208+ ts.XmodemBin = ParamBinaryFlag;
1209+ FileVar->NoMsg = TRUE;
1210+
1211+ ZMODEMStart(IdZSend);
1212+
1213+ return TRUE;
1214+}
1215+
10111216 void BPStart(int mode)
10121217 {
10131218 LONG Option = 0;
@@ -1043,6 +1248,37 @@
10431248 ProtoEnd();
10441249 }
10451250
1251+BOOL BPSendStart(const char *filename)
1252+{
1253+ if (FileVar != NULL) {
1254+ return FALSE;
1255+ }
1256+ if (!NewFileVar(&FileVar)) {
1257+ return FALSE;
1258+ }
1259+
1260+ FileVar->DirLen = 0;
1261+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName), filename, _TRUNCATE);
1262+ FileVar->NumFname = 1;
1263+ FileVar->NoMsg = TRUE;
1264+ BPStart(IdBPSend);
1265+
1266+ return TRUE;
1267+}
1268+
1269+BOOL BPStartReceive(void)
1270+{
1271+ if (FileVar != NULL)
1272+ return FALSE;
1273+ if (!NewFileVar(&FileVar))
1274+ return FALSE;
1275+
1276+ FileVar->NoMsg = TRUE;
1277+ BPStart(IdBPReceive);
1278+
1279+ return TRUE;
1280+}
1281+
10461282 void QVStart(int mode)
10471283 {
10481284 WORD W;
@@ -1079,7 +1315,39 @@
10791315 ProtoEnd();
10801316 }
10811317
1318+BOOL QVStartReceive(void)
1319+{
1320+ if (FileVar != NULL) {
1321+ return FALSE;
1322+ }
1323+ if (!NewFileVar(&FileVar)) {
1324+ return FALSE;
1325+ }
10821326
1327+ FileVar->NoMsg = TRUE;
1328+ QVStart(IdQVReceive);
1329+
1330+ return TRUE;
1331+}
1332+
1333+BOOL QVStartSend(const char *filename)
1334+{
1335+ if (FileVar != NULL) {
1336+ return FALSE;
1337+ }
1338+ if (!NewFileVar(&FileVar)) {
1339+ return FALSE;
1340+ }
1341+
1342+ FileVar->DirLen = 0;
1343+ strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),filename, _TRUNCATE);
1344+ FileVar->NumFname = 1;
1345+ FileVar->NoMsg = TRUE;
1346+ QVStart(IdQVSend);
1347+
1348+ return TRUE;
1349+}
1350+
10831351 BOOL IsSendVarNULL()
10841352 {
10851353 return SendVar == NULL;
--- trunk/teraterm/teraterm/filesys.h (revision 8948)
+++ trunk/teraterm/teraterm/filesys.h (revision 8949)
@@ -72,12 +72,13 @@
7272
7373 BOOL LoadTTFILE(void);
7474 BOOL FreeTTFILE(void);
75-BOOL NewFileVar(PFileVar *FV);
76-void FreeFileVar(PFileVar *FV);
75+//BOOL NewFileVar(PFileVar *FV);
76+//void FreeFileVar(PFileVar *FV);
7777 BOOL IsSendVarNULL();
7878 BOOL IsFileVarNULL();
7979
8080 void FileSendStart(void);
81+BOOL FileSendStart2(const char *filename, int binary);
8182 void FileSend(void);
8283 void FileTransEnd(WORD OpId);
8384 void FileTransPause(WORD OpId, BOOL Pause);
@@ -87,11 +88,25 @@
8788 void ProtoDlgTimeOut(void);
8889 void ProtoDlgCancel(void);
8990 void KermitStart(int mode);
91+BOOL KermitStartSend(const char *filename);
92+BOOL KermitGet(const char *filename);
93+BOOL KermitStartRecive(void);
94+BOOL KermitFinish(void);
9095 void XMODEMStart(int mode);
96+BOOL XMODEMStartReceive(const char *fiename, WORD ParamBinaryFlag, WORD ParamXmodemOpt);
97+BOOL XMODEMStartSend(const char *fiename, WORD ParamXmodemOpt);
9198 void YMODEMStart(int mode);
99+BOOL YMODEMStartReceive(void);
100+BOOL YMODEMStartSend(const char *fiename);
92101 void ZMODEMStart(int mode);
102+BOOL ZMODEMStartReceive(void);
103+BOOL ZMODEMStartSend(const char *fiename, WORD ParamBinaryFlag);
93104 void BPStart(int mode);
105+BOOL BPSendStart(const char *filename);
106+BOOL BPStartReceive(void);
94107 void QVStart(int mode);
108+BOOL QVStartReceive(void);
109+BOOL QVStartSend(const char *filename);
95110
96111 extern PFileVar SendVar, FileVar;
97112
--- trunk/teraterm/teraterm/ttdde.c (revision 8948)
+++ trunk/teraterm/teraterm/ttdde.c (revision 8949)
@@ -426,24 +426,15 @@
426426 SyncRecv = TRUE;
427427 break;
428428 case CmdBPlusRecv:
429- if ((FileVar==NULL) && NewFileVar(&FileVar))
430- {
431- FileVar->NoMsg = TRUE;
429+ if (BPStartReceive()) {
432430 DdeCmnd = TRUE;
433- BPStart(IdBPReceive);
434431 }
435432 else
436433 return DDE_FNOTPROCESSED;
437434 break;
438435 case CmdBPlusSend:
439- if ((FileVar==NULL) && NewFileVar(&FileVar))
440- {
441- FileVar->DirLen = 0;
442- strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),ParamFileName, _TRUNCATE);
443- FileVar->NumFname = 1;
444- FileVar->NoMsg = TRUE;
436+ if (!BPSendStart(ParamFileName)) {
445437 DdeCmnd = TRUE;
446- BPStart(IdBPSend);
447438 }
448439 else
449440 return DDE_FNOTPROCESSED;
@@ -516,34 +507,30 @@
516507 }
517508 break;
518509 case CmdKmtFinish:
510+ if (KermitFinish()) {
511+ DdeCmnd = TRUE;
512+ }
513+ else {
514+ return DDE_FNOTPROCESSED;
515+ }
516+ break;
519517 case CmdKmtRecv:
520- if ((FileVar==NULL) && NewFileVar(&FileVar))
521- {
522- FileVar->NoMsg = TRUE;
518+ if (KermitStartRecive()) {
523519 DdeCmnd = TRUE;
524- if (Command[0]==CmdKmtFinish)
525- i = IdKmtFinish;
526- else
527- i = IdKmtReceive;
528- KermitStart(i);
529520 }
530521 else
531522 return DDE_FNOTPROCESSED;
532523 break;
533524 case CmdKmtGet:
525+ if (KermitGet(ParamFileName)) {
526+ DdeCmnd = TRUE;
527+ }
528+ else
529+ return DDE_FNOTPROCESSED;
530+ break;
534531 case CmdKmtSend:
535- if ((FileVar==NULL) && NewFileVar(&FileVar))
536- {
537- FileVar->DirLen = 0;
538- strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),ParamFileName, _TRUNCATE);
539- FileVar->NumFname = 1;
540- FileVar->NoMsg = TRUE;
532+ if (KermitStartSend(ParamFileName)) {
541533 DdeCmnd = TRUE;
542- if (Command[0]==CmdKmtGet)
543- i = IdKmtGet;
544- else
545- i = IdKmtSend;
546- KermitStart(i);
547534 }
548535 else
549536 return DDE_FNOTPROCESSED;
@@ -604,24 +591,15 @@
604591 break;
605592 }
606593 case CmdQVRecv:
607- if ((FileVar==NULL) && NewFileVar(&FileVar))
608- {
609- FileVar->NoMsg = TRUE;
594+ if (QVStartReceive()) {
610595 DdeCmnd = TRUE;
611- QVStart(IdQVReceive);
612596 }
613597 else
614598 return DDE_FNOTPROCESSED;
615599 break;
616600 case CmdQVSend:
617- if ((FileVar==NULL) && NewFileVar(&FileVar))
618- {
619- FileVar->DirLen = 0;
620- strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),ParamFileName, _TRUNCATE);
621- FileVar->NumFname = 1;
622- FileVar->NoMsg = TRUE;
601+ if (QVStartSend(ParamFileName)) {
623602 DdeCmnd = TRUE;
624- QVStart(IdQVSend);
625603 }
626604 else
627605 return DDE_FNOTPROCESSED;
@@ -634,14 +612,8 @@
634612 PostMessage(HVTWin,WM_USER_ACCELCOMMAND,IdBreak,0);
635613 break;
636614 case CmdSendFile:
637- if ((SendVar==NULL) && NewFileVar(&SendVar))
638- {
639- SendVar->DirLen = 0;
640- strncpy_s(SendVar->FullName, sizeof(SendVar->FullName),ParamFileName, _TRUNCATE);
641- ts.TransBin = ParamBinaryFlag;
642- SendVar->NoMsg = TRUE;
615+ if (FileSendStart2(ParamFileName, ParamBinaryFlag)) {
643616 DdeCmnd = TRUE;
644- FileSendStart();
645617 }
646618 else
647619 return DDE_FNOTPROCESSED;
@@ -691,83 +663,29 @@
691663 }
692664 break;
693665 case CmdXmodemRecv:
694- if ((FileVar==NULL) && NewFileVar(&FileVar))
695- {
696- FileVar->DirLen = 0;
697- strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),ParamFileName, _TRUNCATE);
698- if (IsXopt1k(ts.XmodemOpt)) {
699- if (IsXoptCRC(ParamXmodemOpt)) {
700- // CRC
701- ts.XmodemOpt = Xopt1kCRC;
702- }
703- else { // Checksum
704- ts.XmodemOpt = Xopt1kCksum;
705- }
706- }
707- else {
708- if (IsXoptCRC(ParamXmodemOpt)) {
709- ts.XmodemOpt = XoptCRC;
710- }
711- else {
712- ts.XmodemOpt = XoptCheck;
713- }
714- }
715- ts.XmodemBin = ParamBinaryFlag;
716- FileVar->NoMsg = TRUE;
666+ if (XMODEMStartSend(ParamFileName, ParamXmodemOpt)) {
717667 DdeCmnd = TRUE;
718- XMODEMStart(IdXReceive);
719668 }
720669 else
721670 return DDE_FNOTPROCESSED;
722671 break;
723672 case CmdXmodemSend:
724- if ((FileVar==NULL) && NewFileVar(&FileVar))
725- {
726- FileVar->DirLen = 0;
727- strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),ParamFileName, _TRUNCATE);
728- if (IsXoptCRC(ts.XmodemOpt)) {
729- if (IsXopt1k(ParamXmodemOpt)) {
730- ts.XmodemOpt = Xopt1kCRC;
731- }
732- else {
733- ts.XmodemOpt = XoptCRC;
734- }
735- }
736- else {
737- if (IsXopt1k(ParamXmodemOpt)) {
738- ts.XmodemOpt = Xopt1kCksum;
739- }
740- else {
741- ts.XmodemOpt = XoptCheck;
742- }
743- }
744- FileVar->NoMsg = TRUE;
673+ if (XMODEMStartReceive(ParamFileName, ParamBinaryFlag, ParamXmodemOpt)) {
745674 DdeCmnd = TRUE;
746- XMODEMStart(IdXSend);
747675 }
748676 else
749677 return DDE_FNOTPROCESSED;
750678 break;
751679 case CmdZmodemRecv:
752- if ((FileVar==NULL) && NewFileVar(&FileVar))
753- {
754- FileVar->NoMsg = TRUE;
680+ if (ZMODEMStartReceive()) {
755681 DdeCmnd = TRUE;
756- ZMODEMStart(IdZReceive);
757682 }
758683 else
759684 return DDE_FNOTPROCESSED;
760685 break;
761686 case CmdZmodemSend:
762- if ((FileVar==NULL) && NewFileVar(&FileVar))
763- {
764- FileVar->DirLen = 0;
765- strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),ParamFileName, _TRUNCATE);
766- FileVar->NumFname = 1;
767- ts.XmodemBin = ParamBinaryFlag;
768- FileVar->NoMsg = TRUE;
687+ if (ZMODEMStartSend(ParamFileName, ParamBinaryFlag)) {
769688 DdeCmnd = TRUE;
770- ZMODEMStart(IdZSend);
771689 }
772690 else
773691 return DDE_FNOTPROCESSED;
@@ -774,25 +692,16 @@
774692 break;
775693
776694 case CmdYmodemRecv:
777- if ((FileVar==NULL) && NewFileVar(&FileVar))
695+ if (YMODEMStartReceive())
778696 {
779- FileVar->NoMsg = TRUE;
780697 DdeCmnd = TRUE;
781- YMODEMStart(IdYReceive);
782698 }
783699 else
784700 return DDE_FNOTPROCESSED;
785701 break;
786702 case CmdYmodemSend:
787- if ((FileVar==NULL) && NewFileVar(&FileVar))
788- {
789- FileVar->DirLen = 0;
790- strncpy_s(FileVar->FullName, sizeof(FileVar->FullName),ParamFileName, _TRUNCATE);
791- FileVar->NumFname = 1;
792- //ts.XmodemBin = ParamBinaryFlag;
793- FileVar->NoMsg = TRUE;
703+ if (YMODEMStartSend(ParamFileName)) {
794704 DdeCmnd = TRUE;
795- YMODEMStart(IdYSend);
796705 }
797706 else
798707 return DDE_FNOTPROCESSED;
Show on old repository browser