aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/css-abbrev.el21
-rw-r--r--src/test.el22
2 files changed, 31 insertions, 12 deletions
diff --git a/src/css-abbrev.el b/src/css-abbrev.el
index 7deb427..4afcaff 100644
--- a/src/css-abbrev.el
+++ b/src/css-abbrev.el
@@ -4,13 +4,13 @@
(defun zencoding-css-split-args (exp)
(zencoding-aif
- (string-match "[#0-9$-]" exp)
+ (string-match "[ #0-9$-]" exp)
(cons (substring exp 0 it) (substring exp it))
(list exp)))
(defun zencoding-css-arg-number (input)
(zencoding-parse
- "\\(\\(?:-\\|\\)[0-9.]+\\)\\(\\(?:-\\|e\\|p\\|x\\)\\|\\)" 3 "css number arguments"
+ " *\\(\\(?:-\\|\\)[0-9.]+\\)\\(\\(?:-\\|e\\|p\\|x\\)\\|\\)" 3 "css number arguments"
(cons (list (elt it 1)
(let ((unit (string-to-char (elt it 2))))
(cond ((= unit ?-) "px")
@@ -22,7 +22,7 @@
(defun zencoding-css-arg-color (input)
(zencoding-parse
- "#\\([0-9a-fA-F]\\{1,6\\}\\)" 2 "css color argument"
+ " *#\\([0-9a-fA-F]\\{1,6\\}\\)" 2 "css color argument"
(cons (let* ((n (elt it 1))
(l (length n)))
(concat
@@ -37,12 +37,18 @@
0 6)))
input)))
+(defun zencoding-css-arg-something (input)
+ (zencoding-parse
+ " *\\([^ ]+\\)" 2 "css argument"
+ (cons (elt it 1) input)))
+
(defun zencoding-css-parse-arg (input)
(zencoding-run zencoding-css-arg-number it
(zencoding-run zencoding-css-arg-color it
- (if (equal input "")
- it
- (cons input "")))))
+ (zencoding-run zencoding-css-arg-something it
+ (if (equal input "")
+ it
+ (cons input ""))))))
(defun zencoding-css-important-p (input)
(let ((len (length input)))
@@ -73,7 +79,7 @@
(let ((f (first i))
(s (second i)))
(if f
- (if (and s (or (string= s "") (string-match "^[#0-9$-]" s)))
+ (if (and s (or (string= s "") (string-match "^[ #0-9$-]" s)))
(progn
(setf rt (cons (concat f "+" s) rt))
(setf i (cddr i)))
@@ -174,6 +180,5 @@
exprs)
"\n"))
-
(defun zencoding-css-transform (input)
(zencoding-css-transform-exprs (zencoding-css-expr input))) \ No newline at end of file
diff --git a/src/test.el b/src/test.el
index 3dae692..71e7f1d 100644
--- a/src/test.el
+++ b/src/test.el
@@ -422,7 +422,8 @@
"abc+cde+" ("abc" "cde+")
"abc++cde+" ("abc+" "cde+")
"ab:c+0p0x#aa+p0+cde+" ("ab:c+0p0x#aa" "p0" "cde+")
- "ab+#0+p+#c+x++cde+" ("ab+#0" "p+#c" "x+" "cde+"))
+ "ab+#0+p+#c+x++cde+" ("ab+#0" "p+#c" "x+" "cde+")
+ "abc def" ("abc def"))
(define-zencoding-unit-test-case CSS-parse-arg-number
#'zencoding-css-arg-number
@@ -431,7 +432,8 @@
"0-1-2" (("0" "px") . "1-2")
"-100" (("-100" "px") . "")
"-10e-20" (("-10" "em") . "-20")
- "35p#a" (("35" "%") . "#a"))
+ "35p#a" (("35" "%") . "#a")
+ " 0p" (("0" "%") . ""))
(define-zencoding-unit-test-case CSS-parse-arg-color
#'zencoding-css-arg-color
@@ -444,7 +446,15 @@
"#1a2B-3" ("#1a2B1a" . "-3")
"#1A2b3x" ("#1A2b31" . "x")
"#1a2B3Cx" ("#1a2B3C" . "x")
- "#1A2B3C4D-2" ("#1A2B3C" . "4D-2"))
+ "#1A2B3C4D-2" ("#1A2B3C" . "4D-2")
+ " #abc" ("#aabbcc" . ""))
+
+(define-zencoding-unit-test-case CSS-parse-arg-something
+ #'zencoding-css-arg-something
+ "" (error "expected css argument")
+ "abc" ("abc" . "")
+ "abc def" ("abc" . " def")
+ "url(http://abc.com) auto" ("url(http://abc.com)" . " auto"))
(define-zencoding-unit-test-case CSS-parse-args
#'zencoding-css-parse-args
@@ -475,7 +485,11 @@
"p!+m10e!+f" ("padding: !important;"
"margin:10em !important;"
"font:;")
- "fs" ("font-style:italic;"))
+ "fs" ("font-style:italic;")
+ "p auto+m auto+bg+#F00 x.jpg 10 10 repeat-x"
+ ("padding:auto;"
+ "margin:auto;"
+ "background:#FF0000 url(x.jpg) 10px 10px repeat-x;"))
;; start
(zencoding-test-cases) \ No newline at end of file