[Lldb-commits] [lldb] r174991 - <rdar://problem/13178743>

Greg Clayton gclayton at apple.com
Tue Feb 12 10:52:25 PST 2013


Author: gclayton
Date: Tue Feb 12 12:52:24 2013
New Revision: 174991

URL: http://llvm.org/viewvc/llvm-project?rev=174991&view=rev
Log:
<rdar://problem/13178743>

Added a new "env" regular expression alias. If "env" is typed on its own "settings show target.env-vars" will be run. Otherwise it can be used to set and environment variable: "env FOO=BAR".


Modified:
    lldb/trunk/source/Interpreter/CommandInterpreter.cpp

Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=174991&r1=174990&r2=174991&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original)
+++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Tue Feb 12 12:52:24 2013
@@ -227,6 +227,12 @@ CommandInterpreter::Initialize ()
         AddAlias ("list", cmd_obj_sp);
     }
 
+    cmd_obj_sp = GetCommandSPExact ("_regexp-env", false);
+    if (cmd_obj_sp)
+    {
+        AddAlias ("env", cmd_obj_sp);
+    }
+
     cmd_obj_sp = GetCommandSPExact ("memory read", false);
     if (cmd_obj_sp)
         AddAlias ("x", cmd_obj_sp);
@@ -600,6 +606,21 @@ CommandInterpreter::LoadCommandDictionar
         }
     }
 
+    std::auto_ptr<CommandObjectRegexCommand>
+    env_regex_cmd_ap(new CommandObjectRegexCommand (*this,
+                                                     "_regexp-env",
+                                                     "Implements a shortcut to viewing and setting environment variables.",
+                                                     "_regexp-env\n_regexp-env FOO=BAR", 2));
+    if (env_regex_cmd_ap.get())
+    {
+        if (env_regex_cmd_ap->AddRegexCommand("^$", "settings show target.env-vars") &&
+            env_regex_cmd_ap->AddRegexCommand("^([A-Za-z_][A-Za-z_0-9]*=.*)$", "settings set target.env-vars %1"))
+        {
+            CommandObjectSP env_regex_cmd_sp(env_regex_cmd_ap.release());
+            m_command_dict[env_regex_cmd_sp->GetCommandName ()] = env_regex_cmd_sp;
+        }
+    }
+
 }
 
 int





More information about the lldb-commits mailing list