static bool TryTTY( void ) { unsigned long num; char *end; if( DbgTerminal == NULL ) return( false ); num = strtoul( DbgTerminal, &end, 10 ); if( *end == NULLCHAR && num < 100 ) { DbgConsole = num; return( false ); } /* guy gave an explicit terminal name */ end = strchr( DbgTerminal, ':' ); if( end != NULL ) { /* and also told us the terminal type */ *end = NULLCHAR; SetTermType( strdup( end + 1 ) ); } DbgConHandle = open( DbgTerminal, O_RDWR ); if( DbgConHandle == -1 ) { StartupErr( "unable to open system console" ); } return( true ); }
void CChildFrame::SwitchShell(int nShellMode) { CString strMsg; CString strTemp; switch(nShellMode) { case SHELL_TCL: { LOADRCSTRING(strTemp, IDS_TERM_TCL) SetShell(strTemp); CString strTclInterpName = AfxGetApp()->GetProfileString(REG_PTERMINAL, REG_INTERPNAME, INTERP_NAME); LOADRCSTRING(strTemp, IDS_TCL_INTERP) strMsg.Format(strTemp, strTclInterpName); SetConnInfo(strMsg); LOADRCSTRING(strTemp, IDS_TERM_TYPE_STD) SetTermType(strTemp); } break; case SHELL_PYTHON: { LOADRCSTRING(strTemp, IDS_TERM_PYTHON) SetShell(strTemp); CString strPythonInterpName = AfxGetApp()->GetProfileString(REG_PTERMINAL, REG_INTERPNAME, INTERP_NAME); LOADRCSTRING(strTemp, IDS_PYTHON_INTERP) strMsg.Format(strTemp, strPythonInterpName); SetConnInfo(strMsg); LOADRCSTRING(strTemp, IDS_TERM_TYPE_STD) SetTermType(strTemp); } break; case SHELL_RUBY: { LOADRCSTRING(strTemp, IDS_TERM_RUBY) SetShell(strTemp); CString strRubyInterpName = AfxGetApp()->GetProfileString(REG_PTERMINAL, REG_INTERPNAME, INTERP_NAME); LOADRCSTRING(strTemp, IDS_RUBY_INTERP) strMsg.Format(strTemp, strRubyInterpName); SetConnInfo(strMsg); LOADRCSTRING(strTemp, IDS_TERM_TYPE_STD) SetTermType(strTemp); } break; case SHELL_LUA: { LOADRCSTRING(strTemp, IDS_TERM_LUA) SetShell(strTemp); CString strLuaInterpName = AfxGetApp()->GetProfileString(REG_PTERMINAL, REG_INTERPNAME, INTERP_NAME); LOADRCSTRING(strTemp, IDS_LUA_INTERP) strMsg.Format(strTemp, strLuaInterpName); SetConnInfo(strMsg); LOADRCSTRING(strTemp, IDS_TERM_TYPE_STD) SetTermType(strTemp); } break; case SHELL_PERL: { LOADRCSTRING(strTemp, IDS_TERM_PERL) SetShell(strTemp); CString strPerlInterpName = AfxGetApp()->GetProfileString(REG_PTERMINAL, REG_INTERPNAME, INTERP_NAME); LOADRCSTRING(strTemp, IDS_PERL_INTERP) strMsg.Format(strTemp, strPerlInterpName); SetConnInfo(strMsg); LOADRCSTRING(strTemp, IDS_TERM_TYPE_STD) SetTermType(strTemp); } break; case SHELL_TELNET: { LOADRCSTRING(strTemp, IDS_TERM_TELNET) SetShell(strTemp); SetConnInfo(_T("")); LOADRCSTRING(strTemp, IDS_TERM_TYPE_VT) SetTermType(strTemp); } break; case SHELL_COM: { LOADRCSTRING(strTemp, IDS_TERM_COM) SetShell(strTemp); SetConnInfo(_T("")); LOADRCSTRING(strTemp, IDS_TERM_TYPE_VT) SetTermType(strTemp); } break; } }
static bool TryXWindows( void ) { char xqsh_name[CMD_LEN]; int pip[2]; char buff[64]; char **argv; int len; char *p; char *end; unsigned argc; /* we're in the X Windows (or helper)environment */ if( pipe( pip ) != 0 ) { StartupErr( "unable to create console control channel" ); } fcntl( pip[0], F_SETFD, (int)FD_CLOEXEC ); searchenv( "qnxterm", "PATH", xqsh_name ); if( xqsh_name[0] == NULLCHAR ) { StartupErr( "qnxterm executable not in PATH" ); } argc = 0; p = XConfig; for( ;; ) { while( isspace( *p ) ) ++p; while( !isspace( *p ) && *p != NULLCHAR ) ++p; if( *p == NULLCHAR ) break; ++argc; *p++ = NULLCHAR; } end = p; _AllocA( argv, (argc + 10) * sizeof( *argv ) ); argv[0] = xqsh_name; argv[1] = "-T"; argv[2] = "WATCOM Debugger"; argc = 3; if( DbgLines != 0 || DbgColumns != 0 ) { argv[argc++] = "-geometry"; if( DbgLines == 0 ) DbgLines = 25; if( DbgColumns == 0 ) DbgColumns = 80; p = Format( buff, "%ux%u+0+0", DbgColumns, DbgLines ) + 1; argv[argc++] = buff; } for( p = XConfig; p < end; p += strlen( p ) + 1 ) { while( isspace( *p ) ) ++p; argv[argc++] = p; } argv[argc++] = "-tty"; Format( p, "%u", pip[1] ); argv[argc++] = p; argv[argc] = NULL; XQshPid = qnx_spawn( 0, 0, 0, -1, -1, _SPAWN_NEWPGRP, argv[0], argv, environ, NULL, 0 ); if( XQshPid == (pid_t)-1 ) { StartupErr( "unable to create console helper process" ); } /* close the write pipe here so that the read fails if xqsh aborts */ close( pip[1] ); len = read( pip[0], buff, sizeof( buff ) ); if( len == -1 ) { StartupErr( "console helper process unable to initialize" ); } close( pip[0] ); buff[len] = NULLCHAR; DbgConHandle = open( buff, O_RDWR ); if( DbgConHandle == -1 ) { StartupErr( "unable to open debugger console" ); } SetTermType( "qnx" ); tcsetct( DbgConHandle, getpid() ); signal( SIGHUP, &HupHandler ); return( true ); }
void LogEntry1Data::ResumeSyncSend(void) { if (!SyncSendPaused) { return; } SyncSendPaused = FALSE; if (SyncNumber == CERROR) { return; } // We just unpaused and we're assigned a record number... tell everybody // else all about ourselves. GAINEXCLUSIVEACCESS(); char Buffer[256]; CopyStringToBuffer(Buffer, Name); SetName(Buffer); CopyStringToBuffer(Buffer, Initials); SetInitials(Buffer); CopyStringToBuffer(Buffer, Password); SetPassword(Buffer); CopyStringToBuffer(Buffer, Surname); SetSurname(Buffer); CopyStringToBuffer(Buffer, Title); SetTitle(Buffer); CopyStringToBuffer(Buffer, RealName); SetRealName(Buffer); CopyStringToBuffer(Buffer, PhoneNumber); SetPhoneNumber(Buffer); CopyStringToBuffer(Buffer, ForwardAddr); SetForwardAddr(Buffer); CopyStringToBuffer(Buffer, ForwardAddrNode); SetForwardAddrNode(Buffer); CopyStringToBuffer(Buffer, ForwardAddrRegion); SetForwardAddrRegion(Buffer); CopyStringToBuffer(Buffer, PromptFormat); SetPromptFormat(Buffer); CopyStringToBuffer(Buffer, DateStamp); SetDateStamp(Buffer); CopyStringToBuffer(Buffer, VerboseDateStamp); SetVerboseDateStamp(Buffer); CopyStringToBuffer(Buffer, Signature); SetSignature(Buffer); CopyStringToBuffer(Buffer, NetPrefix); SetNetPrefix(Buffer); CopyStringToBuffer(Buffer, MailAddr1); SetMailAddr1(Buffer); CopyStringToBuffer(Buffer, MailAddr2); SetMailAddr2(Buffer); CopyStringToBuffer(Buffer, MailAddr3); SetMailAddr3(Buffer); CopyStringToBuffer(Buffer, Alias); SetAlias(Buffer); CopyStringToBuffer(Buffer, LocID); SetLocID(Buffer); CopyStringToBuffer(Buffer, MorePrompt); SetMorePrompt(Buffer); CopyStringToBuffer(Buffer, Occupation); SetOccupation(Buffer); CopyStringToBuffer(Buffer, WhereHear); SetWhereHear(Buffer); CopyStringToBuffer(Buffer, LastRoom); SetLastRoom(Buffer); CopyStringToBuffer(Buffer, LastHall); SetLastHall(Buffer); CopyStringToBuffer(Buffer, DefaultRoom); SetDefaultRoom(Buffer); CopyStringToBuffer(Buffer, DefaultHall); SetDefaultHall(Buffer); CopyStringToBuffer(Buffer, TermType); SetTermType(Buffer); RELEASEEXCLUSIVEACCESS(); SetBirthDate(BirthDate); SetFirstOn(FirstOn); SetSex(Sex); SetNulls(Nulls); SetWidth(Width); SetLinesPerScreen(LinesPerScreen); SetAttribute(ATTR_NORMAL, attributes[ATTR_NORMAL]); SetAttribute(ATTR_BLINK, attributes[ATTR_BLINK]); SetAttribute(ATTR_REVERSE, attributes[ATTR_REVERSE]); SetAttribute(ATTR_BOLD, attributes[ATTR_BOLD]); SetAttribute(ATTR_UNDERLINE, attributes[ATTR_UNDERLINE]); SetNumUserShow(NumUserShow); SetDefaultProtocol(DefaultProtocol); SetCallTime(CallTime); SetCallNumber(CallNumber); SetTotalTime(TotalTime); SetCredits(Credits); SetLogins(Logins); SetPosted(Posted); SetRead(Read); SetPasswordChangeTime(PasswordChangeTime); SetCallsToday(CallsToday); SetCallLimit(CallLimit); SetLastMessage(LastMessage); SetDL_Bytes(DL_Bytes); SetUL_Bytes(UL_Bytes); SetDL_Num(DL_Num); SetUL_Num(UL_Num); SetPoopcount(Poopcount); SetDungeoned(IsDungeoned()); SetForwardToNode(IsForwardToNode()); SetAutoNextHall(IsAutoNextHall()); SetEnterBorders(IsEnterBorders()); SetVerified(IsVerified()); SetSurnameLocked(IsSurnameLocked()); SetDefaultHallLocked(IsDefaultHallLocked()); SetPsycho(IsPsycho()); SetViewTitleSurname(IsViewTitleSurname()); SetViewSubjects(IsViewSubjects()); SetViewSignatures(IsViewSignatures()); SetOldIBMGraph(IsOldIBMGraph()); SetOldIBMANSI(IsOldIBMANSI()); SetOldIBMColor(IsOldIBMColor()); SetTwirly(IsTwirly()); SetAutoVerbose(IsAutoVerbose()); SetPauseBetweenMessages(IsPauseBetweenMessages()); SetMinibin(IsMinibin()); SetClearScreenBetweenMessages(IsClearScreenBetweenMessages()); SetViewRoomInfoLines(IsViewRoomInfoLines()); SetViewHallDescription(IsViewHallDescription()); SetVerboseContinue(IsVerboseContinue()); SetViewCensoredMessages(IsViewCensoredMessages()); SetViewBorders(IsViewBorders()); SetOut300(IsOut300()); SetUserSignatureLocked(IsUserSignatureLocked()); SetHideMessageExclusions(IsHideMessageExclusions()); SetDownload(IsDownload()); SetUpload(IsUpload()); SetChat(IsChat()); SetPrintFile(IsPrintFile()); SetSpellCheckMode(GetSpellCheckMode()); SetMakeRoom(IsMakeRoom()); SetVerboseLogOut(IsVerboseLogOut()); SetConfirmSave(IsConfirmSave()); SetConfirmAbort(IsConfirmAbort()); SetConfirmNoEO(IsConfirmNoEO()); SetUsePersonalHall(IsUsePersonalHall()); SetYouAreHere(IsYouAreHere()); SetIBMRoom(IsIBMRoom()); SetWideRoom(IsWideRoom()); SetMusic(IsMusic()); SetCheckApostropheS(IsCheckApostropheS()); SetCheckAllCaps(IsCheckAllCaps()); SetCheckDigits(IsCheckDigits()); SetExcludeEncryptedMessages(IsExcludeEncryptedMessages()); SetViewCommas(IsViewCommas()); SetPUnPauses(IsPUnPauses()); SetRoman(IsRoman()); SetSuperSysop(IsSuperSysop()); SetInuse(IsInuse()); SetUpperOnly(IsUpperOnly()); SetLinefeeds(IsLinefeeds()); SetExpert(IsExpert()); SetAide(IsAide()); SetTabs(IsTabs()); SetOldToo(IsOldToo()); SetProblem(IsProblem()); SetUnlisted(IsUnlisted()); SetPermanent(IsPermanent()); SetSysop(IsSysop()); SetNode(IsNode()); SetNetUser(IsNetUser()); SetAccounting(IsAccounting()); SetMail(IsMail()); SetViewRoomDesc(IsViewRoomDesc()); }