? .screen.c.swp
? ObjC
? ObjCd
? _.swm
? _.swn
? _.swo
? _.swp
? temp.txt
? GvimExt/gvimext.RES
Index: option.c
===================================================================
RCS file: /cvsroot/vim/vim7/src/option.c,v
retrieving revision 1.150
diff -u -r1.150 option.c
--- option.c	18 Mar 2009 14:41:52 -0000	1.150
+++ option.c	14 Apr 2009 07:10:12 -0000
@@ -227,6 +227,7 @@
 #ifdef FEAT_SYN_HL
 # define PV_CUC		OPT_WIN(WV_CUC)
 # define PV_CUL		OPT_WIN(WV_CUL)
+# define PV_GUC		OPT_WIN(WV_GUC)
 #endif
 #ifdef FEAT_STL_OPT
 # define PV_STL		OPT_BOTH(OPT_WIN(WV_STL))
@@ -446,7 +447,7 @@
 #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
 	|| defined(FEAT_VERTSPLIT) || defined(FEAT_CLIPBOARD) \
 	|| defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL)
-# define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine"
+# define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,G:GuideColumn"
 #else
 # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
 #endif
@@ -1209,6 +1210,13 @@
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 				    },
+    {"guidecolumn", "guc",  P_NUM|P_VI_DEF|P_RWIN,
+#ifdef FEAT_SYN_HL
+			    (char_u *)VAR_WIN, PV_GUC,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)0L, (char_u *)0L}},
     {"guifont",	    "gfn",  P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP,
 #ifdef FEAT_GUI
 			    (char_u *)&p_guifont, PV_NONE,
@@ -9095,6 +9103,7 @@
 #ifdef FEAT_SYN_HL
 	case PV_CUC:	return (char_u *)&(curwin->w_p_cuc);
 	case PV_CUL:	return (char_u *)&(curwin->w_p_cul);
+	case PV_GUC:	return (char_u *)&(curwin->w_p_guc);
 #endif
 #ifdef FEAT_DIFF
 	case PV_DIFF:	return (char_u *)&(curwin->w_p_diff);
Index: option.h
===================================================================
RCS file: /cvsroot/vim/vim7/src/option.h,v
retrieving revision 1.48
diff -u -r1.48 option.h
--- option.h	24 Jun 2008 21:59:49 -0000	1.48
+++ option.h	12 Apr 2009 17:19:21 -0000
@@ -1059,6 +1059,7 @@
 #ifdef FEAT_SYN_HL
     , WV_CUC
     , WV_CUL
+    , WV_GUC
 #endif
 #ifdef FEAT_STL_OPT
     , WV_STL
Index: screen.c
===================================================================
RCS file: /cvsroot/vim/vim7/src/screen.c,v
retrieving revision 1.118
diff -u -r1.118 screen.c
--- screen.c	18 Mar 2009 18:08:58 -0000	1.118
+++ screen.c	14 Apr 2009 08:30:58 -0000
@@ -2614,6 +2614,7 @@
     int		has_syntax = FALSE;	/* this buffer has syntax highl. */
     int		save_did_emsg;
     int		eol_hl_off = 0;		/* 1 if highlighted char after EOL */
+    int         rightmost_vcol;
 #endif
 #ifdef FEAT_SPELL
     int		has_spell = FALSE;	/* this buffer has spell checking */
@@ -4476,25 +4477,32 @@
 		--vcol;
 	    }
 
-	    /* Highlight 'cursorcolumn' past end of the line. */
+	    /* Highlight 'cursorcolumn' & 'guidecolumn' past end of line. */
 	    if (wp->w_p_wrap)
 		v = wp->w_skipcol;
 	    else
 		v = wp->w_leftcol;
-	    /* check if line ends before left margin */
+	    
+            /* check if line ends before left margin */
 	    if (vcol < v + col - win_col_off(wp))
-
 		vcol = v + col - win_col_off(wp);
-	    if (wp->w_p_cuc
+
+	    if (((wp->w_p_cuc
 		    && (int)wp->w_virtcol >= vcol - eol_hl_off
 		    && (int)wp->w_virtcol < W_WIDTH(wp) * (row - startrow + 1)
 									   + v
-		    && lnum != wp->w_cursor.lnum
+		    && lnum != wp->w_cursor.lnum)
+                    || (wp->w_p_guc
+		            && (int)wp->w_p_guc >= vcol - eol_hl_off
+		            && (int)wp->w_p_guc < W_WIDTH(wp) * (row - startrow
+                                                                    + 1) + v))
 # ifdef FEAT_RIGHTLEFT
 		    && !wp->w_p_rl
 # endif
 		    )
 	    {
+                rightmost_vcol = (wp->w_p_guc > (long)wp->w_virtcol) ?
+                                                    wp->w_p_guc : wp->w_virtcol;
 		while (col < W_WIDTH(wp))
 		{
 		    ScreenLines[off] = ' ';
@@ -4503,12 +4511,22 @@
 			ScreenLinesUC[off] = 0;
 #endif
 		    ++col;
-		    if (vcol == (long)wp->w_virtcol)
+		    if (wp->w_p_cuc && vcol == (long)wp->w_virtcol)
 		    {
-			ScreenAttrs[off] = hl_attr(HLF_CUC);
-			break;
+			ScreenAttrs[off++] = hl_attr(HLF_CUC);
 		    }
-		    ScreenAttrs[off++] = 0;
+                    else if (wp->w_p_guc && vcol == wp->w_p_guc)
+                    {
+			ScreenAttrs[off++] = hl_attr(HLF_GUC);
+                    }
+                    else
+                    {
+		        ScreenAttrs[off++] = 0;
+                    }
+
+                    if (vcol >= rightmost_vcol)
+                        break;
+
 		    ++vcol;
 		}
 	    }
@@ -4566,18 +4584,27 @@
 	}
 
 #ifdef FEAT_SYN_HL
