68     commandLine(
""), cursorPosition(1),
 
   69     commandHistory(maxhist), maxHistory(maxhist),
 
   70     currentHistoryNo(1), relativeHistoryIndex(0)
 
   77   const char* path = getenv(
"HOME");
 
   78   if( path == NULL ) 
return;
 
   83   std::ifstream histfile;
 
   84   enum { BUFSIZE= 1024 }; 
char linebuf[BUFSIZE];
 
   86   histfile.open(fname, std::ios::in);
 
   87   while (histfile.good()) {
 
   88     if(histfile.eof()) 
break;
 
   90     histfile.getline(linebuf, BUFSIZE);
 
  103   const char* path = getenv(
"HOME");
 
  104   if( path == NULL ) 
return;
 
  109   std::ofstream histfile;
 
  110   histfile.open(fname, std::ios::out);
 
  156         std::ostringstream os;
 
  407   if(jhead != 
G4int(G4String::npos)) {
 
  417   if( !input.empty() ) {
 
  418     G4int len= input.length();
 
  420     for(
G4int i=len-1; i>=0; i--) {
 
  421       if(input[(
size_t)i]==
'/') {
 
  428     if(!(indx==0  && len==1)) vcmd= input(indx+1,len-indx-1);  
 
  446   if(jhead != 
G4int(G4String::npos)) {
 
  452   size_t thead = input.find_last_of(
'/');
 
  454   if (thead != G4String::npos) strtail = input(thead+1, input.size()-thead-1);
 
  460   G4int len= input.length();
 
  463     for(
G4int i=len-1; i>=0; i--) {
 
  471     if(!(indx==0  && len==1)) vcmd= input(indx+1,len-indx-1);  
 
  475   if(atree == NULL) 
return;
 
  482   int Ndir= atree-> GetTreeEntry();
 
  483   int Ncmd= atree-> GetCommandEntry();
 
  486   for(
G4int idir=1; idir<=Ndir; idir++) {
 
  487     G4String fpdir= atree-> GetTree(idir)-> GetPathName();
 
  489     if( fpdir.
index(inputpath, 0) == 0) {
 
  501   for(
G4int icmd=1; icmd<=Ncmd; icmd++){
 
  502     G4String fpcmd= atree-> GetPathName() +
 
  503                     atree-> GetCommand(icmd) -> GetCommandName();
 
  505     if( fpcmd.
index(inputpath, 0) ==0) {
 
  519   jhead= input.
last(
' ');
 
  520   if(jhead == 
G4int(G4String::npos)) jhead=0;
 
  528   for(i=jt; i<=
G4int(input.length())-1; i++) dspstr+= 
G4String(
' '); 
 
  531   dspstr+= (vpath + stream);
 
  532   if (nMatch == 0) dspstr+= strtail;
 
  533   G4cout << dspstr << std::flush;
 
  537   input+= (vpath + stream);
 
  538   if (nMatch==0) input+= strtail;
 
  613       if (cc == 
'[' || cc == 
'O') { 
 
  642   } 
while( cc != 
'\n');
 
  660   while( (newCommand.length() > 0) &&
 
  661          ( newCommand[newCommand.length()-1] == 
'_') ) {
 
  662     newCommand.
remove(newCommand.length()-1);
 
  667     newCommand.
append(newLine);
 
  672   for (
size_t i=0; i<newCommand.length(); i++) {
 
  673     if(newCommand[i] != 
' ') {
 
  678   if( !newCommand.empty() && isMeaningfull) 
StoreHistory(newCommand);
 
  692   int nlen1= str1.length();
 
  693   int nlen2= str2.length();
 
  695   int nmin = nlen1<nlen2 ? nlen1 : nlen2;
 
  698   for(
size_t i=0; 
G4int(i)<nmin; i++){
 
  699     if(str1[i]==str2[i]) {
 
  700       strMatched+= str1[i];
 
  742   termios tiosbuf= 
tios;
 
  744   tiosbuf.c_iflag &= ~(BRKINT | ISTRIP);
 
  745   tiosbuf.c_iflag |= (IGNBRK | IGNPAR);
 
  746   tiosbuf.c_lflag &= ~(ICANON | IEXTEN | ECHO);
 
  747   tiosbuf.c_cc[VMIN] = 1;
 
  748   tiosbuf.c_cc[VTIME] = 0;
 
  750   tcsetattr(0, TCSAFLUSH, &tiosbuf);
 
  758   tcsetattr(0, TCSAFLUSH, &
tios);
 
static const char AsciiESC
 
virtual G4String GetCommandLineString(const char *msg=0)
 
static const char AsciiCtrE
 
static const char AsciiCtrF
 
G4String GetCommandPathTail(const G4String &apath) const 
 
static const char AsciiCtrK
 
G4bool IsCursorLast() const 
 
G4String & remove(str_size)
 
G4String strip(G4int strip_Type=trailing, char c=' ')
 
static const char AsciiDEL
 
G4int relativeHistoryIndex
 
static const int AsciiPrintableMin
 
virtual void ListCommand(const G4String &input, const G4String &candidate="") const 
 
void InsertCharacter(char cc)
 
static const char AsciiCtrD
 
void BackspaceCharacter()
 
void SetTermToInputMode()
 
std::vector< G4String > commandHistory
 
G4String GetFirstMatchedString(const G4String &str1, const G4String &str2) const 
 
G4String RestoreHistory(G4int index)
 
G4String GetAbsCommandDirPath(const G4String &apath) const 
 
virtual void MakePrompt(const char *msg=0)
 
static G4StateManager * GetStateManager()
 
static const char AsciiCtrS
 
static const char AsciiCtrQ
 
G4GLOB_DLL std::ostream G4cout
 
str_size index(const char *, G4int pos=0) const 
 
virtual void ResetTerminal()
 
static const char AsciiCtrN
 
static const char AsciiCtrC
 
G4UItcsh(const G4String &prompt="%s> ", G4int maxhist=100)
 
G4ApplicationState GetCurrentState() const 
 
static const G4String historyFileName
 
G4UIcommandTree * GetCommandTree(const G4String &dir) const 
 
static const char AsciiCtrB
 
void ListMatchedCommand()
 
static const char AsciiCtrZ
 
G4String & append(const G4String &)
 
static const char AsciiBS
 
G4String currentCommandDir
 
static const char AsciiCtrP
 
static const char AsciiCtrL
 
static const char AsciiCtrA
 
void InitializeCommandLine()
 
static const char AsciiTAB
 
void StoreHistory(G4String aCommand)