@@ -163,25 +163,44 @@ bool ParamUtils::GetParamAsString(const char *name, const ParamsVectors *member_
163
163
164
164
void ParamUtils::PrintParams (FILE *fp, const ParamsVectors *member_params) {
165
165
int num_iterations = (member_params == nullptr ) ? 1 : 2 ;
166
+ // When printing to stdout info text is included.
167
+ // Info text is omitted when printing to a file (would result in an invalid config file).
168
+ bool print_info = (fp == stdout) ? true : false ;
166
169
std::ostringstream stream;
167
170
stream.imbue (std::locale::classic ());
168
171
for (int v = 0 ; v < num_iterations; ++v) {
169
172
const ParamsVectors *vec = (v == 0 ) ? GlobalParams () : member_params;
170
173
for (auto int_param : vec->int_params ) {
171
- stream << int_param->name_str () << ' \t ' << (int32_t )(*int_param) << ' \t '
172
- << int_param->info_str () << ' \n ' ;
174
+ if (print_info) {
175
+ stream << int_param->name_str () << ' \t ' << (int32_t )(*int_param) << ' \t '
176
+ << int_param->info_str () << ' \n ' ;
177
+ } else {
178
+ stream << int_param->name_str () << ' \t ' << (int32_t )(*int_param) << ' \n ' ;
179
+ }
173
180
}
174
181
for (auto bool_param : vec->bool_params ) {
175
- stream << bool_param->name_str () << ' \t ' << bool (*bool_param) << ' \t '
176
- << bool_param->info_str () << ' \n ' ;
182
+ if (print_info) {
183
+ stream << bool_param->name_str () << ' \t ' << bool (*bool_param) << ' \t '
184
+ << bool_param->info_str () << ' \n ' ;
185
+ } else {
186
+ stream << bool_param->name_str () << ' \t ' << bool (*bool_param) << ' \n ' ;
187
+ }
177
188
}
178
189
for (auto string_param : vec->string_params ) {
179
- stream << string_param->name_str () << ' \t ' << string_param->c_str () << ' \t '
180
- << string_param->info_str () << ' \n ' ;
190
+ if (print_info) {
191
+ stream << string_param->name_str () << ' \t ' << string_param->c_str () << ' \t '
192
+ << string_param->info_str () << ' \n ' ;
193
+ } else {
194
+ stream << string_param->name_str () << ' \t ' << string_param->c_str () << ' \n ' ;
195
+ }
181
196
}
182
197
for (auto double_param : vec->double_params ) {
183
- stream << double_param->name_str () << ' \t ' << (double )(*double_param) << ' \t '
184
- << double_param->info_str () << ' \n ' ;
198
+ if (print_info) {
199
+ stream << double_param->name_str () << ' \t ' << (double )(*double_param) << ' \t '
200
+ << double_param->info_str () << ' \n ' ;
201
+ } else {
202
+ stream << double_param->name_str () << ' \t ' << (double )(*double_param) << ' \n ' ;
203
+ }
185
204
}
186
205
}
187
206
fprintf (fp, " %s" , stream.str ().c_str ());
0 commit comments