- call <SID>Prep_Signs()
-
- let b:signdot = <SID>Place_Sign(0, line("'."), b:signdot, "MarkDot")
- let b:signdash = <SID>Place_Sign(1, line("''"), b:signdash, "MarkDash")
- let b:signquote = <SID>Place_Sign(2, line("'\""), b:signquote, "MarkQuote")
- let b:signcaret = <SID>Place_Sign(3, line("'^"), b:signcaret, "MarkCaret")
- let b:signless = <SID>Place_Sign(4, line("'<"), b:signless, "MarkLess")
- let b:signgreater = <SID>Place_Sign(5, line("'>"), b:signgreater, "MarkGreater")
- let b:signleft = <SID>Place_Sign(6, line("'("), b:signleft, "MarkLeft")
- let b:signright = <SID>Place_Sign(7, line("')"), b:signright, "MarkRight")
- let b:signsquareleft = <SID>Place_Sign(8, line("'["), b:signsquareleft, "MarkSquareLeft")
- let b:signsquareright = <SID>Place_Sign(9, line("']"), b:signsquareright, "MarkSquareRight")
- let b:signbraceleft = <SID>Place_Sign(10, line("'{"), b:signbraceleft, "MarkBraceLeft")
- let b:signbraceright = <SID>Place_Sign(11, line("'}"), b:signbraceright, "MarkBraceRight")
-
- let b:signa = <SID>Place_Sign(12, line("'a"), b:signa, "Marka")
- let b:signb = <SID>Place_Sign(13, line("'b"), b:signb, "Markb")
- let b:signc = <SID>Place_Sign(15, line("'c"), b:signc, "Markc")
- let b:signd = <SID>Place_Sign(16, line("'d"), b:signd, "Markd")
- let b:signe = <SID>Place_Sign(17, line("'e"), b:signe, "Marke")
- let b:signf = <SID>Place_Sign(18, line("'f"), b:signf, "Markf")
- let b:signA = <SID>Place_Sign(19, line("'A"), b:signA, "MarkA")
- let b:signB = <SID>Place_Sign(20, line("'B"), b:signB, "MarkB")
- let b:signC = <SID>Place_Sign(21, line("'C"), b:signC, "MarkC")
- let b:signD = <SID>Place_Sign(22, line("'D"), b:signD, "MarkD")
- let b:signE = <SID>Place_Sign(23, line("'E"), b:signE, "MarkE")
- let b:signF = <SID>Place_Sign(24, line("'F"), b:signF, "MarkF")
-endfun
+ let l:signs = g:iainsigns
+ let l:sign = ""
+ let l:i = 0
+ while strlen(l:signs)
+ let l:sign = matchstr(l:signs, '^[A-Za-z]\+\(:.\)*[.=-][^ ]\+')
+
+ let l:name = substitute(l:sign, '[:.=-].*', "", "")
+ let l:var = tolower(l:name)
+ let l:sign = substitute(l:sign, '^[A-Za-z]\+', "", "")
+ let l:ascii = matchstr(l:sign, '^:.')
+ let l:mark = substitute(l:sign, '^\(:.\)*[.=-]', "", "")
+ if strlen(l:ascii)
+ let l:ascii = substitute(l:ascii, '^:', "", "")
+ else
+ let l:ascii = l:mark
+ endif
+ let l:ascii = substitute(l:ascii, '"', '\\"', "")
+
+ call <SID>Prep_Sign(l:var)
+ exe "let " . l:var . " = <SID>Place_Sign(" . l:i . ", line(\"'" . l:ascii . "\"), b:sign" . l:var . ", \"Mark" . l:name . "\")"
+ let l:i = l:i + 1
+
+ let l:signs = substitute(l:signs, '^[^ ]\+ *', "", "")
+ endwhile
+endfun "}}}2