vi_rc GetNewValueDialog( char *value ) { bool ret; vi_rc rc; char st[MAX_STR]; window_id clw; static char prompt[] = "New:"; rc = NewWindow2( &clw, &setvalw_info ); if( rc != ERR_NO_ERR ) { return( rc ); } WPrintfLine( clw, 1, "Old: %s", value ); ret = ReadStringInWindow( clw, 2, prompt, st, MAX_STR - 1, NULL ); CloseAWindow( clw ); SetWindowCursor(); KillCursor(); if( !ret ) { return( NO_VALUE_ENTERED ); } if( st[0] == 0 ) { return( NO_VALUE_ENTERED ); } Expand( st, NULL ); strcpy( value, st ); return( ERR_NO_ERR ); } /* GetNewValueDialog */
vi_rc PromptForString( char *prompt, char *buffer, int buffer_length, history_data *h ) { window_id wid; vi_rc rc; if( !EditFlags.NoInputWindow ) { rc = NewWindow2( &wid, &cmdlinew_info ); if( rc != ERR_NO_ERR ) { return( rc ); } } else { wid = NO_WINDOW; } if( !EditFlags.NoInputWindow && strlen( prompt ) >= WindowAuxInfo( wid, WIND_INFO_TEXT_COLS ) ) { rc = ERR_PROMPT_TOO_LONG; } else { rc = NO_VALUE_ENTERED; if( ReadStringInWindow( wid, 1, prompt, buffer, buffer_length, h ) ) { rc = ERR_NO_ERR; } } if( !EditFlags.NoInputWindow ) { CloseAWindow( wid ); SetWindowCursor(); } else { EditFlags.NoInputWindow = false; } return( rc ); } /* PromptForString */
/* * EnterExMode - start Ex emulation mode */ vi_rc EnterExMode( void ) { int i; window_id wid; char *st; char *prompt; vi_rc rc; bool ret; if( EditFlags.InputKeyMapMode ) { return( ERR_NO_ERR ); } i = EditVars.WindMaxHeight - 1; exwInfo.area.y1 = exwInfo.area.y2 = i; exwInfo.area.x2 = EditVars.WindMaxWidth - 1; SetPosToMessageLine(); EditFlags.ExMode = true; EditFlags.LineDisplay = true; EditFlags.ClockActive = false; MyPrintf( "\nEntering EX mode (type vi to return)\n" ); rc = NewWindow2( &wid, &exwInfo ); if( rc != ERR_NO_ERR ) { return( rc ); } st = MemAlloc( EditVars.MaxLine ); for( ;; ) { if( EditFlags.Appending ) { prompt = ""; } else { prompt = ":"; } ret = ReadStringInWindow( wid, 1, prompt, st, EditVars.MaxLine, &EditVars.CLHist ); MyPrintf( "\n" ); if( !ret ) { continue; } ScreenPage( 1 ); if( EditFlags.Appending ) { AppendAnother( st ); ScreenPage( -1 ); continue; } rc = RunCommandLine( st ); if( !EditFlags.ExMode ) { break; } if( rc > ERR_NO_ERR ) { Error( GetErrorMsg( rc ) ); } ScreenPage( -1 ); } MemFree( st ); return( ERR_NO_ERR ); } /* EnterExMode */