[libcamera-devel] [PATCH] cam: options: Restore std::cerr adjustement field

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Jul 23 06:23:53 CEST 2021


The std::cerr adjustment is set to std::left to print the usage text.
Restore it to its original value when done, to avoid affecting the
caller.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/cam/options.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index 33bc512e6571..4f7e869144c8 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -453,7 +453,7 @@ void KeyValueParser::usage(int indent)
 				argument += "]";
 		}
 
-		std::cerr << std::setw(indent) << std::left << argument;
+		std::cerr << std::setw(indent) << argument;
 
 		for (const char *help = option.help, *end = help; end;) {
 			end = strchr(help, '\n');
@@ -994,7 +994,12 @@ void OptionsParser::usage()
 
 	std::cerr << "Options:" << std::endl;
 
+	std::ios_base::fmtflags f(std::cerr.flags());
+	std::cerr << std::left;
+
 	usageOptions(options_, indent);
+
+	std::cerr.flags(f);
 }
 
 void OptionsParser::usageOptions(const std::list<Option> &options,
@@ -1031,7 +1036,7 @@ void OptionsParser::usageOptions(const std::list<Option> &options,
 		if (option.isArray)
 			argument += " ...";
 
-		std::cerr << std::setw(indent) << std::left << argument;
+		std::cerr << std::setw(indent) << argument;
 
 		for (const char *help = option.help, *end = help; end; ) {
 			end = strchr(help, '\n');
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list