]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - util.c
Fixes to README
[xonotic/gmqcc.git] / util.c
diff --git a/util.c b/util.c
index 76bd44865c8164c1592c8c370dac252e02789b7a..6e02fe76aa18225953f4173f070dee5253b52e90 100644 (file)
--- a/util.c
+++ b/util.c
@@ -20,9 +20,6 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
 #include <stdarg.h>
 #include "gmqcc.h"
  
@@ -81,6 +78,28 @@ char *util_strdup(const char *s) {
        return ptr;
 }
 
+/*
+ * Removed quotes from a string, escapes from \ in string
+ * as well.  This function shouldn't be used to create a
+ * char array that is later freed (it uses pointer arith)
+ */
+char *util_strrq(char *s) {
+       char *dst = s;
+       char *src = s;
+       char  chr;
+       while ((chr = *src++) != '\0') {
+               if (chr == '\\') {
+                       *dst++ = chr;
+                       if ((chr = *src++) == '\0')
+                               break;
+                       *dst++ = chr;
+               } else if (chr != '"')
+                       *dst++ = chr;
+       }
+       *dst = '\0';
+       return dst;
+}
+
 void util_debug(const char *area, const char *ms, ...) {
        va_list  va;
        va_start(va, ms);