diff --git a/unittest.vim b/unittest.vim
index 46c2d6d..f23f5c7 100644
--- a/unittest.vim
+++ b/unittest.vim
@@ -42,7 +42,7 @@ finish
'name': "html:xt>div#header>div#logo+ul#nav>li.item-$*5>a",
'query': "html:xt>div#header>div#logo+ul#nav>li.item-$*5>a",
'type': "html",
- 'result': "\n\n
\n \n \n\n\n\t\n\t\n\n",
+ 'result': "\n\n\n\t\n\t\n\n\n\t\n\t\n\n",
},
{
'name': "ol>li*2",
@@ -66,7 +66,7 @@ finish
'name': "cc:ie6>p+blockquote#sample$.so.many.classes*2",
'query': "cc:ie6>p+blockquote#sample$.so.many.classes*2",
'type': "html",
- 'result': "",
+ 'result': "",
},
{
'name': "tm>if>div.message",
@@ -78,7 +78,7 @@ finish
'name': "html:4t>div#wrapper>div#header+div#contents+div#footer",
'query': "html:4t>div#wrapper>div#header+div#contents+div#footer",
'type': "html",
- 'result': "\n\n\n \n \n\n\n\t\n\t\n\n",
+ 'result': "\n\n\n\t\n\t\n\n\n\t\n\t\n\n",
},
{
'name': "a[href=http://www.google.com/].foo#hoge",
@@ -249,10 +249,10 @@ finish
'result': "\n\n\n"
},
{
- 'name': "div#box.foo$$$.bar$$$",
- 'query': "div#box$*3>h3+p*2",
+ 'name': "div#box.foo$$$.bar$$$*3",
+ 'query': "div#box.foo$$$.bar$$$*3",
'type': "html",
- 'result': "\n\n\n"
+ 'result': "\n\n\n",
},
{
'name': "div#box$*3>h3+p.bar*2|e",
diff --git a/zencoding.vim b/zencoding.vim
index f43bd56..4fac2aa 100644
--- a/zencoding.vim
+++ b/zencoding.vim
@@ -1066,8 +1066,8 @@ function! s:zen_toString(...)
for attr in keys(current.attr)
let val = current.attr[attr]
if current.multiplier > 1
- while val =~ '\$[^{]*'
- let val = substitute(val, '\(\$\+\)\([^{]*\)', '\=printf("%0".len(submatch(1))."d", m+1).submatch(2)', 'g')
+ while val =~ '\$\([^{]\|$\)'
+ let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", m+1).submatch(2)', 'g')
endwhile
endif
let tmp .= ' ' . attr . '="' . val . '"'