Browse Source

lub_argv structure saves the whole line. lub_argv__get_line() function

git-svn-id: https://klish.googlecode.com/svn/trunk@282 0eaa4687-2ee9-07dd-09d9-bcdd2d2dd5fb
Serj Kalichev 13 years ago
parent
commit
e8de3db91d
5 changed files with 15 additions and 0 deletions
  1. 2 0
      lub/argv.h
  2. 7 0
      lub/argv/argv__get_argv.c
  3. 2 0
      lub/argv/argv_delete.c
  4. 3 0
      lub/argv/argv_new.c
  5. 1 0
      lub/argv/private.h

+ 2 - 0
lub/argv.h

@@ -102,6 +102,8 @@ void
                       const char *arg);
 char **
     lub_argv__get_argv(const lub_argv_t *instance, char *argv0);
+const char *
+    lub_argv__get_line(const lub_argv_t *instance);
 
 _END_C_DECL
 

+ 7 - 0
lub/argv/argv__get_argv.c

@@ -6,6 +6,13 @@
 
 #include "private.h"
 
+/*--------------------------------------------------------- */
+const char *
+lub_argv__get_line(const lub_argv_t *this)
+{
+	return this->line;
+}
+
 /*--------------------------------------------------------- */
 char **
 lub_argv__get_argv(const lub_argv_t *this, char *argv0)

+ 2 - 0
lub/argv/argv_delete.c

@@ -11,6 +11,8 @@ lub_argv_fini(lub_argv_t *this)
 {
     unsigned i;
 
+    lub_string_free(this->line);
+    this->line = NULL;
     for(i = 0;
         i < this->argc;
         i++)

+ 3 - 0
lub/argv/argv_new.c

@@ -18,6 +18,9 @@ lub_argv_init(lub_argv_t *this,
     lub_arg_t  *arg;
     bool_t      quoted;
 
+    /* Save the whole line */
+    this->line = lub_string_dup(line);
+
     /* first of all count the words in the line */
     this->argc = lub_argv_wordcount(line);
 

+ 1 - 0
lub/argv/private.h

@@ -16,6 +16,7 @@ struct lub_arg_s
 
 struct lub_argv_s
 {
+    char *line;
     unsigned   argc;
     lub_arg_t *argv;
 };