Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/commlib.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2577 by doda, Fri Aug 15 14:35:43 2008 UTC revision 2581 by doda, Mon Sep 8 04:03:08 2008 UTC
# Line 485  void CommOpen(HWND HW, PTTSet ts, PComVa Line 485  void CommOpen(HWND HW, PTTSet ts, PComVa
485  #endif /* NO_INET6 */  #endif /* NO_INET6 */
486    
487      case IdSerial:      case IdSerial:
488        InitFileIO();  /* TTPLUG */        InitFileIO(IdSerial);  /* TTPLUG */
489        TTXOpenFile(); /* TTPLUG */        TTXOpenFile(); /* TTPLUG */
490        _snprintf_s(P, sizeof(P), _TRUNCATE, "COM%d", ts->ComPort);        _snprintf_s(P, sizeof(P), _TRUNCATE, "COM%d", ts->ComPort);
491        strncpy_s(ErrMsg, sizeof(ErrMsg),P, _TRUNCATE);        strncpy_s(ErrMsg, sizeof(ErrMsg),P, _TRUNCATE);
# Line 524  void CommOpen(HWND HW, PTTSet ts, PComVa Line 524  void CommOpen(HWND HW, PTTSet ts, PComVa
524        break; /* end of "case IdSerial:" */        break; /* end of "case IdSerial:" */
525    
526      case IdFile:      case IdFile:
527        InitFileIO();  /* TTPLUG */        InitFileIO(IdFile);  /* TTPLUG */
528        TTXOpenFile(); /* TTPLUG */        TTXOpenFile(); /* TTPLUG */
529        cv->ComID = PCreateFile(ts->HostName,GENERIC_READ,0,NULL,        cv->ComID = PCreateFile(ts->HostName,GENERIC_READ,0,NULL,
530                               OPEN_EXISTING,0,NULL);                               OPEN_EXISTING,0,NULL);
# Line 683  void CommStart(PComVar cv, LONG lParam, Line 683  void CommStart(PComVar cv, LONG lParam,
683          MessageBox(cv->HWin,ts->UIMsg,uimsg,MB_TASKMODAL | MB_ICONEXCLAMATION);          MessageBox(cv->HWin,ts->UIMsg,uimsg,MB_TASKMODAL | MB_ICONEXCLAMATION);
684        }        }
685        break;        break;
686      case IdFile: cv->RRQ = TRUE; break;  
687        case IdFile:
688          cv->RRQ = TRUE;
689          break;
690    }    }
691    cv->Ready = TRUE;    cv->Ready = TRUE;
692  }  }
# Line 820  void CommReceive(PComVar cv) Line 823  void CommReceive(PComVar cv)
823          ClearCommError(cv->ComID,&DErr,NULL);          ClearCommError(cv->ComID,&DErr,NULL);
824          break;          break;
825        case IdFile:        case IdFile:
826          PReadFile(cv->ComID,&(cv->InBuff[cv->InBuffCount]),          if (PReadFile(cv->ComID,&(cv->InBuff[cv->InBuffCount]),
827                   InBuffSize-cv->InBuffCount,&C,NULL);            InBuffSize-cv->InBuffCount,&C,NULL))
828          cv->InBuffCount = cv->InBuffCount + C;          {
829              if (C == 0) {
830                DErr = ERROR_HANDLE_EOF;
831              }
832              else {
833                cv->InBuffCount = cv->InBuffCount + C;
834              }
835            }
836            else {
837              DErr = GetLastError();
838            }
839          break;          break;
840      }      }
841    }    }
842    
843    if (cv->InBuffCount==0)    if (cv->InBuffCount==0) {
   {  
844      switch (cv->PortType) {      switch (cv->PortType) {
845        case IdTCPIP:        case IdTCPIP:
846          if (! TCPIPClosed)          if (! TCPIPClosed)
# Line 840  void CommReceive(PComVar cv) Line 852  void CommReceive(PComVar cv)
852          SetEvent(ReadEnd);          SetEvent(ReadEnd);
853          return;          return;
854        case IdFile:        case IdFile:
855          PostMessage(cv->HWin, WM_USER_COMMNOTIFY, 0, FD_CLOSE);          if (DErr != ERROR_IO_PENDING) {
856          break;            PostMessage(cv->HWin, WM_USER_COMMNOTIFY, 0, FD_CLOSE);
857              cv->RRQ = FALSE;
858            }
859            else {
860              cv->RRQ = TRUE;
861            }
862            return;
863      }      }
864      cv->RRQ = FALSE;      cv->RRQ = FALSE;
   
865    }    }
866  }  }
867    
# Line 874  void CommSend(PComVar cv) Line 891  void CommSend(PComVar cv)
891        ClearCommError(cv->ComID,&DErr,&Stat);        ClearCommError(cv->ComID,&DErr,&Stat);
892        Max = OutBuffSize - Stat.cbOutQue;        Max = OutBuffSize - Stat.cbOutQue;
893        break;        break;
894      case IdFile: Max = cv->OutBuffCount;      case IdFile:
895          Max = cv->OutBuffCount;
896        break;        break;
897    }    }
898    
# Line 936  void CommSend(PComVar cv) Line 954  void CommSend(PComVar cv)
954        }        }
955        ClearCommError(cv->ComID,&DErr,&Stat);        ClearCommError(cv->ComID,&DErr,&Stat);
956        break;        break;
957      case IdFile: D = C; break;  
958        case IdFile:
959          if (! PWriteFile(cv->ComID, &(cv->OutBuff[cv->OutPtr]), C, (LPDWORD)&D, NULL)) {
960            if (! GetLastError() == ERROR_IO_PENDING) {
961              D = C; /* ignore data */
962            }
963          }
964          break;
965    }    }
966    
967    cv->OutBuffCount = cv->OutBuffCount - D;    cv->OutBuffCount = cv->OutBuffCount - D;

Legend:
Removed from v.2577  
changed lines
  Added in v.2581

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26