86{
87 enum { BUFSIZE = 4096 };
88 static char linebuf[BUFSIZE];
89
91 G4bool qcontinued = false;
94
96
97
98 G4String::size_type nb = 0;
99 while ((nb= cmdline.find('\t',nb)) != G4String::npos) {
100 cmdline.replace(nb, 1, " ");
101 }
102
103
105
106
107 if( !qcontinued && cmdline.size() == 0 ) continue;
108
109
110 if( cmdline[0] == '#' ) return cmdline;
111
112
113 std::vector<G4String> tokens;
114 Tokenize(cmdline, tokens);
115 qcontinued = false;
116 for( G4int i = 0; i < G4int(tokens.size()); i++ ) {
117
118 if( tokens[i][0] == '#' ) break;
119
120 if( tokens[i] == "\\" || tokens[i] == "_" ) {
121 qcontinued = true;
122
123 if( i != G4int(tokens.size())-1 ) {
124 G4Exception("G4MPIbatch::ReadCommand", "MPI004", JustWarning,
125 "unexpected character after line continuation character");
126 }
127 break;
128 }
129 cmdtotal += tokens[i];
130 cmdtotal += " ";
131 }
132
133 if( qcontinued ) continue;
134
135 if( cmdtotal.size() != 0 ) break;
137 }
138
139
141
142
144
145
147 return "exit";
148 }
149
150 return cmdtotal;
151}
G4String BypassCommand(const G4String &command) const
void strip(G4String &str, char ch=' ')