File: CommandArgs.cpp

package info (click to toggle)
subcommander 2.0.0~b5p1-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 14,880 kB
  • ctags: 9,003
  • sloc: cpp: 63,591; sh: 3,904; xml: 1,984; makefile: 1,166; ansic: 786; ruby: 251; lisp: 24
file content (50 lines) | stat: -rw-r--r-- 1,101 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* ====================================================================
 * Copyright (c) 2003-2006, 2008 Martin Hauner
 *                               http://subcommander.tigris.org
 *
 * Subcommander is licensed as described in the file doc/COPYING, which
 * you should have received as part of this distribution.
 * ====================================================================
 */

// sc
#include "CommandArgs.h"

// apr
#include <apr_strings.h>


CommandArgs::CommandArgs( const sc::String& pattern, apr_pool_t* pool )
: _pool(pool)
{
  _path = ".";
  char* cpat = apr_pstrdup( _pool, (const char*)pattern );
  // @todo error handling
  //apr_status_t status =
  apr_tokenize_to_argv( cpat, &_args, _pool );
}

void CommandArgs::setArg( const sc::String& key, const sc::String& value )
{
  int i = 0;
  while( _args[i] )
  {
    if( key == sc::String(_args[i]) )
    {
      _args[i] = apr_pstrdup( _pool, (const char*)value );
      return;
    }

    i++;
  }
}

const sc::String& CommandArgs::getPath() const
{
  return _path;
}

char** CommandArgs::getArgs() const
{
  return _args;
}