OSSP CVS Repository

ossp - Check-in [1432]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 1432
Date: 2001-Dec-14 15:06:50 (local)
2001-Dec-14 14:06:50 (UTC)
User:rse
Branch:
Comment: Cleanup post-processing code by reducing redundancy. Nevertheless the error result_len is still incorrect IMHO!
Tickets:
Inspections:
Files:
ossp-pkg/var/var.c      1.50 -> 1.51     15 inserted, 4 deleted

ossp-pkg/var/var.c 1.50 -> 1.51

--- var.c        2001/12/14 13:47:01     1.50
+++ var.c        2001/12/14 14:06:50     1.51
@@ -1920,18 +1920,29 @@
     tokenbuf_init(&output);
     rc = input(input_buf, input_buf + input_len, config, nameclass,
                lookup, lookup_context, force_expand, &output, 0, 0, NULL);
-    *result = (char *)output.begin;
-    *result_len = output.end - output.begin;
+
+    /* Post-process output */
     if (rc >= 0) {
+        /* always NUL-terminate output for convinience reasons */
         if (!tokenbuf_append(&output, "\0", 1)) {
             tokenbuf_free(&output);
             return VAR_ERR_OUT_OF_MEMORY;
         }
         output.end--;
+
+        /* Provide results */
+        *result = (char *)output.begin;
+        *result_len = output.end - output.begin;
+
+        /* canonify all positive answers */
         rc = VAR_OK;
     }
-    *result = (char *)output.begin;
-    *result_len = output.end - output.begin;
+    else {
+        /* Provide error results */
+        *result = (char *)input_buf;
+        *result_len = output.end - output.begin; /* FIXME */
+    }
+
     return rc;
 }
 

CVSTrac 2.0.1