@@ -307,102 +307,101 @@ void ParseOptions(int argc, char **argv, ProgramOptions& opt) {
307307 break ;
308308 }
309309 case ' b' : {
310- stringstream (optarg) >> opt.barcode_str ;
310+ opt.barcode_str = optarg ;
311311 break ;
312312 }
313313 case ' d' : {
314- stringstream (optarg) >> opt.distance_str ;
314+ opt.distance_str = optarg ;
315315 break ;
316316 }
317317 case ' l' : {
318- stringstream (optarg) >> opt.location_str ;
318+ opt.location_str = optarg ;
319319 break ;
320320 }
321321 case ' i' : {
322- stringstream (optarg) >> opt.barcode_identifiers_str ;
322+ opt.barcode_identifiers_str = optarg ;
323323 break ;
324324 }
325325 case ' g' : {
326- stringstream (optarg) >> opt.group_identifiers_str ;
326+ opt.group_identifiers_str = optarg ;
327327 break ;
328328 }
329329 case ' F' : {
330- stringstream (optarg) >> opt.max_finds_str ;
330+ opt.max_finds_str = optarg ;
331331 break ;
332332 }
333333 case ' f' : {
334- stringstream (optarg) >> opt.min_finds_str ;
334+ opt.min_finds_str = optarg ;
335335 break ;
336336 }
337337 case ' J' : {
338- stringstream (optarg) >> opt.max_finds_group_str ;
338+ opt.max_finds_group_str = optarg ;
339339 break ;
340340 }
341341 case ' j' : {
342- stringstream (optarg) >> opt.min_finds_group_str ;
342+ opt.min_finds_group_str = optarg ;
343343 break ;
344344 }
345345 case ' e' : {
346- stringstream (optarg) >> opt.exclude_str ;
346+ opt.exclude_str = optarg ;
347347 break ;
348348 }
349349 case ' L' : {
350- stringstream (optarg) >> opt.left_str ;
350+ opt.left_str = optarg ;
351351 break ;
352352 }
353353 case ' R' : {
354- stringstream (optarg) >> opt.right_str ;
354+ opt.right_str = optarg ;
355355 break ;
356356 }
357357 case ' a' : {
358- stringstream (optarg) >> opt.after_str ;
358+ opt.after_str = optarg ;
359359 break ;
360360 }
361361 case ' v' : {
362- stringstream (optarg) >> opt.before_str ;
362+ opt.before_str = optarg ;
363363 break ;
364364 }
365365 case ' U' : {
366- stringstream (optarg) >> opt.subs_str ;
366+ opt.subs_str = optarg ;
367367 break ;
368368 }
369369 case ' z' : {
370- stringstream (optarg) >> opt.partial5_str ;
370+ opt.partial5_str = optarg ;
371371 break ;
372372 }
373373 case ' Z' : {
374- stringstream (optarg) >> opt.partial3_str ;
374+ opt.partial3_str = optarg ;
375375 break ;
376376 }
377377 case ' c' : {
378- stringstream (optarg) >> opt.config_file ;
378+ opt.config_file = optarg ;
379379 break ;
380380 }
381381 case ' m' : {
382- stringstream (optarg) >> opt.mapping_file ;
382+ opt.mapping_file = optarg ;
383383 break ;
384384 }
385385 case ' k' : {
386- stringstream (optarg) >> opt.keep_file ;
386+ opt.keep_file = optarg ;
387387 break ;
388388 }
389389 case ' r' : {
390390 opt.discard = true ;
391- stringstream (optarg) >> opt.keep_file ;
391+ opt.keep_file = optarg ;
392392 break ;
393393 }
394394 case ' y' : {
395- stringstream (optarg) >> opt.keep_group_file ;
395+ opt.keep_group_file = optarg ;
396396 break ;
397397 }
398398 case ' Y' : {
399399 opt.discard_group = true ;
400- stringstream (optarg) >> opt.keep_group_file ;
400+ opt.keep_group_file = optarg ;
401401 break ;
402402 }
403403 case ' o' : {
404- std::string files;
405- stringstream (optarg) >> files;
404+ std::string files = optarg;
406405 std::stringstream ss (files);
407406 std::string filename;
408407 while (std::getline (ss, filename, ' ,' )) {
@@ -411,23 +410,22 @@ void ParseOptions(int argc, char **argv, ProgramOptions& opt) {
411410 break ;
412411 }
413412 case ' O' : {
414- stringstream (optarg) >> opt.outputb_file ;
413+ opt.outputb_file = optarg ;
415414 break ;
416415 }
417416 case ' A' : {
418- stringstream (optarg) >> opt.append_file ;
417+ opt.append_file = optarg ;
419418 break ;
420419 }
421420 case ' E' : {
422- stringstream (optarg) >> opt.empty_read_sequence ;
421+ opt.empty_read_sequence = optarg ;
423422 for (auto & c: opt.empty_read_sequence ) {
424423 c = toupper (c);
425424 }
426425 break ;
427426 }
428427 case ' u' : {
429- std::string files;
430- stringstream (optarg) >> files;
428+ std::string files = optarg;
431429 std::stringstream ss (files);
432430 std::string filename;
433431 while (std::getline (ss, filename, ' ,' )) {
@@ -436,39 +434,39 @@ void ParseOptions(int argc, char **argv, ProgramOptions& opt) {
436434 break ;
437435 }
438436 case ' 5' : {
439- stringstream (optarg) >> opt.trim_5_str ;
437+ opt.trim_5_str = optarg ;
440438 break ;
441439 }
442440 case ' 3' : {
443- stringstream (optarg) >> opt.trim_3_str ;
441+ opt.trim_3_str = optarg ;
444442 break ;
445443 }
446444 case ' 9' : {
447445 stringstream (optarg) >> opt.bclen ;
448446 break ;
449447 }
450448 case ' w' : {
451- stringstream (optarg) >> opt.filter_length_str ;
449+ opt.filter_length_str = optarg ;
452450 break ;
453451 }
454452 case ' x' : {
455- stringstream (optarg) >> opt.extract_str ;
453+ opt.extract_str = optarg ;
456454 break ;
457455 }
458456 case ' P' : {
459- stringstream (optarg) >> opt.barcode_prefix ;
457+ opt.barcode_prefix = optarg ;
460458 break ;
461459 }
462460 case ' q' : {
463461 stringstream (optarg) >> opt.quality_trimming_threshold ;
464462 break ;
465463 }
466464 case ' s' : {
467- stringstream (optarg) >> opt.summary_file ;
465+ opt.summary_file = optarg ;
468466 break ;
469467 }
470468 case ' S' : {
471- stringstream (optarg) >> opt.select_output_files_str ;
469+ opt.select_output_files_str = optarg ;
472470 break ;
473471 }
474472 case ' C' : {
@@ -482,8 +480,7 @@ void ParseOptions(int argc, char **argv, ProgramOptions& opt) {
482480 break ;
483481 }
484482 case ' X' : {
485- std::string subset_n;
486- stringstream (optarg) >> subset_n;
483+ std::string subset_n = optarg;
487484 std::stringstream ss (subset_n);
488485 while (std::getline (ss, subset_n, ' ,' )) {
489486 try {
@@ -495,8 +492,7 @@ void ParseOptions(int argc, char **argv, ProgramOptions& opt) {
495492 break ;
496493 }
497494 case ' M' : {
498- std::string m;
499- stringstream (optarg) >> m;
495+ std::string m = optarg;
500496 m.erase (remove (m.begin (),m.end (),' ' ),m.end ()); // remove spaces from string
501497 std::stringstream ss (m);
502498 std::string s;
0 commit comments