[macruby-changes] [143] MacRuby/trunk/parse.y
source_changes at macosforge.org
source_changes at macosforge.org
Wed Apr 16 13:54:12 PDT 2008
Revision: 143
http://trac.macosforge.org/projects/ruby/changeset/143
Author: lsansonetti at apple.com
Date: 2008-04-16 13:54:11 -0700 (Wed, 16 Apr 2008)
Log Message:
-----------
fixing heredoc parsing
Modified Paths:
--------------
MacRuby/trunk/parse.y
Modified: MacRuby/trunk/parse.y
===================================================================
--- MacRuby/trunk/parse.y 2008-04-16 19:20:43 UTC (rev 142)
+++ MacRuby/trunk/parse.y 2008-04-16 20:54:11 UTC (rev 143)
@@ -5631,6 +5631,11 @@
func |= str_xquote;
quoted:
newtok();
+#if WITH_OBJC
+ /* avoid null character which will force bytestring creation */
+ if (func == 0)
+ func = '\1';
+#endif
tokadd(func);
term = c;
while ((c = nextc()) != -1 && c != term) {
@@ -5726,8 +5731,8 @@
long len;
VALUE str = 0;
- eos = RSTRING_PTR(here->nd_lit);
- len = RSTRING_LEN(here->nd_lit) - 1;
+ eos = RSTRING_CPTR(here->nd_lit);
+ len = RSTRING_CLEN(here->nd_lit) - 1;
indent = (func = *eos++) & STR_FUNC_INDENT;
if ((c = nextc()) == -1) {
@@ -5745,7 +5750,7 @@
if (!(func & STR_FUNC_EXPAND)) {
do {
- p = RSTRING_PTR(lex_lastline);
+ p = RSTRING_CPTR(lex_lastline);
pend = lex_pend;
if (pend > p) {
switch (pend[-1]) {
@@ -5761,7 +5766,11 @@
if (str)
rb_str_cat(str, p, pend - p);
else
+#if WITH_OBJC
+ str = STR_NEW(p, 0); /* avoid bytestring */
+#else
str = STR_NEW(p, pend - p);
+#endif
if (pend < lex_pend) rb_str_cat(str, "\n", 1);
lex_goto_eol(parser);
if (nextc() == -1) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080416/ced41602/attachment-0001.html
More information about the macruby-changes
mailing list