diff --git a/pldmtool/pldm_base_cmd.cpp b/pldmtool/pldm_base_cmd.cpp
index c755b31..0b13ebe 100644
--- a/pldmtool/pldm_base_cmd.cpp
+++ b/pldmtool/pldm_base_cmd.cpp
@@ -127,10 +127,9 @@
             bitfield8_t b = types[i / 8];
             if (b.byte & (1 << i % 8))
             {
-                auto it = std::find_if(pldmTypes.begin(), pldmTypes.end(),
-                                       [i](const auto& typePair) {
-                    return typePair.second == i;
-                });
+                auto it = std::find_if(
+                    pldmTypes.begin(), pldmTypes.end(),
+                    [i](const auto& typePair) { return typePair.second == i; });
                 if (it != pldmTypes.end())
                 {
                     jarray["PLDM Type"] = it->first;
@@ -188,10 +187,9 @@
         char buffer[16] = {0};
         ver2str(&version, buffer, sizeof(buffer));
         ordered_json data;
-        auto it = std::find_if(pldmTypes.begin(), pldmTypes.end(),
-                               [&](const auto& typePair) {
-            return typePair.second == pldmType;
-        });
+        auto it = std::find_if(
+            pldmTypes.begin(), pldmTypes.end(),
+            [&](const auto& typePair) { return typePair.second == pldmType; });
 
         if (it != pldmTypes.end())
         {
@@ -293,10 +291,9 @@
     template <typename CommandMap>
     void printCommand(CommandMap& commandMap, int i, ordered_json& jarray)
     {
-        auto it = std::find_if(commandMap.begin(), commandMap.end(),
-                               [i](const auto& typePair) {
-            return typePair.second == i;
-        });
+        auto it = std::find_if(
+            commandMap.begin(), commandMap.end(),
+            [i](const auto& typePair) { return typePair.second == i; });
         if (it != commandMap.end())
         {
             jarray["PLDM Command Code"] = i;
