[SCM] vim-scripts packaging branch, master, updated. 94d6931b39bc216e79e1673187150bfec7383e86

James Vega jamessan at debian.org
Wed Sep 2 03:34:03 UTC 2009


The following commit has been merged in the master branch:
commit d8b6edefd1b1822266c62184585fd1024580b9a6
Author: James Vega <jamessan at debian.org>
Date:   Tue Sep 1 23:22:44 2009 -0400

    Update Align to 35/41.

diff --git a/autoload/Align.vim b/autoload/Align.vim
index 9c61728..bce3542 100644
--- a/autoload/Align.vim
+++ b/autoload/Align.vim
@@ -1,7 +1,7 @@
 " Align: tool to align multiple fields based on one or more separators
 "   Author:		Charles E. Campbell, Jr.
-"   Date:		Oct 08, 2008
-"   Version:	34
+"   Date:		Mar 03, 2009
+"   Version:	35
 " GetLatestVimScripts: 294 1 :AutoInstall: Align.vim
 " GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim
 " Copyright:    Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
@@ -21,10 +21,10 @@
 
 " ---------------------------------------------------------------------
 " Load Once: {{{1
-if exists("g:loaded_align") || &cp
+if exists("g:loaded_Align") || &cp
  finish
 endif
-let g:loaded_align = "v34"
+let g:loaded_Align = "v35"
 if v:version < 700
  echohl WarningMsg
  echo "***warning*** this version of Align needs vim 7.0"
@@ -36,10 +36,20 @@ set cpo&vim
 "DechoTabOn
 
 " ---------------------------------------------------------------------
-" Debugging Support:
+" Debugging Support: {{{1
 "if !exists("g:loaded_Decho") | runtime plugin/Decho.vim | endif
 
 " ---------------------------------------------------------------------
+" Options: {{{1
+if !exists("g:Align_xstrlen")
+ if &enc == "latin1" || $LANG == "en_US.UTF-8" || !has("multi_byte")
+  let g:Align_xstrlen= 0
+ else
+  let g:Align_xstrlen= 1
+ endif
+endif
+
+" ---------------------------------------------------------------------
 " Align#AlignCtrl: enter alignment patterns here {{{1
 "
 "   Styles   =  all alignment-break patterns are equivalent
@@ -333,12 +343,17 @@ endfun
 fun! Align#Align(hasctrl,...) range
 "  call Dfunc("Align#Align(hasctrl=".a:hasctrl.",...) a:0=".a:0)
 
-  " sanity check
+  " sanity checks
   if string(a:hasctrl) != "0" && string(a:hasctrl) != "1"
    echohl Error|echo 'usage: Align#Align(hasctrl<'.a:hasctrl.'> (should be 0 or 1),"separator(s)"  (you have '.a:0.') )'|echohl None
 "   call Dret("Align#Align")
    return
   endif
+  if exists("s:AlignStyle") && s:AlignStyle == ":"
+   echohl Error |echo '(Align#Align) your AlignStyle is ":", which implies "do-no-alignment"!'|echohl None
+"   call Dret("Align#Align")
+   return
+  endif
 
   " set up a list akin to an argument list
   if a:0 > 0
@@ -986,12 +1001,12 @@ fun! s:Strlen(x)
    " 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately 
    " preceded by lam, one otherwise, etc.)
    " (comment from TM, solution from me)
-   let modkeep= &mod
+   let modkeep= &l:mod
    exe "norm! o\<esc>"
    call setline(line("."),a:x)
    let ret= virtcol("$") - 1
    d
-   let &mod= modkeep
+   let &l:mod= modkeep
 
   else
    " at least give a decent default
diff --git a/autoload/AlignMaps.vim b/autoload/AlignMaps.vim
index 3246afb..ace2de8 100644
--- a/autoload/AlignMaps.vim
+++ b/autoload/AlignMaps.vim
@@ -1,13 +1,13 @@
 " AlignMaps.vim : support functions for AlignMaps
 "   Author: Charles E. Campbell, Jr.
-"   Date:   Oct 24, 2008
-" Version:           40
+"   Date:   Mar 03, 2009
+" Version:           41
 " ---------------------------------------------------------------------
 "  Load Once: {{{1
 if &cp || exists("g:loaded_AlignMaps")
  finish
 endif
-let g:loaded_AlignMaps= "v40"
+let g:loaded_AlignMaps= "v41"
 let s:keepcpo         = &cpo
 set cpo&vim
 
@@ -16,7 +16,7 @@ set cpo&vim
 
 " ---------------------------------------------------------------------
 " AlignMaps#WrapperStart: {{{2
-fun! AlignMaps#WrapperStart(vis)
+fun! AlignMaps#WrapperStart(vis) range
 "  call Dfunc("AlignMaps#WrapperStart(vis=".a:vis.")")
 
   if a:vis
@@ -55,7 +55,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " AlignMaps#WrapperEnd:	{{{2
-fun! AlignMaps#WrapperEnd()
+fun! AlignMaps#WrapperEnd() range
 "  call Dfunc("AlignMaps#WrapperEnd() alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z"))
 
   " remove trailing white space introduced by whatever in the modification zone
@@ -103,7 +103,7 @@ endfun
 
 " ---------------------------------------------------------------------
 " AlignMaps#StdAlign: some semi-standard align calls {{{2
-fun! AlignMaps#StdAlign(mode)
+fun! AlignMaps#StdAlign(mode) range
 "  call Dfunc("AlignMaps#StdAlign(mode=".a:mode.")")
   if     a:mode == 1
    " align on @
@@ -157,12 +157,12 @@ endfun
 
 " ---------------------------------------------------------------------
 " AlignMaps#Equals: supports \t= and \T= {{{2
-fun! AlignMaps#Equals()
+fun! AlignMaps#Equals() range
 "  call Dfunc("AlignMaps#Equals()")
   'a,'zs/\s\+\([*/+\-%|&\~^]\==\)/ \1/e
   'a,'zs@ \+\([*/+\-%|&\~^]\)=@\1=@ge
-  'a,'zs/==/\="\<Char-0xff>\<Char-0xff>"/ge
-  'a,'zs/!=/\="!\<Char-0xff>"/ge
+  'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge
+  'a,'zs/\([!<>:]\)=/\=submatch(1)."\<Char-0x0f>"/ge
   norm g'zk
   AlignCtrl mIp1P1=l =
   AlignCtrl g =
@@ -174,15 +174,15 @@ fun! AlignMaps#Equals()
    'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e
    'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e
    if exists("g:mapleader")
-	exe "norm 'zk"
-	call AlignMaps#StdAlign(1)
+    exe "norm 'zk"
+    call AlignMaps#StdAlign(1)
    else
-	exe "norm 'zk"
-	call AlignMaps#StdAlign(1)
+    exe "norm 'zk"
+    call AlignMaps#StdAlign(1)
    endif
    'y,'zs/^\(\s*\) @/\1/e
   endif
-  'a,'z-1s/\%xff/=/ge
+  'a,'z-1s/\%x0f/=/ge
   'y,'zs/ @//eg
 "  call Dret("AlignMaps#Equals")
 endfun