+	vcol_save_attr = -1;
 	/* Highlight the cursor column if 'cursorcolumn' is set.  But don't
-	 * highlight the cursor position itself. */
+	 * highlight the cursor position itself. 
+         * Also highlight the 'guidecolumn' if it is different than
+         * 'cursorcolumn' */
 	if (wp->w_p_cuc && vcol == (long)wp->w_virtcol
 		&& lnum != wp->w_cursor.lnum
 		&& draw_state == WL_LINE
 		&& !lnum_in_visual_area)
 	{
-	    vcol_save_attr = char_attr;
+            vcol_save_attr = char_attr;
 	    char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC));
 	}
-	else
-	    vcol_save_attr = -1;
+        else if (wp->w_p_guc
+                    && vcol == wp->w_p_guc
+		    && draw_state == WL_LINE
+		    && !lnum_in_visual_area)
+	{
+            vcol_save_attr = char_attr;
+	    char_attr = hl_combine_attr(char_attr, hl_attr(HLF_GUC));
+	}
 #endif
 
 	/*
Index: structs.h
===================================================================
RCS file: /cvsroot/vim/vim7/src/structs.h,v
retrieving revision 1.82
diff -u -r1.82 structs.h
--- structs.h	15 Nov 2008 15:06:17 -0000	1.82
+++ structs.h	12 Apr 2009 17:09:34 -0000
@@ -200,6 +200,8 @@
 # define w_p_cuc w_onebuf_opt.wo_cuc	/* 'cursorcolumn' */
     int		wo_cul;
 # define w_p_cul w_onebuf_opt.wo_cul	/* 'cursorline' */
+    int         wo_guc;
+# define w_p_guc w_onebuf_opt.wo_guc	/* 'guidecolumn' */
 #endif
 #ifdef FEAT_STL_OPT
     char_u	*wo_stl;
Index: syntax.c
===================================================================
RCS file: /cvsroot/vim/vim7/src/syntax.c,v
retrieving revision 1.82
diff -u -r1.82 syntax.c
--- syntax.c	9 Aug 2008 17:52:07 -0000	1.82
+++ syntax.c	14 Apr 2009 07:03:52 -0000
@@ -6324,6 +6324,8 @@
 	     "CursorColumn term=reverse ctermbg=LightGrey guibg=Grey90"),
 	CENT("CursorLine term=underline cterm=underline",
 	     "CursorLine term=underline cterm=underline guibg=Grey90"),
+	CENT("GuideColumn term=reverse ctermbg=Red",
+	     "GuideColumn term=reverse ctermbg=Red guibg=Red"),
 #endif
 #ifdef FEAT_AUTOCMD
 	CENT("MatchParen term=reverse ctermbg=Cyan",
@@ -6404,6 +6406,8 @@
 	     "CursorColumn term=reverse ctermbg=DarkGrey guibg=Grey40"),
 	CENT("CursorLine term=underline cterm=underline",
 	     "CursorLine term=underline cterm=underline guibg=Grey40"),
+	CENT("GuideColumn term=reverse ctermbg=DarkRed",
+	     "GuideColumn term=reverse ctermbg=DarkRed guibg=DarkRed"),
 #endif
 #ifdef FEAT_AUTOCMD
 	CENT("MatchParen term=reverse ctermbg=DarkCyan",
Index: vim.h
===================================================================
RCS file: /cvsroot/vim/vim7/src/vim.h,v
retrieving revision 1.103
diff -u -r1.103 vim.h
--- vim.h	18 Mar 2009 11:52:22 -0000	1.103
+++ vim.h	14 Apr 2009 07:00:21 -0000
@@ -1246,6 +1246,7 @@
     , HLF_TPF	    /* tabpage line filler */
     , HLF_CUC	    /* 'cursurcolumn' */
     , HLF_CUL	    /* 'cursurline' */
+    , HLF_GUC	    /* 'guidecolumn' */
     , HLF_COUNT	    /* MUST be the last one */
 } hlf_T;
 
@@ -1255,7 +1256,7 @@
 		  'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
 		  'f', 'F', 'A', 'C', 'D', 'T', '>', \
 		  'B', 'P', 'R', 'L', \
-		  '+', '=', 'x', 'X', '*', '#', '_', '!', '.'}
+		  '+', '=', 'x', 'X', '*', '#', '_', '!', '.','G'}
 
 /*
  * Boolean constants
