]> git.saurik.com Git - cydia.git/blobdiff - CyteKit/RegEx.hpp
Swap awkward va_list hack for awkward switch hack.
[cydia.git] / CyteKit / RegEx.hpp
index 5799946a6208fdfdcb15577d5f200ceec33f5064..7ff08dfab53be8fe1c49abec3fbc78002362cbdb 100644 (file)
@@ -1,5 +1,5 @@
 /* Cydia - iPhone UIKit Front-End for Debian APT
- * Copyright (C) 2008-2014  Jay Freeman (saurik)
+ * Copyright (C) 2008-2015  Jay Freeman (saurik)
 */
 
 /* GNU General Public License, Version 3 {{{ */
@@ -25,7 +25,7 @@
 #include <unicode/uregex.h>
 
 #include "CyteKit/UCPlatform.h"
-#include "CyteKit/stringWithUTF8Bytes.h"
+#include "CyteKit/stringWith.h"
 
 #define _rgxcall(code, args...) ({ \
     UErrorCode status(U_ZERO_ERROR); \
@@ -58,14 +58,18 @@ class RegEx {
     {
     }
 
-    RegEx(const char *regex, NSString *data = nil) :
+    RegEx(const char *regex) :
         regex_(NULL),
         size_(_not(size_t))
     {
         this->operator =(regex);
+    }
 
-        if (data != nil)
-            this->operator ()(data);
+    template <typename Type_>
+    RegEx(const char *regex, const Type_ &data) :
+        RegEx(regex)
+    {
+        this->operator ()(data);
     }
 
     void operator =(const char *regex) {
@@ -120,7 +124,7 @@ class RegEx {
         id values[capture_];
         for (int i(0); i != capture_; ++i)
             values[i] = this->operator [](i + 1);
-        return [[[NSString alloc] initWithFormat:format arguments:reinterpret_cast<va_list>(values)] autorelease];
+        return [NSString stringWithFormat:format :capture_ :values];
     }
 };