]> git.saurik.com Git - cycript.git/blobdiff - ObjectiveC/Replace.mm
Make CYExecute take a CYUTF8String and fix the size shell game in Console's Run.
[cycript.git] / ObjectiveC / Replace.mm
index 5f86ff4997863f2f1ebc3a56d0d68bad29a50ffd..fbd99343065c170b4786c271cf1d481e4d5d5bd4 100644 (file)
@@ -38,7 +38,6 @@
 /* }}} */
 
 #include "Replace.hpp"
-#include "Context.hpp"
 #include "ObjectiveC/Syntax.hpp"
 
 #include <Foundation/Foundation.h>
@@ -64,6 +63,7 @@ CYExpression *CYClass::Replace_(CYContext &context) {
         $E($ CYAssign($V("$cyp"), $C1($V("object_getClass"), cys)))->*
         $E($ CYAssign(cyc, $C3($V("objc_allocateClassPair"), cys, name, $D(0))))->*
         $E($ CYAssign($V("$cym"), $C1($V("object_getClass"), cyc)))->*
+        protocols_->Replace(context)->*
         fields_->Replace(context)->*
         messages_->Replace(context, false)->*
         $E($C1($V("objc_registerClassPair"), cyc))->*
@@ -119,6 +119,15 @@ CYSelectorPart *CYMessageParameter::SelectorPart(CYContext &context) const { $T(
     return tag_ == NULL ? next : $ CYSelectorPart(tag_, name_ != NULL, next);
 }
 
+CYStatement *CYProtocol::Replace(CYContext &context) const { $T(NULL)
+    return $ CYBlock($$->*
+        next_->Replace(context)->*
+        $E($C2($V("class_addProtocol"),
+            $V("$cyc"), name_
+        ))
+    );
+}
+
 CYExpression *CYSelector::Replace(CYContext &context) {
     return $N1($V("Selector"), name_->Replace(context));
 }