-fun! <SID>Prep_Signs()
- if ! exists("b:signdot") || ! g:marksigns
- let b:signdot=0
- endif
- if ! exists("b:signdash") || ! g:marksigns
- let b:signdash=0
- endif
- if ! exists("b:signquote") || ! g:marksigns
- let b:signquote=0
- endif
- if ! exists("b:signcaret") || ! g:marksigns
- let b:signcaret=0
- endif
- if ! exists("b:signless") || ! g:marksigns
- let b:signless=0
- endif
- if ! exists("b:signgreater") || ! g:marksigns
- let b:signgreater=0
- endif
- if ! exists("b:signleft") || ! g:marksigns
- let b:signleft=0
- endif
- if ! exists("b:signright") || ! g:marksigns
- let b:signright=0
- endif
- if ! exists("b:signsquareleft") || ! g:marksigns
- let b:signsquareleft=0
- endif
- if ! exists("b:signsquareright") || ! g:marksigns
- let b:signsquareright=0
- endif
- if ! exists("b:signbraceleft") || ! g:marksigns
- let b:signbraceleft=0
- endif
- if ! exists("b:signbraceright") || ! g:marksigns
- let b:signbraceright=0
- endif
- if ! exists("b:signa") || ! g:marksigns
- let b:signa=0
- endif
- if ! exists("b:signb") || ! g:marksigns
- let b:signb=0
- endif
- if ! exists("b:signc") || ! g:marksigns
- let b:signc=0
- endif
- if ! exists("b:signd") || ! g:marksigns
- let b:signd=0
- endif
- if ! exists("b:signe") || ! g:marksigns
- let b:signe=0
- endif
- if ! exists("b:signf") || ! g:marksigns
- let b:signf=0
- endif
- if ! exists("b:signA") || ! g:marksigns
- let b:signA=0
- endif
- if ! exists("b:signB") || ! g:marksigns
- let b:signB=0
- endif
- if ! exists("b:signC") || ! g:marksigns
- let b:signC=0
- endif
- if ! exists("b:signD") || ! g:marksigns
- let b:signD=0
- endif
- if ! exists("b:signE") || ! g:marksigns
- let b:signE=0
- endif
- if ! exists("b:signF") || ! g:marksigns
- let b:signF=0
- endif
-endfun!
-
-fun! <SID>Place_Sign(number, line, old, name)
+" Helper to set buffer variable for a given sign.
+fun! <SID>Prep_Sign(sign) "{{{2
+ if ! exists("b:sign" . a:sign) || ! g:marksigns
+ exe "let b:sign" . a:sign . "=0"
+ endif
+endfun "}}}2
+
+fun! <SID>Prep_Signs() "{{{2
+ call <SID>Prep_Sign("dot")
+ call <SID>Prep_Sign("dash")
+ call <SID>Prep_Sign("quote")
+ call <SID>Prep_Sign("caret")
+ call <SID>Prep_Sign("less")
+ call <SID>Prep_Sign("greater")
+ call <SID>Prep_Sign("left")
+ call <SID>Prep_Sign("right")
+ call <SID>Prep_Sign("squareleft")
+ call <SID>Prep_Sign("squareright")
+ call <SID>Prep_Sign("braceleft")
+ call <SID>Prep_Sign("braceright")
+ call <SID>Prep_Sign("a")
+ call <SID>Prep_Sign("b")
+ call <SID>Prep_Sign("c")
+ call <SID>Prep_Sign("d")
+ call <SID>Prep_Sign("e")
+ call <SID>Prep_Sign("f")
+ call <SID>Prep_Sign("A")
+ call <SID>Prep_Sign("B")
+ call <SID>Prep_Sign("C")
+ call <SID>Prep_Sign("D")
+ call <SID>Prep_Sign("E")
+ call <SID>Prep_Sign("F")
+endfun! "}}}2
+
+fun! <SID>Place_Sign(number, line, old, name) "{{{2