--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.1.304
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.304
+Problem: Shortpath_for_invalid_fname() does not work correctly and is
+ unnecessary complex.
+Solution: Clean up shortpath_for_invalid_fname(). (mostly by Yegappan
+ Lakshmanan)
+Files: src/eval.c
+
+
+*** ../vim-7.1.303/src/eval.c Wed May 28 16:48:01 2008
+--- src/eval.c Wed May 28 16:35:51 2008
+***************
+*** 21068,21075 ****
+ static int shortpath_for_partial __ARGS((char_u **fnamep, char_u **bufp, int *fnamelen));
+
+ /*
+! * Get the short pathname of a file.
+! * Returns 1 on success. *fnamelen is 0 for nonexistent path.
+ */
+ static int
+ get_short_pathname(fnamep, bufp, fnamelen)
+--- 21476,21487 ----
+ static int shortpath_for_partial __ARGS((char_u **fnamep, char_u **bufp, int *fnamelen));
+
+ /*
+! * Get the short path (8.3) for the filename in "fnamep".
+! * Only works for a valid file name.
+! * When the path gets longer "fnamep" is changed and the allocated buffer
+! * is put in "bufp".
+! * *fnamelen is the length of "fnamep" and set to 0 for a nonexistent path.
+! * Returns OK on success, FAIL on failure.
+ */
+ static int
+ get_short_pathname(fnamep, bufp, fnamelen)
+***************
+*** 21077,21112 ****
+ char_u **bufp;
+ int *fnamelen;
+ {
+! int l,len;
+ char_u *newbuf;
+
+ len = *fnamelen;
+-
+ l = GetShortPathName(*fnamep, *fnamep, len);
+ if (l > len - 1)
+ {
+ /* If that doesn't work (not enough space), then save the string
+! * and try again with a new buffer big enough
+! */
+ newbuf = vim_strnsave(*fnamep, l);
+ if (newbuf == NULL)
+! return 0;
+
+ vim_free(*bufp);
+ *fnamep = *bufp = newbuf;
+
+! l = GetShortPathName(*fnamep,*fnamep,l+1);
+!
+! /* Really should always succeed, as the buffer is big enough */
+ }
+
+ *fnamelen = l;
+! return 1;
+ }
+
+ /*
+! * Create a short path name. Returns the length of the buffer it needs.
+! * Doesn't copy over the end of the buffer passed in.
+ */
+ static int
+ shortpath_for_invalid_fname(fname, bufp, fnamelen)
+--- 21489,21532 ----
+ char_u **bufp;
+ int *fnamelen;
+ {
+! int l, len;
+ char_u *newbuf;
+
+ len = *fnamelen;
+ l = GetShortPathName(*fnamep, *fnamep, len);
+ if (l > len - 1)
+ {
+ /* If that doesn't work (not enough space), then save the string
+! * and try again with a new buffer big enough. */
+ newbuf = vim_strnsave(*fnamep, l);
+ if (newbuf == NULL)
+! return FAIL;
+
+ vim_free(*bufp);
+ *fnamep = *bufp = newbuf;
+
+! /* Really should always succeed, as the buffer is big enough. */
+! l = GetShortPathName(*fnamep, *fnamep, l+1);
+ }
+
+ *fnamelen = l;
+! return OK;
+ }
+
+ /*
+! * Get the short path (8.3) for the filename in "fname". The converted
+! * path is returned in "bufp".
+! *
+! * Some of the directories specified in "fname" may not exist. This function
+! * will shorten the existing directories at the beginning of the path and then
+! * append the remaining non-existing path.
+! *
+! * fname - Pointer to the filename to shorten. On return, contains the
+! * pointer to the shortened pathname
+! * bufp - Pointer to an allocated buffer for the filename.
+! * fnamelen - Length of the filename pointed to by fname
+! *
+! * Returns OK on success (or nothing done) and FAIL on failure (out of memory).
+ */
+ static int
+ shortpath_for_invalid_fname(fname, bufp, fnamelen)
+***************
+*** 21114,21198 ****
+ char_u **bufp;
+ int *fnamelen;
+ {
+! char_u *s, *p, *pbuf2, *pbuf3;
+ char_u ch;
+! int len, len2, plen, slen;
+
+ /* Make a copy */
+! len2 = *fnamelen;
+! pbuf2 = vim_strnsave(*fname, len2);
+! pbuf3 = NULL;
+!
+! s = pbuf2 + len2 - 1; /* Find the end */
+! slen = 1;
+! plen = len2;
+!
+! if (after_pathsep(pbuf2, s + 1))
+! {
+! --s;
+! ++slen;
+! --plen;
+! }
+
+! do
+ {
+! /* Go back one path-separator */
+! while (s > pbuf2 && !after_pathsep(pbuf2, s + 1))
+! {
+! --s;
+! ++slen;
+! --plen;
+! }
+! if (s <= pbuf2)
+! break;
+
+! /* Remember the character that is about to be splatted */
+! ch = *s;
+! *s = 0; /* get_short_pathname requires a null-terminated string */
+!
+! /* Try it in situ */
+! p = pbuf2;
+! if (!get_short_pathname(&p, &pbuf3, &plen))
+ {
+! vim_free(pbuf2);
+! return -1;
+ }
+! *s = ch; /* Preserve the string */
+! } while (plen == 0);
+
+! if (plen > 0)
+ {
+! /* Remember the length of the new string. */
+! *fnamelen = len = plen + slen;
+ vim_free(*bufp);
+! if (len > len2)
+ {
+! /* If there's not enough space in the currently allocated string,
+! * then copy it to a buffer big enough.
+! */
+! *fname= *bufp = vim_strnsave(p, len);
+ if (*fname == NULL)
+! return -1;
+ }
+ else
+ {
+! /* Transfer pbuf2 to being the main buffer (it's big enough) */
+! *fname = *bufp = pbuf2;
+! if (p != pbuf2)
+! strncpy(*fname, p, plen);
+! pbuf2 = NULL;
+! }
+! /* Concat the next bit */
+! strncpy(*fname + plen, s, slen);
+! (*fname)[len] = '\0';
+ }
+! vim_free(pbuf3);
+! vim_free(pbuf2);
+! return 0;
+ }
+
+ /*
+ * Get a pathname for a partial path.
+ */
+ static int
+ shortpath_for_partial(fnamep, bufp, fnamelen)
+--- 21534,21639 ----
+ char_u **bufp;
+ int *fnamelen;
+ {
+! char_u *short_fname, *save_fname, *pbuf_unused;
+! char_u *endp, *save_endp;
+ char_u ch;
+! int old_len, len;
+! int new_len, sfx_len;
+! int retval = OK;
+
+ /* Make a copy */
+! old_len = *fnamelen;
+! save_fname = vim_strnsave(*fname, old_len);
+! pbuf_unused = NULL;
+! short_fname = NULL;
+
+! endp = save_fname + old_len - 1; /* Find the end of the copy */
+! save_endp = endp;
+!
+! /*
+! * Try shortening the supplied path till it succeeds by removing one
+! * directory at a time from the tail of the path.
+! */
+! len = 0;
+! for (;;)
+ {
+! /* go back one path-separator */
+! while (endp > save_fname && !after_pathsep(save_fname, endp + 1))
+! --endp;
+! if (endp <= save_fname)
+! break; /* processed the complete path */
+
+! /*
+! * Replace the path separator with a NUL and try to shorten the
+! * resulting path.
+! */
+! ch = *endp;
+! *endp = 0;
+! short_fname = save_fname;
+! len = STRLEN(short_fname) + 1;
+! if (get_short_pathname(&short_fname, &pbuf_unused, &len) == FAIL)
+ {
+! retval = FAIL;
+! goto theend;
+ }
+! *endp = ch; /* preserve the string */
+!
+! if (len > 0)
+! break; /* successfully shortened the path */
+
+! /* failed to shorten the path. Skip the path separator */
+! --endp;
+! }
+!
+! if (len > 0)
+ {
+! /*
+! * Succeeded in shortening the path. Now concatenate the shortened
+! * path with the remaining path at the tail.
+! */
+!
+! /* Compute the length of the new path. */
+! sfx_len = (int)(save_endp - endp) + 1;
+! new_len = len + sfx_len;
+!
+! *fnamelen = new_len;
+ vim_free(*bufp);
+! if (new_len > old_len)
+ {
+! /* There is not enough space in the currently allocated string,
+! * copy it to a buffer big enough. */
+! *fname = *bufp = vim_strnsave(short_fname, new_len);
+ if (*fname == NULL)
+! {
+! retval = FAIL;
+! goto theend;
+! }
+ }
+ else
+ {
+! /* Transfer short_fname to the main buffer (it's big enough),
+! * unless get_short_pathname() did its work in-place. */
+! *fname = *bufp = save_fname;
+! if (short_fname != save_fname)
+! vim_strncpy(save_fname, short_fname, len);
+! save_fname = NULL;
+! }
+!
+! /* concat the not-shortened part of the path */
+! vim_strncpy(*fname + len, endp, sfx_len);
+! (*fname)[new_len] = NUL;
+ }
+!
+! theend:
+! vim_free(pbuf_unused);
+! vim_free(save_fname);
+!
+! return retval;
+ }
+
+ /*
+ * Get a pathname for a partial path.
++ * Returns OK for success, FAIL for failure.
+ */
+ static int
+ shortpath_for_partial(fnamep, bufp, fnamelen)
+***************
+*** 21222,21229 ****
+
+ len = tflen = (int)STRLEN(tfname);
+
+! if (!get_short_pathname(&tfname, &pbuf, &len))
+! return -1;
+
+ if (len == 0)
+ {
+--- 21663,21670 ----
+
+ len = tflen = (int)STRLEN(tfname);
+
+! if (get_short_pathname(&tfname, &pbuf, &len) == FAIL)
+! return FAIL;
+
+ if (len == 0)
+ {
+***************
+*** 21232,21239 ****
+ * there's not a lot of point in guessing what it might be.
+ */
+ len = tflen;
+! if (shortpath_for_invalid_fname(&tfname, &pbuf, &len) == -1)
+! return -1;
+ }
+
+ /* Count the paths backward to find the beginning of the desired string. */
+--- 21673,21680 ----
+ * there's not a lot of point in guessing what it might be.
+ */
+ len = tflen;
+! if (shortpath_for_invalid_fname(&tfname, &pbuf, &len) == FAIL)
+! return FAIL;
+ }
+
+ /* Count the paths backward to find the beginning of the desired string. */
+***************
+*** 21257,21263 ****
+ if (p >= tfname)
+ *p = '~';
+ else
+! return -1;
+ }
+ else
+ ++p;
+--- 21698,21704 ----
+ if (p >= tfname)
+ *p = '~';
+ else
+! return FAIL;
+ }
+ else
+ ++p;
+***************
+*** 21268,21274 ****
+ *bufp = pbuf;
+ *fnamep = p;
+
+! return 0;
+ }
+ #endif /* WIN3264 */
+
+--- 21709,21715 ----
+ *bufp = pbuf;
+ *fnamep = p;
+
+! return OK;
+ }
+ #endif /* WIN3264 */
+
+***************
+*** 21276,21282 ****
+ * Adjust a filename, according to a string of modifiers.
+ * *fnamep must be NUL terminated when called. When returning, the length is
+ * determined by *fnamelen.
+! * Returns valid flags.
+ * When there is an error, *fnamep is set to NULL.
+ */
+ int
+--- 21717,21723 ----
+ * Adjust a filename, according to a string of modifiers.
+ * *fnamep must be NUL terminated when called. When returning, the length is
+ * determined by *fnamelen.
+! * Returns VALID_ flags or -1 for failure.
+ * When there is an error, *fnamep is set to NULL.
+ */
+ int
+***************
+*** 21488,21494 ****
+ */
+ if (!has_fullname && !vim_isAbsName(*fnamep))
+ {
+! if (shortpath_for_partial(fnamep, bufp, fnamelen) == -1)
+ return -1;
+ }
+ else
+--- 21929,21935 ----
+ */
+ if (!has_fullname && !vim_isAbsName(*fnamep))
+ {
+! if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
+ return -1;
+ }
+ else
+***************
+*** 21498,21504 ****
+ /* Simple case, already have the full-name
+ * Nearly always shorter, so try first time. */
+ l = *fnamelen;
+! if (!get_short_pathname(fnamep, bufp, &l))
+ return -1;
+
+ if (l == 0)
+--- 21939,21945 ----
+ /* Simple case, already have the full-name
+ * Nearly always shorter, so try first time. */
+ l = *fnamelen;
+! if (get_short_pathname(fnamep, bufp, &l) == FAIL)
+ return -1;
+
+ if (l == 0)
+***************
+*** 21506,21512 ****
+ /* Couldn't find the filename.. search the paths.
+ */
+ l = *fnamelen;
+! if (shortpath_for_invalid_fname(fnamep, bufp, &l ) == -1)
+ return -1;
+ }
+ *fnamelen = l;
+--- 21947,21953 ----
+ /* Couldn't find the filename.. search the paths.
+ */
+ l = *fnamelen;
+! if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
+ return -1;
+ }
+ *fnamelen = l;
+*** ../vim-7.1.303/src/version.c Thu May 29 15:33:13 2008
+--- src/version.c Thu May 29 21:41:55 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+ { /* Add new patch number below this line */
++ /**/
++ 304,
+ /**/
+
+--
+"The future's already arrived - it's just not evenly distributed yet."
+ -- William Gibson
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+To: vim-dev@vim.org
+Subject: Patch 7.1.305
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.305
+Problem: Editing a compressed file with special characters in the name
+ doesn't work properly.
+Solution: Escape special characters.
+Files: runtime/autoload/gzip.vim
+
+
+*** ../vim-7.1.304/runtime/autoload/gzip.vim Thu May 10 18:54:26 2007
+--- runtime/autoload/gzip.vim Thu May 29 22:30:59 2008
+***************
+*** 1,6 ****
+ " Vim autoload file for editing compressed files.
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2007 May 10
+
+ " These functions are used by the gzip plugin.
+
+--- 1,6 ----
+ " Vim autoload file for editing compressed files.
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2008 May 29
+
+ " These functions are used by the gzip plugin.
+
+***************
+*** 73,80 ****
+ let empty = line("'[") == 1 && line("']") == line("$")
+ let tmp = tempname()
+ let tmpe = tmp . "." . expand("<afile>:e")
+ " write the just read lines to a temp file "'[,']w tmp.gz"
+! execute "silent '[,']w " . escape(tmpe, ' ')
+ " uncompress the temp file: call system("gzip -dn tmp.gz")
+ call system(a:cmd . " " . s:escape(tmpe))
+ if !filereadable(tmp)
+--- 73,87 ----
+ let empty = line("'[") == 1 && line("']") == line("$")
+ let tmp = tempname()
+ let tmpe = tmp . "." . expand("<afile>:e")
++ if exists('*fnameescape')
++ let tmp_esc = fnameescape(tmp)
++ let tmpe_esc = fnameescape(tmpe)
++ else
++ let tmp_esc = escape(tmp, ' ')
++ let tmpe_esc = escape(tmpe, ' ')
++ endif
+ " write the just read lines to a temp file "'[,']w tmp.gz"
+! execute "silent '[,']w " . tmpe_esc
+ " uncompress the temp file: call system("gzip -dn tmp.gz")
+ call system(a:cmd . " " . s:escape(tmpe))
+ if !filereadable(tmp)
+***************
+*** 95,106 ****
+ setlocal nobin
+ if exists(":lockmarks")
+ if empty
+! execute "silent lockmarks " . l . "r ++edit " . tmp
+ else
+! execute "silent lockmarks " . l . "r " . tmp
+ endif
+ else
+! execute "silent " . l . "r " . tmp
+ endif
+
+ " if buffer became empty, delete trailing blank line
+--- 102,113 ----
+ setlocal nobin
+ if exists(":lockmarks")
+ if empty
+! execute "silent lockmarks " . l . "r ++edit " . tmp_esc
+ else
+! execute "silent lockmarks " . l . "r " . tmp_esc
+ endif
+ else
+! execute "silent " . l . "r " . tmp_esc
+ endif
+
+ " if buffer became empty, delete trailing blank line
+***************
+*** 110,117 ****
+ endif
+ " delete the temp file and the used buffers
+ call delete(tmp)
+! silent! exe "bwipe " . tmp
+! silent! exe "bwipe " . tmpe
+ endif
+
+ " Restore saved option values.
+--- 117,124 ----
+ endif
+ " delete the temp file and the used buffers
+ call delete(tmp)
+! silent! exe "bwipe " . tmp_esc
+! silent! exe "bwipe " . tmpe_esc
+ endif
+
+ " Restore saved option values.
+***************
+*** 124,133 ****
+
+ " When uncompressed the whole buffer, do autocommands
+ if ok && empty
+ if &verbose >= 8
+! execute "doau BufReadPost " . expand("%:r")
+ else
+! execute "silent! doau BufReadPost " . expand("%:r")
+ endif
+ endif
+ endfun
+--- 131,145 ----
+
+ " When uncompressed the whole buffer, do autocommands
+ if ok && empty
++ if exists('*fnameescape')
++ let fname = fnameescape(expand("%:r"))
++ else
++ let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
++ endif
+ if &verbose >= 8
+! execute "doau BufReadPost " . fname
+ else
+! execute "silent! doau BufReadPost " . fname
+ endif
+ endif
+ endfun
+*** ../vim-7.1.304/src/version.c Thu May 29 21:46:10 2008
+--- src/version.c Thu May 29 22:33:11 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+ { /* Add new patch number below this line */
++ /**/
++ 305,
+ /**/
+
+--
+OLD WOMAN: Well, how did you become king, then?
+ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite,
+ held Excalibur aloft from the bosom of the water to signify by Divine
+ Providence ... that I, Arthur, was to carry Excalibur ... That is
+ why I am your king!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- /dev/null
+" Vim color file\r
+" Maintainer: Yegappan Lakshmanan\r
+" Last Change: 2001 Sep 9\r
+\r
+" Color settings similar to that used in Borland IDE's.\r
+\r
+set background=dark\r
+hi clear\r
+if exists("syntax_on")\r
+ syntax reset\r
+endif\r
+let g:colors_name="borland"\r
+\r
+hi Normal term=NONE cterm=NONE ctermfg=Yellow ctermbg=DarkBlue\r
+hi Normal gui=NONE guifg=Yellow guibg=DarkBlue\r
+hi NonText term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue\r
+hi NonText gui=NONE guifg=White guibg=DarkBlue\r
+\r
+hi Statement term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue\r
+hi Statement gui=NONE guifg=White guibg=DarkBlue\r
+hi Special term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue\r
+hi Special gui=NONE guifg=Cyan guibg=DarkBlue\r
+hi Constant term=NONE cterm=NONE ctermfg=Magenta ctermbg=DarkBlue\r
+hi Constant gui=NONE guifg=Magenta guibg=DarkBlue\r
+hi Comment term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue\r
+hi Comment gui=NONE guifg=Gray guibg=DarkBlue\r
+hi Preproc term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue\r
+hi Preproc gui=NONE guifg=Green guibg=DarkBlue\r
+hi Type term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue\r
+hi Type gui=NONE guifg=White guibg=DarkBlue\r
+hi Identifier term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue\r
+hi Identifier gui=NONE guifg=White guibg=DarkBlue\r
+\r
+hi StatusLine term=bold cterm=bold ctermfg=Black ctermbg=White\r
+hi StatusLine gui=bold guifg=Black guibg=White\r
+\r
+hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=White\r
+hi StatusLineNC gui=NONE guifg=Black guibg=White\r
+\r
+hi Visual term=NONE cterm=NONE ctermfg=Black ctermbg=DarkCyan\r
+hi Visual gui=NONE guifg=Black guibg=DarkCyan\r
+\r
+hi Search term=NONE cterm=NONE ctermbg=Gray\r
+hi Search gui=NONE guibg=Gray\r
+\r
+hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=White\r
+hi VertSplit gui=NONE guifg=Black guibg=White\r
+\r
+hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue\r
+hi Directory gui=NONE guifg=Green guibg=DarkBlue\r
+\r
+hi WarningMsg term=standout cterm=NONE ctermfg=Red ctermbg=DarkBlue\r
+hi WarningMsg gui=standout guifg=Red guibg=DarkBlue\r
+\r
+hi Error term=NONE cterm=NONE ctermfg=White ctermbg=Red\r
+hi Error gui=NONE guifg=White guibg=Red\r
+\r
+hi Cursor ctermfg=Black ctermbg=Yellow\r
+hi Cursor guifg=Black guibg=Yellow\r
+\r
--- /dev/null
+" Vim color file
+" Maintainer: Tom Regner <vim@tomsdiner.org>
+" Last Change:
+"
+" 2007-10-16 change by Alexei Alexandrov
+" - highlight CursorColumn
+"
+" 2007-08-20 change by Diederick Niehorster
+" - highlight CursorLine
+"
+" 2007-02-05
+" - included changes from Keffin Barnaby
+" (vim>=7.0 PMenu and Spellchecking)
+"
+" 2006-09-06
+" - changed String to DarkCyan, Macro to DarkRed
+"
+" 2006-09-05
+" - more console-colors
+" - added console-colors, clean-up
+"
+" Version: 1.2.5
+" URL: http://vim.sourceforge.net/script.php?script_id=368
+
+
+""" Init
+set background=dark
+highlight clear
+if exists("syntax_on")
+ syntax reset
+endif
+let g:colors_name = "oceandeep"
+
+"""" GUI
+
+highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White
+highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3
+highlight CursorLine gui=None guibg=#003853
+highlight CursorColumn gui=None guibg=#003853
+highlight Directory guifg=LightSeaGreen guibg=bg
+highlight DiffAdd gui=None guifg=fg guibg=DarkCyan
+highlight DiffChange gui=None guifg=fg guibg=Green4
+highlight DiffDelete gui=None guifg=fg guibg=black
+highlight DiffText gui=bold guifg=fg guibg=bg
+highlight ErrorMsg guifg=LightYellow guibg=FireBrick
+highlight VertSplit gui=NONE guifg=black guibg=grey60
+highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0
+highlight FoldColumn gui=bold guibg=#305060 guifg=#b0d0e0
+highlight IncSearch gui=reverse guifg=fg guibg=bg
+highlight LineNr gui=bold guibg=grey6 guifg=LightSkyBlue3
+highlight ModeMsg guibg=DarkGreen guifg=LightGreen
+highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg
+if version < 600
+ " same as SpecialKey
+ highlight NonText guibg=#123A4A guifg=#3D5D6D
+else
+ " Bottom fill (use e.g. same as LineNr)
+ highlight NonText gui=None guibg=#103040 guifg=LightSkyBlue
+endif
+highlight Normal gui=None guibg=#103040 guifg=honeydew2
+highlight Question gui=bold guifg=SeaGreen2 guibg=bg
+highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE
+highlight SpecialKey guibg=#103040 guifg=#324262
+highlight StatusLine gui=bold guibg=grey88 guifg=black
+highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10
+highlight Title gui=bold guifg=MediumOrchid1 guibg=bg
+highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen
+highlight VisualNOS gui=bold,underline guifg=fg guibg=bg
+highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg
+highlight WildMenu gui=bold guibg=Chartreuse guifg=Black
+
+highlight Comment gui=None guifg=#507080
+highlight Constant guifg=cyan3 guibg=bg
+highlight String gui=None guifg=turquoise2 guibg=bg
+highlight Number gui=None guifg=Cyan guibg=bg
+highlight Boolean gui=bold guifg=Cyan guibg=bg
+highlight Identifier guifg=LightSkyBlue3
+highlight Function gui=None guifg=DarkSeaGreen3 guibg=bg
+
+highlight Statement gui=NONE guifg=LightGreen
+highlight Conditional gui=None guifg=LightGreen guibg=bg
+highlight Repeat gui=None guifg=SeaGreen2 guibg=bg
+highlight Operator gui=None guifg=Chartreuse guibg=bg
+highlight Keyword gui=bold guifg=LightGreen guibg=bg
+highlight Exception gui=bold guifg=LightGreen guibg=bg
+
+highlight PreProc guifg=SkyBlue1
+highlight Include gui=None guifg=LightSteelBlue3 guibg=bg
+highlight Define gui=None guifg=LightSteelBlue2 guibg=bg
+highlight Macro gui=None guifg=LightSkyBlue3 guibg=bg
+highlight PreCondit gui=None guifg=LightSkyBlue2 guibg=bg
+
+highlight Type gui=NONE guifg=LightBlue
+highlight StorageClass gui=None guifg=LightBlue guibg=bg
+highlight Structure gui=None guifg=LightBlue guibg=bg
+highlight Typedef gui=None guifg=LightBlue guibg=bg
+
+highlight Special gui=bold guifg=aquamarine3
+highlight Underlined gui=underline guifg=honeydew4 guibg=bg
+highlight Ignore guifg=#204050
+highlight Error guifg=LightYellow guibg=FireBrick
+highlight Todo guifg=Cyan guibg=#507080
+if v:version >= 700
+ highlight PMenu gui=bold guibg=LightSkyBlue4 guifg=honeydew2
+ highlight PMenuSel gui=bold guibg=DarkGreen guifg=honeydew2
+ highlight PMenuSbar gui=bold guibg=LightSkyBlue4
+ highlight PMenuThumb gui=bold guibg=DarkGreen
+ highlight SpellBad gui=undercurl guisp=Red
+ highlight SpellRare gui=undercurl guisp=Orange
+ highlight SpellLocal gui=undercurl guisp=Orange
+ highlight SpellCap gui=undercurl guisp=Yellow
+endif
+
+""" Console
+if v:version >= 700
+ highlight PMenu cterm=bold ctermbg=DarkGreen ctermfg=Gray
+ highlight PMenuSel cterm=bold ctermbg=Yellow ctermfg=Gray
+ highlight PMenuSbar cterm=bold ctermbg=DarkGreen
+ highlight PMenuThumb cterm=bold ctermbg=Yellow
+ highlight SpellBad ctermbg=Red
+ highlight SpellRare ctermbg=Red
+ highlight SpellLocal ctermbg=Red
+ highlight SpellCap ctermbg=Yellow
+endif
+
+highlight Normal ctermfg=Gray ctermbg=None
+highlight Search ctermfg=Black ctermbg=Red cterm=NONE
+highlight Visual cterm=reverse
+highlight Cursor ctermfg=Black ctermbg=Green cterm=bold
+highlight Special ctermfg=Brown
+highlight Comment ctermfg=DarkGray
+highlight StatusLine ctermfg=Blue ctermbg=White
+highlight Statement ctermfg=Yellow cterm=NONE
+highlight Type cterm=NONE
+highlight Macro ctermfg=DarkRed
+highlight Identifier ctermfg=DarkYellow
+highlight Structure ctermfg=DarkGreen
+highlight String ctermfg=DarkCyan
+
+" vim: sw=4 ts=4 et