diff --git a/debian/changelog b/debian/changelog
index 2f1a362..1b3c2a5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,7 +6,7 @@ vim-scripts (20090211-2) UNRELEASED; urgency=low
     (Closes: #539380)
   * addons upgrades:
     - supertab, DoxygenToolkit, NERD_commenter, Color Sampler Pack, xmledit,
-      VCSCommand
+      VCSCommand, Align
   * Add disabledby-doxygentoolkit.diff patch, which enables the commented out
     plugin loaded check.
   * Add xml-nodocs.diff patch, which disables xmledit's "automatic
diff --git a/debian/vim-scripts.status b/debian/vim-scripts.status
index efe2027..a3f88b1 100644
--- a/debian/vim-scripts.status
+++ b/debian/vim-scripts.status
@@ -116,7 +116,7 @@ email:       drchip at campbellfamily.biz
 license:     licese [4], see below
 extras:	     doc/Align.txt, plugin/AlignMapsPlugin.vim, plugin/cecutil.vim, autoload/Align.vim, autoload/AlignMaps.vim
 disabledby:  let loaded_alignPlugin = 1
-version:     34/40
+version:     35/41
 
 script_name: plugin/cvsmenu.vim
 addon:       cvsmenu
diff --git a/doc/Align.txt b/doc/Align.txt
index ce80238..c447372 100644
--- a/doc/Align.txt
+++ b/doc/Align.txt
@@ -1,4 +1,4 @@
-*align.txt*	The Alignment Tool			Oct 29, 2008
+*align.txt*	The Alignment Tool			Mar 04, 2009
 
 Author:    Charles E. Campbell, Jr.  <NdrOchip at ScampbellPfamily.AbizM>
            (remove NOSPAM from Campbell's email first)
@@ -51,8 +51,17 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr.	*Align-copyright*
 ==============================================================================
 2. Align Manual			*alignman* *alignmanual* *align-manual* {{{1
 
-	To Enable: put <Align.vim> and <AlignMaps.vim> into your .vim/plugin
-	To see a user's guide, see |align-usage|
+	Align comes as a vimball; simply typing >
+		vim Align.vba.gz
+		:so %
+<	should put its components where they belong.  The components are: >
+		.vim/plugin/AlignPlugin.vim
+		.vim/plugin/AlignMapsPlugin.vim
+		.vim/plugin/cecutil.vim
+		.vim/autoload/Align.vim
+		.vim/autoload/AlignMaps.vim
+		.vim/doc/Align.txt
+<	To see a user's guide, see |align-userguide|
 	To see examples, see |alignctrl| and |alignmaps|
 >
 /=============+=========+=====================================================\
@@ -130,7 +139,7 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr.	*Align-copyright*
 \=============================================================================/
 
 ==============================================================================
-3. Alignment Usage				*alignusage* *align-usage* {{{1
+3. Alignment Usage	*alignusage* *align-usage* *align-userguide* {{{1
 
 
 ALIGNMENT CONCEPTS			*align-concept* *align-concepts* {{{2
@@ -179,8 +188,8 @@ ALIGNMENT CONCEPTS			*align-concept* *align-concepts* {{{2
 		 xx =  yy =  zz = 4;
 		zzz = yyy = zzz = 5;
 		  a =   b =   c = 3;
-<	There are more options available for field justification: see
-	|alignctrl-c|.
+<	There are many more options available for field justification: see
+	|alignctrl-c| and |alignctrl--|.
 
 	Separators, although commonly only one character long, are actually
 	specified by regular expressions (see |regexp|), and one may left
@@ -221,7 +230,7 @@ ALIGNMENT COMMANDS			*align-command* *align-commands* {{{2
 			ex. :%Align ,
 			    Interpretation: align all commas over the entire
 			    file.
-<		      The :Align! format permits alignment control commands 
+<		      The :Align! format permits alignment control commands
 		      to precede the alignment patterns. >
 			ex. :%Align! p2P2 =
 <		      This will align all "=" in the file with two padding
@@ -229,7 +238,7 @@ ALIGNMENT COMMANDS			*align-command* *align-commands* {{{2
 
 		      NOTE ON USING PATTERNS WITH ALIGN:~
 		      Align and AlignCtrl use |<q-args>| to obtain their
-		      input patterns and they use an internal function to 
+		      input patterns and they use an internal function to
 		      split arguments at whitespace unless inside "..."s.
 		      One may escape characters inside a double-quote string
 		      by preceding such characters with a backslash.
@@ -249,7 +258,8 @@ ALIGNMENT COMMANDS			*align-command* *align-commands* {{{2
 			    used (at least once) previously; this command
 			    restores the AlignCtrl settings when AlignPush
 			    was last used.
-<
+<	              Also see |alignctrl-m| for a way to automatically do
+	              an AlignPop after an Align (primarily this is for maps).
 
 ALIGNMENT OPTIONS			*align-option* *align-options* {{{2
     *align-utf8* *align-utf* *align-codepoint* *align-strlen* *align-multibyte*
@@ -258,9 +268,20 @@ ALIGNMENT OPTIONS			*align-option* *align-options* {{{2
 	available with utf-8, Align now provides a special option which you
 	may choose based upon your needs:
 
+	Use Built-in strlen() ~
+>
+			let g:Align_xstrlen= 0
+
+<       This is the fastest method, but it doesn't handle multibyte characters
+	well.  It is the default for:
+
+	  enc=latin1
+	  vim compiled without multi-byte support
+	  $LANG is en_US.UTF-8 (assuming USA english)
+
 	Number of codepoints (Latin a + combining circumflex is two codepoints)~
 >
-			let g:Align_xstrlen= 1:
+			let g:Align_xstrlen= 1              (default)
 <
 	Number of spacing codepoints (Latin a + combining circumflex is one~
 	spacing codepoint; a hard tab is one; wide and narrow CJK are one~
@@ -276,7 +297,7 @@ ALIGNMENT OPTIONS			*align-option* *align-options* {{{2
 <
 	By putting one of these settings into your <.vimrc>, Align will use an
 	internal (interpreted) function to determine a string's length instead
-	of the Vim's built-in |strlen()| function.  As the function is
+	of the Vim's built-in |strlen()| function.  Since the function is
 	interpreted, Align will run a bit slower but will handle such strings
 	correctly.  The last setting (g:Align_xstrlen= 3) probably will run
 	the slowest but be the most accurate.  (thanks to Tony Mechelynck for
@@ -286,17 +307,17 @@ ALIGNMENT OPTIONS			*align-option* *align-options* {{{2
 ALIGNMENT CONTROL				*alignctrl* *align-control* {{{2
 
 	This command doesn't do the alignment operation itself; instead, it
-	controls the subsequent alignment operation(s).
+	controls subsequent alignment operation(s).
 
 	The first argument to AlignCtrl is a string which may contain one or
-	more alignment control commands.  Most of the commands are single
-	letter commands; the exceptions are the p# and P# commands which
-	interpret digits following the p or P as specifying padding about the
+	more alignment control settings.  Most of the settings are specified
+	by single letters; the exceptions are the p# and P# commands which
+	interpret a digit following the p or P as specifying padding about the
 	separator.
 
 	The typical text line is considered to be composed of two or more
-	fields separated by one or more separator pattern(s):
->
+	fields separated by one or more separator pattern(s): >
+
 		ws field ws separator ws field ws separator ...
 <
 	where "ws" stands for "white space" such as blanks and/or tabs.
@@ -306,9 +327,11 @@ ALIGNMENT CONTROL				*alignctrl* *align-control* {{{2
 
 	As a result, separators may not have white space (tabs or blanks) on
 	their outsides (ie.  ":  :" is fine as a separator, but " :: " is
-	not).  Usually such separators are not needed.
+	not).  Usually such separators are not needed, although a map has been
+	provided which works around this limitation and aligns on whitespace
+	(see |alignmap-tsp|).
 
-	However, if you really need to have such separators with leading or
+	However, if you really need to have separators with leading or
 	trailing whitespace, consider handling them by performing a substitute
 	first (ie. s/  ::  /@/g), do the alignment on the temporary pattern
 	(ie. @), and then perform a substitute to revert the separators back
@@ -401,11 +424,11 @@ ALIGNMENT CONTROL				*alignctrl* *align-control* {{{2
 
 	  The first "=" separator is skipped by the "-" specification,
 	  and so "a=bb", "ccc=a", and "dd=eee" are considered as single fields.
-         
+
 	  The next "=" separator has its (left side) field left-justified.
 	  Due to the cyclic nature of separator patterns, the "-l"
 	  specification is equivalent to "-l-l-l ...".
-         
+
 	  Hence the next specification is a "skip", so "ccc=1", etc are fields.
 
 	In the second example in "More justification options":
@@ -533,7 +556,7 @@ ALIGNMENT CONTROL				*alignctrl* *align-control* {{{2
 
 	Separators may be of differing lengths as shown in the example below.
 	Hence they too may be justified left, right, or centered.
-	Furthermore, separator justification specification is cyclic:
+	Furthermore, separator justification specifications are cyclic:
 
 		<  means <<<<<...    justify separator(s) to the left
 		>  means >>>>>...    justify separator(s) to the right
@@ -595,7 +618,7 @@ ALIGNMENT CONTROL				*alignctrl* *align-control* {{{2
 		AlignCtrl v
 <
 	To see what g/v patterns are currently active, just use the reporting
-	capability of a plain AlignCtrl call: >
+	capability of an unadorned call to AlignCtrl: >
 
 		AlignCtrl
 <
@@ -656,6 +679,13 @@ ALIGNMENT CONTROL				*alignctrl* *align-control* {{{2
 	padded on the right with spaces (left justification), and separators
 	will be padded on each side with a single space.
 
+	To change one of these items, see:
+
+	  AlignCtrl......|alignctrl|
+	  qty............|align-concept|
+	  AlignStyle.....|alignctrl--| |alignctrl-+| |alignctrl-:||alignctrl-c|
+	  Padding........|alignctrl-p| |alignctrl-P|
+
 	One may get a string which can be fed back into AlignCtrl: >
 
 		:let alignctrl= Align#AlignCtrl()
@@ -680,7 +710,7 @@ ALIGNMENT						*align-align* {{{2
 
 		:[range]Align [list-of-separators]
 <
-	where the |range| is the usual Vim-powered set of possibilities; the
+	where the |:range| is the usual Vim-powered set of possibilities; the
 	list of separators is the same as the AlignCtrl capability.  There is
 	only one list of separators, but either AlignCtrl or Align can be used
 	to specify that list.
@@ -728,19 +758,19 @@ ALIGNMENT						*align-align* {{{2
 ==============================================================================
 4. Alignment Maps				*alignmaps* *align-maps* {{{1
 
-	There are a number of maps using Align#AlignCtrl() and Align#Align() in the
-	<AlignMaps.vim> file.  This file may also be put into the plugins
-	subdirectory.  Since AlignCtrl and Align supercede textab and its
-	<ttalign.vim> file, the maps either have a leading "t" (for "textab")
-	or the more complicated ones an "a" (for "alignment") for backwards
-	compatibility.
+	There are a number of maps using Align#AlignCtrl() and Align#Align()
+	in the <AlignMapsPlugin.vim> file.  This file may also be put into the
+	plugins subdirectory.  Since AlignCtrl and Align supercede textab and
+	its <ttalign.vim> file, the maps either have a leading "t" (for
+	"textab") or the more complicated ones an "a" (for "alignment") for
+	backwards compatibility.
 
-	Thee maps are shown below with a leading backslash (\).  Actually,
-	the <Leader> construct is used (see :help mapleader), so the leading
-	map kick-off character is easily customized.
+	The maps are shown below with a leading backslash (\).  Actually, the
+	<Leader> construct is used (see |mapleader|), so the maps' leading
+	kick-off character is easily customized.
 
-	Furthermore, all AlignMaps.vim maps use the <Plug> construct (see
-	|<Plug>|and |<usr_41.txt|).  Hence, if one wishes to override the
+	Furthermore, all AlignMapsPlugin.vim maps use the <Plug> construct (see
+	|<Plug>|and |usr_41.txt|).  Hence, if one wishes to override the
 	mapping entirely, one may do that, too.  As an example: >
 		map <Leader>ACOM	<Plug>AM_acom
 <	would have \ACOM do what \acom previously did (assuming that the
@@ -748,6 +778,7 @@ ALIGNMENT						*align-align* {{{2
 
 	  \a,   : useful for breaking up comma-separated
 	          declarations prior to \adec			|alignmap-a,|
+	  \a(   : aligns ( and , (useful for prototypes)        *alignmap-a(*
 	  \a?   : aligns (...)? ...:... expressions on ? and :	|alignmap-a?|
 	  \a<   : aligns << and >> for c++			|alignmap-a<|
 	  \a=   : aligns := assignments   			|alignmap-a=|
@@ -777,6 +808,12 @@ ALIGNMENT						*align-align* {{{2
 	          (left justified)
 	  \ts,  : like \t, but swaps whitespace on the right of *alignmap-ts,*
 	          the commas to their left
+	  \ts:  : like \t: but swaps whitespace on the right of *alignmap-ts:*
+	          the colons to their left
+	  \ts<  : like \t< but swaps whitespace on the right of *alignmap-ts<*
+	          the less-than signs to their left
+	  \ts=  : like \t= but swaps whitespace on the right of *alignmap-ts=*
+	          the equals signs to their left
 	  \Tsp  : use Align to make a table separated by blanks	|alignmap-Tsp|
 	          (right justified)
 	  \tsq  : use Align to make a table separated by blanks	|alignmap-tsq|
@@ -808,7 +845,7 @@ ALIGNMENT						*align-align* {{{2
 
 	ALIGNMENT MAP USE WITH VISUAL MODE~
 	Alternatively, one may select the text with the "V" visual mode
-	selector.
+	command.
 
 	ALIGNMENT MAP USE WITH MENUS~
 	One may use the mark-and-move style (ma, move, use the menu) or
@@ -816,7 +853,7 @@ ALIGNMENT						*align-align* {{{2
 	the alignment map with menu selection).  The alignment map menu
 	items are under DrChip.AlignMaps .
 
-	One may change the top level menu name to whatever is wished; by
+	One may even change the top level menu name to whatever is wished; by
 	default, its >
 		let g:DrChipTopLvlMenu= "DrChip."
 <	If you set the variable to the empty string (""), then no menu items
@@ -825,14 +862,19 @@ ALIGNMENT						*align-align* {{{2
 	must be included).
 
 	COMPLEX ALIGNMENT MAP METHOD~
+
 	For those complex alignment maps which do alignment on constructs
 	(e.g. \acom, \adec, etc), a series of substitutes is used to insert
-	"@" symbols in appropriate locations.  Align#Align() is then used to do
-	alignment directly on "@"s; then it is followed by further substitutes
-	to do clean-up.  However, the maps \WS and \WE protect any original
-	embedded "@" symbols by first converting them to <DEL> characters,
-	doing the requested job, and then converting them back.
+	"@" symbols in appropriate locations.  Align#Align() is then used to
+	do alignment directly on "@"s; then it is followed by further
+	substitutes to do clean-up.  However, the maps \WS and \WE, used by
+	every map supported by AlignMaps, protect any original embedded "@"
+	symbols by first converting them to <DEL> characters, doing the
+	requested job, and then converting them back. >
 
+	    \WS  calls AlignMaps#WrapperStart()
+	    \WE  calls AlignMaps#WrapperEnd()
+<
 
 	---------------------------
 	Alignment Map Examples: \a,			*alignmap-a,* {{{3
@@ -1136,7 +1178,7 @@ ALIGNMENT						*align-align* {{{2
 	Also see |alignmap-acom|
 
 
-	---------------------------
+	---------------------------			*alignmap-Tsp*
 	Alignment Map Examples: \tsp			*alignmap-tsp* {{{3
 	---------------------------
 
@@ -1266,9 +1308,14 @@ ALIGNMENT						*align-align* {{{2
 	  <TR><TD> ...field three... </TD><TD> ...field four... </TD></TR>
 <
 ==============================================================================
-4. Alignment Tool History				*align-history* {{{1
+4. Alignment Tools' History				*align-history* {{{1
 
 ALIGN HISTORY								{{{2
+	35 : Nov 02, 2008 * g:loaded_AlignPlugin testing to prevent re-loading
+			    installed
+	     Nov 19, 2008 * new sanity check for an AlignStyle of just ":"
+	     Jan 08, 2009 * save&restore of |'mod'| now done with local
+			    variant
 	34 : Jul 08, 2008 * using :AlignCtrl before entering any alignment
 			    control commands was causing an error.
 	33 : Sep 20, 2007 * s:Strlen() introduced to support various ways
@@ -1330,11 +1377,19 @@ ALIGN HISTORY								{{{2
 	11 : Jul 08, 2002 : prevent separator patterns which match zero length
 	                    -+: included as additional alignment/justification
 	                    styles
-	10 : Jun 26, 2002 : =~# used instead of =~ (for matching case) 
+	10 : Jun 26, 2002 : =~# used instead of =~ (for matching case)
 	                    ignorecase option handled
 	 9 : Jun 25, 2002 : implemented cyclic padding
 
 ALIGNMENT MAP HISTORY					*alignmap-history* {{{2
+       v41    Nov 02, 2008   * g:loaded_AlignMapsPlugin testing to prevent
+			       re-loading installed
+			     * AlignMaps now use 0x0f (ctrl-p) for special
+			       character substitutions (instead of 0xff).
+			       Seems to avoid some problems with having to
+			       use Strlen().
+			     * bug fixed with \ts,
+			     * new maps: \ts; \ts, \ts: \ts< \ts= \a(
        v40    Oct 21, 2008   * Modified AlignMaps so that its maps use <Plug>s
 			       and <script>s.  \t@ and related maps have been
 			       changed to call StdAlign() instead.  The
diff --git a/html/index.html b/html/index.html
index 1a13100..0c749c9 100644
--- a/html/index.html
+++ b/html/index.html
@@ -50,7 +50,7 @@
    <li><a href="syntax_mkd.vim.html">syntax/mkd.vim.html</a></li>
   </ul>
   <p>
-  Page generated on Tue, 01 Sep 2009 23:15:14 -0400
+  Page generated on Tue, 01 Sep 2009 23:22:02 -0400
 .
   </p>
  </body>
diff --git a/html/plugin_AlignPlugin.vim.html b/html/plugin_AlignPlugin.vim.html
index 6ec2c41..4e18622 100644
--- a/html/plugin_AlignPlugin.vim.html
+++ b/html/plugin_AlignPlugin.vim.html
@@ -3,7 +3,7 @@
 
 <head>
   <link rel="Stylesheet" type="text/css" href="/css/style.css" >
-  <title>Align - Provides commands and maps to help produce aligned text, eqns, declarations, etc : vim online</title>
+  <title>Align - Help folks to align text, eqns, declarations, tables, etc : vim online</title>
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <meta name="KEYWORDS" content="Vim, Vi IMproved, text editor, home, documentation, tips, scripts, news">
   <link rel="shortcut icon" type="image/x-icon" href="/images/vim_shortcut.ico">
@@ -46,6 +46,19 @@
     <tr>
         <td><small>not logged in (<a href="/login.php">login</a>)</small></td>
     </tr>
+    <tr><td>
+<small>&nbsp;</small>
+<form action="http://www.google.com/cse" id="cse-search-box">
+  <div>
+    <input type="hidden" name="cx" value="partner-pub-3005259998294962:bvyni59kjr1" />
+    <input type="hidden" name="ie" value="ISO-8859-1" />
+    <input type="text" name="q" size="20" />
+    <br>
+    <input type="submit" name="sa" value="Search" />
+  </div>
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en"></script>
+    </td></tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="1"></td>
     </tr>
@@ -59,7 +72,7 @@
             <td class="sidebarheader"><a href="/index.php">Home</a></td>
         </tr>
         <tr>
-            <td class="sidebarheader"><a href="/search.php">Search</a></td>
+            <td class="sidebarheader"><a href="/search.php">Advanced search</a></td>
         </tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="7"></td>
@@ -143,7 +156,7 @@
         <tr>
           <td valign="top">
 
-<span class="txth1">Align : Provides commands and maps to help produce aligned text, eqns, declarations, etc</span> 
+<span class="txth1">Align : Help folks to align text, eqns, declarations, tables, etc</span> 
 
 <br>
 <br>
@@ -153,8 +166,8 @@
 <tr>
   <td class="lightbg"><b>&nbsp;script karma&nbsp;</b></td>
   <td>
-    Rating <b>1041/320</b>,
-    Downloaded by 12450  </td>
+    Rating <b>1211/371</b>,
+    Downloaded by 15569  </td>
 </tr>
 </table>
 <p>
@@ -170,7 +183,7 @@
 <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ALIGN/ALIGNMAPS NEEDS VIM 7.0 AS OF V29/34]
<br>
<br>Align and AlignMaps lets you align statements on their equal signs, make comment boxes, align comments, align declarations, etc.
<br>
<br>Note: this plugin is not a left&right margin justification tool!&nbsp;&nbsp;See <a href="/scripts/script.php?script_id=177">vimscript#177</a> or <a href="/scripts/script.php?script_id=2324">vimscript#2324</a> for that.
<br>Note: if you have vim 7.1 or later, your vimball should unpack just fine without having to update it.
<br>
<br>There are two basic commands provided by this package:
<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AlignCtrl options sep1 sep2 sep3 ...
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[range]Align sep1 sep2 sep3 ...
<br>
<br>The &quot;sep#&quot; are regular expressions which describe separators that delineate fields; Align will line up the separators. The range may be any Vim range, _including_ visual-blocks.&nbsp;&nbsp;Align works on lines of the form:
<br>(ws==whitespace, sep==separator, field==text)
<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;ws-field-ws-sep-ws-field-ws-sep-ws-field-...
<br>&nbsp;&nbsp;&nbsp;&nbsp;ws-field-ws-sep-ws-field-ws-sep-ws-field-...
<br>
<br>Note that white-space (ws) surrounding separators is ignored.
<br>
<br>The Align package includes:
<br>
<br>&nbsp;&nbsp;Align : the basic alignment command
<br>&nbsp;&nbsp;AlignCtrl : provides options for the next call to :Align
<br>&nbsp;&nbsp;AlignMaps : many three or four key maps which support aligning C/C++ style declarations, ()?..:.., expressions, C/C++ comments, numbers, C preprocessor definitions, tables based on tabs or spaces, and more.
<br>
<br>In addition, AutoAlign (<a href="/scripts/script.php?script_id=884">vimscript#884</a>) uses the Align function to align =s as you type.
<br>
<br>Align handles alignment on multiple separators, not just the first one, and the separators may be the same across the line or different.&nbsp;&nbsp;With AlignCtrl one may specify that separators are cyclic (re-used sequentially) or equivalent (all separators are simultaneously active).
<br>
<br>There are several options to help with deciding what to do with initial white space.&nbsp;&nbsp; By default Align re-uses the first line's initial white space, but one may use AlignCtrl to retain or remove each line's initial white space.
<br>
<br>The &lt;Align.vim&gt; and &lt;AlignMaps.vim&gt; files are plugins and require vim 6.1 or higher.
<br>
<br>
<br>EXAMPLES:
<br>
<br>:5,10Align =
<br>&nbsp;&nbsp;&nbsp;&nbsp;Align on '=' signs
<br>
<br>:'&lt;,'&gt;Align = + - \* /
<br>&nbsp;&nbsp;&nbsp;&nbsp;Align on any of the five separator characters shown.
<br>&nbsp;&nbsp;&nbsp;&nbsp;Note that visual block mode was used to fire off Align.
<br>
<br>:AlignCtrl =lp1P1I
<br>&nbsp;&nbsp;&nbsp;&nbsp;which means:
<br>&nbsp;&nbsp;&nbsp;&nbsp;= all separators are equivalent
<br>&nbsp;&nbsp;&nbsp;&nbsp;l fields will be left-justified
<br>&nbsp;&nbsp;&nbsp;&nbsp;p1 pad one space before each separator
<br>&nbsp;&nbsp;&nbsp;&nbsp;P1 pad one space after each separator
<br>&nbsp;&nbsp;&nbsp;&nbsp;I&nbsp;&nbsp;preserve and apply the first line's leading white space to all
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Align'd lines
<br>
<br>:help align
<br>&nbsp;&nbsp;&nbsp;&nbsp;Gives help for Align
<br>
<br>
<br>ALIGNMENT CONTROL
<br>
<br>Alignment control allows for left or right justification or centering of fields, cyclic (sequentially active) or equivalent (simultaneously active) regular expressions to specify field separators, initial white space control, optional visual-block use (ie. apply Alignment only within a block), user-specified white-space padding about separators, and multiple separators.
<br>
<br>MANY ALIGNMENT MAPS
<br>
<br>AlignMaps.vim provides a number of maps which make using this package easy.&nbsp;&nbsp;They typically either apply to the range 'a,. (from mark a to current line) or use the visual-selection (V, v, or ctrl-v selected):
<br>
<br>	\t=&nbsp;&nbsp;: align assignments (don't count logic, like == or !=)
<br>	\t,&nbsp;&nbsp;: align on commas
<br>	\t|&nbsp;&nbsp;: align on vertical bars (|)
<br>	\tsp : align on whitespace
<br>	\tt&nbsp;&nbsp;: align LaTeX tabular tables
<br>
<br>AlignMaps also provides some internally complex maps for aligning C declarations, Ansi C function arguments, html tables, LaTeX tabulars, and trailing comments:
<br>
<br>	\acom : align comments
<br>	\adec : align C declarations (one variable per line)
<br>	\afnc : align ansi-style C function input arguments
<br>	\Htd&nbsp;&nbsp;: align html tables
<br>	
<br>To see some examples of this, check out
<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;<a target="_blank" href="http://mysite.verizon.net/astronaut/vim/align.html#Examples">http://mysite.verizon.net/astronaut/vim/align.html#Examples</A>
<br>
<br>(the proportional fonts used by most browsers in showing you this page preclude showing the examples here). The help for Align and AlignCtrl also contains many examples.
<br>
<br>ALIGNMENT ON VISUAL BLOCKS AND g,v-LIKE CONTROL
<br>
<br>Sometimes one wants to align only a subset of text in a range, based on patterns or column extents.&nbsp;&nbsp;Align supports both types of restrictions!
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;Visual-block selection may be used to restrict Align to operate only
<br>&nbsp;&nbsp;&nbsp;&nbsp;within that visual block.
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;AlignCtrl supports &quot;g&quot; and &quot;v&quot; patterns that restrict Align to
<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;operate on lines which match (or don't match, respectively) those
<br>&nbsp;&nbsp;&nbsp;&nbsp;patterns.
<br>
<br>NEW STUFF:
<br>
<br>There's a number of new AlignCtrl options:
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;- allows one to skip a separator (treat it as part of a field)
<br>&nbsp;&nbsp;&nbsp;&nbsp;+ repeat the last lrc justification (ex. lr+ == lrrrrrr... )
<br>&nbsp;&nbsp;&nbsp;&nbsp;: treat the rest of the line as a field; acts as a modifier
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to the last lrc. 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt; left-justify the separator
<br>&nbsp;&nbsp;&nbsp;&nbsp;&gt; right-justify the separator
<br>&nbsp;&nbsp;&nbsp;&nbsp;| center the separator
<br>
<br>These are, except for the &quot;:&quot;, cyclic parameters.&nbsp;&nbsp;In other words, &gt;&lt; is equivalent to &gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;... .&nbsp;&nbsp;Thus separators can be of differing lengths (ex.&nbsp;&nbsp;-\+ as a separator pattern can match -, --, ---, etc and the separators will be left/right/center justified as you wish).
<br>
<br>To get automatic, as-you-type, aligning of = in the C, vimL, and other languages, check out <a href="/scripts/script.php?script_id=884">vimscript#884</a> for several ftplugins (which use Align).
<br>
<br>
<br>Alternative Aligners:
<br>&nbsp;&nbsp;&nbsp;&nbsp;Gergely Kontra's <a href="/scripts/script.php?script_id=176">vimscript#176</a>
<br>
<br>Thank you for rating Align!
<br>
<br>---------------------------------------
<br>DISCUSSION and COMMENTS:
<br>---------------------------------------
<br>
<br>Please use email for bugs.&nbsp;&nbsp;Enjoy!
<br>
<br></td></tr>
 <tr><td>&nbsp;</td></tr>
 <tr><td class="prompt">install details</td></tr>
-<tr><td>1. Using vim 7.1:
<br>&nbsp;&nbsp;vim Align.vba.gz
<br>&nbsp;&nbsp; :so %
<br>&nbsp;&nbsp; :q
<br>2. Using vim 7.0: see <a target="_blank" href="http://mysite.verizon.net/astronaut/vim/index.html#VIMBALL">http://mysite.verizon.net/astronaut/vim/index.html#VIMBALL</A> to get and install an up-to-date version of vimball.&nbsp;&nbsp;Then follow the simple directions for installation of Align/AlignMaps above!
<br>
<br>(this version of Align/AlignMaps requires vim 7.0)
<br></td></tr>
+<tr><td>1. You'll need to have plugins enabled: in your home directory, have at least the following two lines in your .vimrc file:
<br>&nbsp;&nbsp; set nocp
<br>&nbsp;&nbsp; filetype plugin on
<br>
<br>2. Using vim 7.1 or later:
<br>&nbsp;&nbsp;vim Align.vba.gz
<br>&nbsp;&nbsp; :so %
<br>&nbsp;&nbsp; :q
<br>
<br>3. Using vim 7.0: see <a target="_blank" href="http://mysite.verizon.net/astronaut/vim/index.html#VIMBALL">http://mysite.verizon.net/astronaut/vim/index.html#VIMBALL</A> to get and install an up-to-date version of vimball.&nbsp;&nbsp;Then follow the simple directions for installation of Align/AlignMaps above!&nbsp;&nbsp;Or, preferably: upgrade your copy of vim.
<br>
<br>(this version of Align/AlignMaps requires vim 7.0)
<br></td></tr>
 <tr><td>&nbsp;</td></tr>
 </table>
 
@@ -204,76 +217,84 @@ Click on the package to download.
     <th valign="top">release notes</th>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=9414">Align.vba.gz</a></td>
-    <td class="rowodd" valign="top" nowrap><b>34/40</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2008-10-29</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=10110">Align.vba.gz</a></td>
+    <td class="rowodd" valign="top" nowrap><b>35/41</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2009-03-04</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="rowodd" valign="top" width="2000">(AlignMaps) split into plugin/ and autoload/ sections (faster [g]vim startup)
<br>(AlignMaps) maps use &lt;Plug&gt;s and &lt;script&gt;s: allowing users to invoke the maps how they wish, and preventing user maps from interfering with the internal workings of the maps.
<br>(Align)&nbsp;&nbsp;&nbsp;&nbsp; bugfix - using :AlignCtrl before entering any alignment ctrl cmds was causing an error
<br></td>
+    <td class="rowodd" valign="top" width="2000">Align: save and restore of mod now done with the local version of the option
<br>Align: new sanity check for an AlignStyle of just &quot;:&quot;
<br>AlignMaps: new maps: \ts; ts: \ts&lt; \ts= \a(
<br>AlignMaps: default g:Align_xstrlen often is now 1 for multi-byte support
<br>AlignMaps: bug fixed for \ts,
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8407">Align.vba.gz</a></td>
-    <td class="roweven" valign="top" nowrap><b>33/39</b></td>
-    <td class="roweven" valign="top" nowrap><i>2008-03-06</i></td>
-    <td class="roweven" valign="top" nowrap>6.0</td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=9414">Align.vba.gz</a></td>
+    <td class="roweven" valign="top" nowrap><b>34/40</b></td>
+    <td class="roweven" valign="top" nowrap><i>2008-10-29</i></td>
+    <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="roweven" valign="top" width="2000">* Align now aligns multi-byte characters correctly (see :help align-strlen) -- choose g:Align_xstrlen for the type of codepoint you want handled.
<br>
<br>* Align now accepts \&quot;...\&quot; arguments, so one can pass whitespace to Align as a separator
<br>
<br>* AlignMaps&#039 \\t= map now avoids comment aligning when the filetype is not *.c or *.cpp</td>
+    <td class="roweven" valign="top" width="2000">(AlignMaps) split into plugin/ and autoload/ sections (faster [g]vim startup)
<br>(AlignMaps) maps use &lt;Plug&gt;s and &lt;script&gt;s: allowing users to invoke the maps how they wish, and preventing user maps from interfering with the internal workings of the maps.
<br>(Align)&nbsp;&nbsp;&nbsp;&nbsp; bugfix - using :AlignCtrl before entering any alignment ctrl cmds was causing an error
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7531">Align.vba.gz</a></td>
-    <td class="rowodd" valign="top" nowrap><b>32/38</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-08-20</i></td>
-    <td class="rowodd" valign="top" nowrap>7.0</td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8407">Align.vba.gz</a></td>
+    <td class="rowodd" valign="top" nowrap><b>33/39</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-03-06</i></td>
+    <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="rowodd" valign="top" width="2000">The &lt;leader&gt;tt map wasn't working right; Align now uses &lt;q-args&gt; instead of &lt;f-args&gt;, so it does the argument splitting itself, thus allowing patterns containing backslashes to be used without lots of backslash-duplication.&nbsp;&nbsp;This allows the \tt map in AlignMaps to work, and to work without a lot of extra backslashes.</td>
+    <td class="rowodd" valign="top" width="2000">* Align now aligns multi-byte characters correctly (see :help align-strlen) -- choose g:Align_xstrlen for the type of codepoint you want handled.
<br>
<br>* Align now accepts \&quot;...\&quot; arguments, so one can pass whitespace to Align as a separator
<br>
<br>* AlignMaps&#039 \\t= map now avoids comment aligning when the filetype is not *.c or *.cpp</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7511">Align.vba.gz</a></td>
-    <td class="roweven" valign="top" nowrap><b>31/36</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-08-16</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7531">Align.vba.gz</a></td>
+    <td class="roweven" valign="top" nowrap><b>32/38</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-08-20</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="roweven" valign="top" width="2000">New feature -- one can embed AlignCtrl settings into Align (as a one-shot):
<br>
<br>&nbsp;&nbsp; [range]Align! [AlignCtrl settings] pattern(s)
<br>
<br>Plus some small improvements to some of the AlignMaps.</td>
+    <td class="roweven" valign="top" width="2000">The &lt;leader&gt;tt map wasn't working right; Align now uses &lt;q-args&gt; instead of &lt;f-args&gt;, so it does the argument splitting itself, thus allowing patterns containing backslashes to be used without lots of backslash-duplication.&nbsp;&nbsp;This allows the \tt map in AlignMaps to work, and to work without a lot of extra backslashes.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6210">Align.vba.gz</a></td>
-    <td class="rowodd" valign="top" nowrap><b>30/35</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-09-20</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7511">Align.vba.gz</a></td>
+    <td class="rowodd" valign="top" nowrap><b>31/36</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-08-16</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="rowodd" valign="top" width="2000">* \acom can now work with doxygen style /// comments
<br>* \t= and cousins used &quot;`&quot;s.&nbsp;&nbsp;They now use \xff characters.
<br>* &lt;char-0xff&gt; used in \t= \T= \w= and \m= instead of backquotes.
<br></td>
+    <td class="rowodd" valign="top" width="2000">New feature -- one can embed AlignCtrl settings into Align (as a one-shot):
<br>
<br>&nbsp;&nbsp; [range]Align! [AlignCtrl settings] pattern(s)
<br>
<br>Plus some small improvements to some of the AlignMaps.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=5608">Align.vba.gz</a></td>
-    <td class="roweven" valign="top" nowrap><b>29/34</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-04-25</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6210">Align.vba.gz</a></td>
+    <td class="roweven" valign="top" nowrap><b>30/35</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-09-20</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="roweven" valign="top" width="2000">Align and AlignMaps now use vim 7.0 style autoloading (quicker startup, loads only when used)
<br>cecutil updated to use keepjumps
<br>Now being distributed as a vimball - simply :so % it after decompressing it to install
<br></td>
+    <td class="roweven" valign="top" width="2000">* \acom can now work with doxygen style /// comments
<br>* \t= and cousins used &quot;`&quot;s.&nbsp;&nbsp;They now use \xff characters.
<br>* &lt;char-0xff&gt; used in \t= \T= \w= and \m= instead of backquotes.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4788">Align.tar.gz</a></td>
-    <td class="rowodd" valign="top" nowrap><b>28/33</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2005-11-21</i></td>
-    <td class="rowodd" valign="top" nowrap>6.0</td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=5608">Align.vba.gz</a></td>
+    <td class="rowodd" valign="top" nowrap><b>29/34</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-04-25</i></td>
+    <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="rowodd" valign="top" width="2000">bugfix: (Align) Align now works around the report option setting.
<br>bugfix: (Align) AlignCtrl l: wasn't behaving as expected; fixed!
<br>bugfix: (AlignMap) \ts, now uses P1 in its AlignCtrl call
<br></td>
+    <td class="rowodd" valign="top" width="2000">Align and AlignMaps now use vim 7.0 style autoloading (quicker startup, loads only when used)
<br>cecutil updated to use keepjumps
<br>Now being distributed as a vimball - simply :so % it after decompressing it to install
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4421">Align.tar.gz</a></td>
-    <td class="roweven" valign="top" nowrap><b>27/32</b></td>
-    <td class="roweven" valign="top" nowrap><i>2005-07-12</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4788">Align.tar.gz</a></td>
+    <td class="roweven" valign="top" nowrap><b>28/33</b></td>
+    <td class="roweven" valign="top" nowrap><i>2005-11-21</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="roweven" valign="top" width="2000">Align v27 : cpo and ignorecase workarounds
<br>AlignMaps v32: s:WrapperStart() -&gt; AlignWrapperStart(), s:WrapperEnd() -&gt; AlignWrapperEnd()
<br> These changes let the wrappers be used outside of AlignMaps.vim (customized map support)
<br></td>
+    <td class="roweven" valign="top" width="2000">bugfix: (Align) Align now works around the report option setting.
<br>bugfix: (Align) AlignCtrl l: wasn't behaving as expected; fixed!
<br>bugfix: (AlignMap) \ts, now uses P1 in its AlignCtrl call
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4167">Align.tar.gz</a></td>
-    <td class="rowodd" valign="top" nowrap><b>27/31</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2005-04-15</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4421">Align.tar.gz</a></td>
+    <td class="rowodd" valign="top" nowrap><b>27/32</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2005-07-12</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Align: GetLatestVimScripts/AutoInstall supported
<br>AlignMaps: new map: \\adcom (align declaration-style comments), \\a, now wors across multiple lines with different types, cecutil.vim now used, more number alignment maps (\\aenum, \\aunum)
<br></td>
+    <td class="rowodd" valign="top" width="2000">Align v27 : cpo and ignorecase workarounds
<br>AlignMaps v32: s:WrapperStart() -&gt; AlignWrapperStart(), s:WrapperEnd() -&gt; AlignWrapperEnd()
<br> These changes let the wrappers be used outside of AlignMaps.vim (customized map support)
<br></td>
+</tr>
+<tr>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4167">Align.tar.gz</a></td>
+    <td class="roweven" valign="top" nowrap><b>27/31</b></td>
+    <td class="roweven" valign="top" nowrap><i>2005-04-15</i></td>
+    <td class="roweven" valign="top" nowrap>6.0</td>
+    <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=96">Charles Campbell</a></i></td>
+    <td class="roweven" valign="top" width="2000">Align: GetLatestVimScripts/AutoInstall supported
<br>AlignMaps: new map: \\adcom (align declaration-style comments), \\a, now wors across multiple lines with different types, cecutil.vim now used, more number alignment maps (\\aenum, \\aunum)
<br></td>
 </tr>
 </table>
 <!-- finish off the framework -->
@@ -320,7 +341,7 @@ Click on the package to download.
           </td>
 
     <td align="right" valign="top">
-      		<a href="http://sourceforge.net" rel="nofollow"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
+      		<a href="http://sourceforge.net/projects/vim" rel="nofollow"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
     </td>
 
     <td><img src="/images/spacer.gif" width="5" height="1" alt=""></td>
diff --git a/plugin/AlignMapsPlugin.vim b/plugin/AlignMapsPlugin.vim
index 60f6bd5..eed0293 100644
--- a/plugin/AlignMapsPlugin.vim
+++ b/plugin/AlignMapsPlugin.vim
@@ -1,6 +1,6 @@
 " AlignMapsPlugin:   Alignment maps based upon <Align.vim> and <AlignMaps.vim>
 " Maintainer:        Dr. Charles E. Campbell, Jr. <NdrOchipS at PcampbellAfamily.Mbiz>
-" Date:              Oct 24, 2008
+" Date:              Mar 03, 2009
 "
 " NOTE: the code herein needs vim 6.0 or later
 "                       needs <Align.vim> v6 or later
@@ -36,10 +36,11 @@
 
 " ---------------------------------------------------------------------
 " Load Once: {{{1
-if &cp
+if &cp || exists("g:loaded_AlignMapsPlugin")
  finish
 endif
-let s:keepcpo= &cpo
+let s:keepcpo                = &cpo
+let g:loaded_AlignMapsPlugin = "v41"
 set cpo&vim
 
 " =====================================================================
@@ -63,11 +64,12 @@ endif
 nmap <silent> <script> <Plug>AlignMapsWrapperEnd	:call AlignMaps#WrapperEnd()<CR>:set nolz<CR>
 
 " ---------------------------------------------------------------------
-" Complex C-code alignment maps: {{{2!= ""
+" Complex C-code alignment maps: {{{2
 if !hasmapto('<Plug>AM_a?')   |map <unique> <Leader>a?		<Plug>AM_a?|endif
 if !hasmapto('<Plug>AM_a,')   |map <unique> <Leader>a,		<Plug>AM_a,|endif
 if !hasmapto('<Plug>AM_a<')   |map <unique> <Leader>a<		<Plug>AM_a<|endif
 if !hasmapto('<Plug>AM_a=')   |map <unique> <Leader>a=		<Plug>AM_a=|endif
+if !hasmapto('<Plug>AM_a(')   |map <unique> <Leader>a(		<Plug>AM_a(|endif
 if !hasmapto('<Plug>AM_abox') |map <unique> <Leader>abox	<Plug>AM_abox|endif
 if !hasmapto('<Plug>AM_acom') |map <unique> <Leader>acom	<Plug>AM_acom|endif
 if !hasmapto('<Plug>AM_adcom')|map <unique> <Leader>adcom	<Plug>AM_adcom|endif
@@ -88,6 +90,7 @@ endif
 map <silent> <script> <Plug>AM_a?		<SID>WS:AlignCtrl mIp1P1lC ? : : : : <CR>:'a,.Align<CR>:'a,'z-1s/\(\s\+\)? /?\1/e<CR><SID>WE
 map <silent> <script> <Plug>AM_a,		<SID>WS:'y,'zs/\(\S\)\s\+/\1 /ge<CR>'yjma'zk:call AlignMaps#CharJoiner(",")<cr>:silent 'y,'zg/,/call AlignMaps#FixMultiDec()<CR>'z:exe "norm \<Plug>AM_adec"<cr><SID>WE
 map <silent> <script> <Plug>AM_a<		<SID>WS:AlignCtrl mIp1P1=l << >><CR>:'a,.Align<CR><SID>WE
+map <silent> <script> <Plug>AM_a(       <SID>WS:AlignCtrl mIp0P1=l<CR>:'a,.Align [(,]<CR>:sil 'y+1,'z-1s/\(\s\+\),/,\1/ge<CR><SID>WE
 map <silent> <script> <Plug>AM_a=		<SID>WS:AlignCtrl mIp1P1=l<CR>:AlignCtrl g :=<CR>:'a,'zAlign :\==<CR><SID>WE
 map <silent> <script> <Plug>AM_abox		<SID>WS:let g:alignmaps_iws=substitute(getline("'a"),'^\(\s*\).*$','\1','e')<CR>:'a,'z-1s/^\s\+//e<CR>:'a,'z-1s/^.*$/@&@/<CR>:AlignCtrl m=p01P0w @<CR>:'a,.Align<CR>:'a,'z-1s/@/ * /<CR>:'a,'z-1s/@$/*/<CR>'aYP:s/./*/g<CR>0r/'zkYp:s/./*/g<CR>0r A/<Esc>:exe "'a-1,'z-1s/^/".g:alignmaps_iws."/e"<CR><SID>WE
 map <silent> <script> <Plug>AM_acom		<SID>WS:'a,.s/\/[*/]\/\=/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:'y,'zs/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(2)<CR>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
@@ -97,8 +100,8 @@ map <silent> <script> <Plug>AM_ascom	<SID>WS:'a,.s/\/[*/]/@&@/e<CR>:'a,.s/\*\//@
 map <silent> <script> <Plug>AM_adec		<SID>WS:'a,'zs/\([^ \t/(]\)\([*&]\)/\1 \2/e<CR>:'y,'zv/^\//s/\([^ \t]\)\s\+/\1 /ge<CR>:'y,'zv/^\s*[*/]/s/\([^/][*&]\)\s\+/\1/ge<CR>:'y,'zv/^\s*[*/]/s/^\(\s*\%(\K\k*\s\+\%([a-zA-Z_*(&]\)\@=\)\+\)\([*(&]*\)\s*\([a-zA-Z0-9_()]\+\)\s*\(\(\[.\{-}]\)*\)\s*\(=\)\=\s*\(.\{-}\)\=\s*;/\1@\2#@\3\4@\6@\7;@/e<CR>:'y,'zv/^\s*[*/]/s/\*\/\s*$/@*\//e<CR>:'y,'zv/^\s*[*/]/s/^\s\+\*/@@@@@* /e<CR>:'y,'zv/^\s*[*/]/s/^@@@@@\*\(.*[^*/]\)$/&@*/e<CR>'yjma'zk:AlignCtrl v ^\s*[*/#]<CR>:call AlignMaps#StdAlign(1)<cr>:'y,'zv/^\s*[*/]/s/@ //ge<CR>:'y,'zv/^\s*[*/]/s/\(\s*\);/;\1/e<CR>:'y,'zv/^#/s/# //e<CR>:'y,'zv/^\s\+[*/#]/s/\([^/*]\)\(\*\+\)\( \+\)/\1\3\2/e<CR>:'y,'zv/^\s\+[*/#]/s/\((\+\)\( \+\)\*/\2\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/^\(\s\+\) \*/\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/[ \t@]*$//e<CR>:'y,'zs/^[*]/ */e<CR><SID>WE
 map <silent> <script> <Plug>AM_adef		<SID>WS:AlignPush<CR>:AlignCtrl v ^\s*\(\/\*\<bar>\/\/\)<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/^\(\s*\)#\(\s\)*define\s*\(\I[a-zA-Z_0-9(),]*\)\s*\(.\{-}\)\($\<Bar>\/\*\)/#\1\2define @\3@\4@\5/e<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/\($\<Bar>\*\/\)/@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>'yjma'zk:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/ @//g<CR><SID>WE
 map <silent> <script> <Plug>AM_afnc		:<c-u>set lz<CR>:silent call AlignMaps#Afnc()<CR>:set nolz<CR>
-map <silent> <script> <Plug>AM_aunum	<SID>WS:'a,'zs/\%([0-9.]\)\s\+\zs\([-+.]\=\d\)/@\1/ge<CR>:'a,'zs/\(\(^\|\s\)\d\+\)\(\s\+\)@/\1@\3@/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl mp0P0r<CR>:'a,'zAlign [.@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(\.\)\(\s\+\)\([0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
-map <silent> <script> <Plug>AM_aenum	<SID>WS:'a,'zs/\%([0-9.]\)\s\+\([-+]\=\d\)/\1@\2/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl mp0P0r<CR>:'a,'zAlign [,@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(,\)\(\s\+\)\([-0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_aunum	<SID>WS:'a,'zs/\%([0-9.]\)\s\+\zs\([-+.]\=\d\)/@\1/ge<CR>:'a,'zs/\(\(^\|\s\)\d\+\)\(\s\+\)@/\1@\3@/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl wmp0P0r<CR>:'a,'zAlign [.@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(\.\)\(\s\+\)\([0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_aenum	<SID>WS:'a,'zs/\%([0-9.]\)\s\+\([-+]\=\d\)/\1@\2/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl wmp0P0r<CR>:'a,'zAlign [,@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(,\)\(\s\+\)\([-0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
 
 " ---------------------------------------------------------------------
 " html table alignment	{{{2
@@ -128,7 +131,7 @@ map <silent> <script> <Plug>AM_Ts,  <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<C
 map <silent> <script> <Plug>AM_T:   <SID>WS:AlignCtrl mIp1P1=r :<CR>:'a,.Align<CR><SID>WE
 map <silent> <script> <Plug>AM_T;   <SID>WS:AlignCtrl mIp0P0=r ;<CR>:'a,.Align<CR><SID>WE
 map <silent> <script> <Plug>AM_T<   <SID>WS:AlignCtrl mIp0P0=r <<CR>:'a,.Align<CR><SID>WE
-map <silent> <script> <Plug>AM_T=   <SID>WS:'a,'z-1s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'z-1s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'z-1s/; */;@/e<CR>:'a,'z-1s/==/\="\<Char-0xff>\<Char-0xff>"/ge<CR>:'a,'z-1s/!=/\x="!\<Char-0xff>"/ge<CR>:AlignCtrl mIp1P1=r = @<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s/; *@/;/e<CR>:'a,'z-1s/; *$/;/e<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-1s/\xff/=/ge<CR><SID>WE:exe "norm <Plug>acom"
+map <silent> <script> <Plug>AM_T=   <SID>WS:'a,'z-1s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'z-1s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'z-1s/; */;@/e<CR>:'a,'z-1s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'z-1s/!=/\x="!\<Char-0x0f>"/ge<CR>:AlignCtrl mIp1P1=r = @<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s/; *@/;/e<CR>:'a,'z-1s/; *$/;/e<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-1s/\xff/=/ge<CR><SID>WE:exe "norm <Plug>acom"
 map <silent> <script> <Plug>AM_T?   <SID>WS:AlignCtrl mIp0P0=r ?<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
 map <silent> <script> <Plug>AM_T@   <SID>WS:AlignCtrl mIp0P0=r @<CR>:'a,.Align<CR><SID>WE
 map <silent> <script> <Plug>AM_Tab  <SID>WS:'a,.s/^\(\t*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\t','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
@@ -140,11 +143,15 @@ map <silent> <script> <Plug>AM_T~   <SID>WS:AlignCtrl mIp0P0=r ~<CR>:'a,.Align<C
 if !hasmapto('<Plug>AM_t|')	|map <unique> <Leader>t|	<Plug>AM_t||endif
 if !hasmapto('<Plug>AM_t#')		|map <unique> <Leader>t#	<Plug>AM_t#|endif
 if !hasmapto('<Plug>AM_t,')		|map <unique> <Leader>t,	<Plug>AM_t,|endif
-if !hasmapto('<Plug>AM_ts,')	|map <unique> <Leader>ts,	<Plug>AM_ts,|endif
 if !hasmapto('<Plug>AM_t:')		|map <unique> <Leader>t:	<Plug>AM_t:|endif
 if !hasmapto('<Plug>AM_t;')		|map <unique> <Leader>t;	<Plug>AM_t;|endif
 if !hasmapto('<Plug>AM_t<')		|map <unique> <Leader>t<	<Plug>AM_t<|endif
 if !hasmapto('<Plug>AM_t=')		|map <unique> <Leader>t=	<Plug>AM_t=|endif
+if !hasmapto('<Plug>AM_ts,')	|map <unique> <Leader>ts,	<Plug>AM_ts,|endif
+if !hasmapto('<Plug>AM_ts:')	|map <unique> <Leader>ts:	<Plug>AM_ts:|endif
+if !hasmapto('<Plug>AM_ts;')	|map <unique> <Leader>ts;	<Plug>AM_ts;|endif
+if !hasmapto('<Plug>AM_ts<')	|map <unique> <Leader>ts<	<Plug>AM_ts<|endif
+if !hasmapto('<Plug>AM_ts=')	|map <unique> <Leader>ts=	<Plug>AM_ts=|endif
 if !hasmapto('<Plug>AM_w=')		|map <unique> <Leader>w=	<Plug>AM_w=|endif
 if !hasmapto('<Plug>AM_t?')		|map <unique> <Leader>t?	<Plug>AM_t?|endif
 if !hasmapto('<Plug>AM_t~')		|map <unique> <Leader>t~	<Plug>AM_t~|endif
@@ -159,17 +166,22 @@ if !hasmapto('<Plug>AM_tt')		|map <unique> <Leader>tt	<Plug>AM_tt|endif
 map <silent> <script> <Plug>AM_t|		<SID>WS:AlignCtrl mIp0P0=l <Bar><CR>:'a,.Align<CR><SID>WE
 map <silent> <script> <Plug>AM_t#		<SID>WS:AlignCtrl mIp0P0=l #<CR>:'a,.Align<CR><SID>WE
 map <silent> <script> <Plug>AM_t,		<SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR><SID>WE
-map <silent> <script> <Plug>AM_ts,		<SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR>:'a,.s/\(\s*\),/,\1/ge<CR><SID>WE
 map <silent> <script> <Plug>AM_t:		<SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR><SID>WE
-map <silent> <script> <Plug>AM_t;		<SID>WS:AlignCtrl mIp0P1=l ;<CR>:'a,.Align<CR>:'y,'zs/\( *\);/;\1/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_t;		<SID>WS:AlignCtrl mIp0P1=l ;<CR>:'a,.Align<CR>:sil 'y,'zs/\( *\);/;\1/ge<CR><SID>WE
 map <silent> <script> <Plug>AM_t<		<SID>WS:AlignCtrl mIp0P0=l <<CR>:'a,.Align<CR><SID>WE
 map <silent> <script> <Plug>AM_t=		<SID>WS:call AlignMaps#Equals()<CR><SID>WE
-map <silent> <script> <Plug>AM_w=		<SID>WS:'a,'zg/=/s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zg/=/s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zg/=/s/==/\="\<Char-0xff>\<Char-0xff>"/ge<CR>:'a,'zg/=/s/!=/\="!\<Char-0xff>"/ge<CR>'zk:AlignCtrl mWp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1g/=/Align<CR>:'a,'z-1g/=/s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1g/=/s/\( \+\);/;\1/ge<CR>:'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e<CR>:'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1g/=/s/\xff/=/ge<CR>:'y,'zg/=/s/ @//eg<CR><SID>WE
+map <silent> <script> <Plug>AM_ts,		<SID>WS:AlignCtrl mIp0P1=l #<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)#/,\1/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_ts,		<SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\),/,\1/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_ts:		<SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\):/:\1/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_ts;		<SID>WS:AlignCtrl mIp1P1=l ;<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\);/;\1/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_ts<		<SID>WS:AlignCtrl mIp1P1=l <<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)</<\1/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_ts=		<SID>WS:AlignCtrl mIp1P1=l =<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)=/=\1/ge<CR><SID>WE
+map <silent> <script> <Plug>AM_w=		<SID>WS:'a,'zg/=/s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zg/=/s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zg/=/s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zg/=/s/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mWp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1g/=/Align<CR>:'a,'z-1g/=/s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1g/=/s/\( \+\);/;\1/ge<CR>:'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e<CR>:'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1g/=/s/\xff/=/ge<CR>:'y,'zg/=/s/ @//eg<CR><SID>WE
 map <silent> <script> <Plug>AM_t?		<SID>WS:AlignCtrl mIp0P0=l ?<CR>:'a,.Align<CR>:.,'zs/ \( *\);/;\1/ge<CR><SID>WE
 map <silent> <script> <Plug>AM_t~		<SID>WS:AlignCtrl mIp0P0=l ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
 map <silent> <script> <Plug>AM_t@		<SID>WS::call AlignMaps#StdAlign(1)<cr>:<SID>WE
-map <silent> <script> <Plug>AM_m=		<SID>WS:'a,'zs/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zs@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zs/==/\="\<Char-0xff>\<Char-0xff>"/ge<CR>:'a,'zs/!=/\="!\<Char-0xff>"/ge<CR>'zk:AlignCtrl mIp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-s/%\ze[^=]/ @%@ /e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1s/\xff/=/ge<CR>:'y,'zs/ @//eg<CR><SID>WE
-map <silent> <script> <Plug>AM_tab		<SID>WS:'a,.s/^\(\t*\)\(.*\)$/\=submatch(1).escape(substitute(submatch(2),'\t',"\<Char-0xff>",'g'),'\')/<CR>:if &ts == 1<bar>exe "AlignCtrl mI=lp0P0 \<Char-0xff>"<bar>else<bar>exe "AlignCtrl mI=l \<Char-0xff>"<bar>endif<CR>:'a,.Align<CR>:exe "'y+1,'z-1s/\<Char-0xff>/".((&ts == 1)? '\t' : ' ')."/g"<CR><SID>WE
+map <silent> <script> <Plug>AM_m=		<SID>WS:'a,'zs/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zs@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zs/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mIp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-s/%\ze[^=]/ @%@ /e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1s/\xff/=/ge<CR>:'y,'zs/ @//eg<CR><SID>WE
+map <silent> <script> <Plug>AM_tab		<SID>WS:'a,.s/^\(\t*\)\(.*\)$/\=submatch(1).escape(substitute(submatch(2),'\t',"\<Char-0x0f>",'g'),'\')/<CR>:if &ts == 1<bar>exe "AlignCtrl mI=lp0P0 \<Char-0x0f>"<bar>else<bar>exe "AlignCtrl mI=l \<Char-0x0f>"<bar>endif<CR>:'a,.Align<CR>:exe "'y+1,'z-1s/\<Char-0x0f>/".((&ts == 1)? '\t' : ' ')."/g"<CR><SID>WE
 map <silent> <script> <Plug>AM_tml		<SID>WS:AlignCtrl mWp1P0=l \\\@<!\\\s*$<CR>:'a,.Align<CR><SID>WE
 map <silent> <script> <Plug>AM_tsp		<SID>WS:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=lp0P0 @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
 map <silent> <script> <Plug>AM_tsq		<SID>WS:'a,.AlignReplaceQuotedSpaces<CR>:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).substitute(submatch(2),'\s\+','@','g')/<CR>:AlignCtrl mIp0P0=l @<CR>:'a,.Align<CR>:'y+1,'z-1s/[%@]/ /g<CR><SID>WE
diff --git a/plugin/AlignPlugin.vim b/plugin/AlignPlugin.vim
index c08452b..727fe7e 100644
--- a/plugin/AlignPlugin.vim
+++ b/plugin/AlignPlugin.vim
@@ -1,6 +1,6 @@
 " AlignPlugin: tool to align multiple fields based on one or more separators
 "   Author:	 Charles E. Campbell, Jr.
-"   Date:    Nov 15, 2007
+"   Date:    Nov 02, 2008
 " GetLatestVimScripts: 294 1 :AutoInstall: Align.vim
 " GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim
 " Copyright:    Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
@@ -19,10 +19,10 @@
 " faith to faith.
 " ---------------------------------------------------------------------
 " Load Once: {{{1
-if &cp || exists("g:loaded_alignPlugin")
+if &cp || exists("g:loaded_AlignPlugin")
  finish
 endif
-let g:loaded_alignPlugin = 1
+let g:loaded_AlignPlugin = "v35"
 let s:keepcpo            = &cpo
 set cpo&vim
 
diff --git a/plugin/cecutil.vim b/plugin/cecutil.vim
index 1bbf69b..0bf3434 100644
--- a/plugin/cecutil.vim
+++ b/plugin/cecutil.vim
@@ -83,7 +83,7 @@ fun! SaveWinPosn(...)
    return ""
   endif
   let so_keep   = &l:so
-  let siso_keep = &l:siso
+  let siso_keep = &siso
   let ss_keep   = &l:ss
   setlocal so=0 siso=0 ss=0
 
@@ -114,9 +114,9 @@ fun! SaveWinPosn(...)
    let b:cecutil_winposn{b:cecutil_iwinposn}= savedposn
   endif
 
-  let &l:so   = so_keep
-  let &l:siso = siso_keep
-  let &l:ss   = ss_keep
+  let &l:so = so_keep
+  let &siso = siso_keep
+  let &l:ss = ss_keep
 
 "  if exists("b:cecutil_iwinposn")	 " Decho
 "   call Decho("b:cecutil_winpos{".b:cecutil_iwinposn."}[".b:cecutil_winposn{b:cecutil_iwinposn}."]")
@@ -129,6 +129,8 @@ endfun
 
 " ---------------------------------------------------------------------
 " RestoreWinPosn: {{{2
+"      call RestoreWinPosn()
+"      call RestoreWinPosn(winposn)
 fun! RestoreWinPosn(...)
 "  call Dfunc("RestoreWinPosn() a:0=".a:0)
 "  call Decho("getline(1)<".getline(1).">")

-- 
vim-scripts packaging



More information about the pkg-vim-maintainers mailing list