Skip to content
Snippets Groups Projects
  1. Nov 17, 2010
    • Christian Kamm's avatar
      aa2d9e6d
    • Oswald Buddenhagen's avatar
      overhaul process argument handling · 1e362b0f
      Oswald Buddenhagen authored
      get away from argument stringlists. instead, use native shell command
      lines which support quoting/splitting, environment variable expansion
      and redirections with well-understood semantics.
      
      Task-number: QTCREATORBUG-542
      Task-number: QTCREATORBUG-1564
      1e362b0f
    • Oswald Buddenhagen's avatar
      add Utils::QtcProcess · 531c70f0
      Oswald Buddenhagen authored
      this is a wrapper around QProcess with these features:
      - setEnvironment() takes a Utils::Environment instead of a QStringList
      - instead of taking a stringlist with arguments, take a single shell
        command string which is fully compatible with the system's native
        shell (the bourne shell on unix and cmd.exe on windows) - with support
        for environment variable expansion, and subject to the shell's
        splitting and quoting rules. if the command is too complex (e.g.,
        contains redirections), it is transparently executed through a real
        shell.
      - additionally, the class contains a set of helper functions for
        manipulating (constructing, splitting, etc.) shell command lines.
        in particular, it contains a shell-safe macro expander and the nested
        class ArgIterator which can be used for inspecting and manipulating a
        shell command line without going through the stringlist indirection
        (which is potentially lossy).
      
      some of this is based on KDE code (KShell and KMacroExpander) which i
      have written myself.
      531c70f0
    • Oswald Buddenhagen's avatar
      add generic macro expansion classes & functions to Utils · 9bd95ade
      Oswald Buddenhagen authored
      AbstractMacroExpander (any macros), AbstractQtcMacroExpander (%{var}
      style macros, which is a hybrid of printf format specifiers and unix
      environment expansions) and expandMacros() for the actual string
      manipulation.
      9bd95ade
    • Oswald Buddenhagen's avatar
      change Environment::expandVariables() semantics · 0641ed0e
      Oswald Buddenhagen authored
      instead of being os-agnostic, interpret the os-native expansion style,
      so it is consistent with proper (shell) command lines.
      
      don't interpret quotes, as this function is meant for expanding isolated
      filepaths, where nobody would expect quoting. instead, use the windows
      style of simply not doing an expansion if a referenced variable is not
      found, which should be good enough - it's rather unlikely that something
      which happens to be an expansion of an existing variable is actually not
      meant to be one.
      0641ed0e
    • Rhys Weatherley's avatar
      a666c48c
  2. Nov 16, 2010
  3. Nov 15, 2010
  4. Nov 12, 2010
  5. Nov 11, 2010
  6. Nov 10, 2010
Loading