while strlen(l:signs)
let l:sign = matchstr(l:signs, '^[A-Za-z]\+\(:.\)*[.=-][^ ]\+')
- let l:sign = substitute(l:sign, ':.', "", "")
- let l:sign = substitute(l:sign, '=', " texthl=MarkSign text=", "")
- let l:sign = substitute(l:sign, '\.', " texthl=MarkDot text=", "")
- let l:sign = substitute(l:sign, '-', " texthl=MarkLine linehl=MarkLine text=", "")
+ let l:name = substitute(l:sign, '[:.=-].*', "", "")
+ 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, '^:', "", "")
+ let l:ascii = matchstr(l:ascii, '^.')
+ else
+ let l:ascii = l:mark
+ endif
+ let l:ascii = substitute(l:ascii, '"', '\\"', "")
+ let l:type = substitute(l:sign, '^:.', "", "")
+ let l:type = matchstr(l:type, '^.')
+
+ let l:hl = ""
+ if l:type == "="
+ let l:hl = "texthl=MarkSign text="
+ elseif l:type == "."
+ let l:hl = "texthl=MarkDot text="
+ elseif l:type == "-"
+ let l:hl = "texthl=MarkLine text="
+ endif
- exe "sign define Mark" . l:sign
+ exe "sign define Mark" . l:name . " " . l:hl . l:mark
let l:signs = substitute(l:signs, '^[^ ]\+ *', "", "")
endwhile