updated for version 7.0175
diff --git a/src/configure b/src/configure
index 6aa15be..f9f65fa 100755
--- a/src/configure
+++ b/src/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # run the automatically generated configure script
 CONFIG_STATUS=auto/config.status \
-	auto/configure "$@" --srcdir="${srcdir-.}" --cache-file=auto/config.cache
+	auto/configure "$@" --srcdir="${srcdir:-.}" --cache-file=auto/config.cache
 # Stupid autoconf 2.5x causes this file to be left behind.
 if test -f configure.lineno; then rm -f configure.lineno; fi
diff --git a/src/edit.c b/src/edit.c
index f4f3f9a..c21c7e3 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -5113,7 +5113,8 @@
      * otherwise CTRL-O w and then <Left> will clear "last_insert".
      */
     ptr = get_inserted();
-    if (did_restart_edit == 0 || (ptr != NULL && STRLEN(ptr) > new_insert_skip))
+    if (did_restart_edit == 0 || (ptr != NULL
+				       && (int)STRLEN(ptr) > new_insert_skip))
     {
 	vim_free(last_insert);
 	last_insert = ptr;
diff --git a/src/eval.c b/src/eval.c
index e6e712b..eef865a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -8459,7 +8459,10 @@
     else if (*p == '#')
     {
 #ifdef FEAT_AUTOCMD
-	n = au_exists(p + 1);
+	if (p[1] == '#')
+	    n = autocmd_supported(p + 2);
+	else
+	    n = au_exists(p + 1);
 #endif
     }
     else				/* internal variable */
diff --git a/src/fileio.c b/src/fileio.c
index 2f93f53..1ff4e46 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -8827,6 +8827,18 @@
 #endif	/* FEAT_CMDL_COMPL */
 
 /*
+ * Return TRUE if autocmd is supported.
+ */
+    int
+autocmd_supported(name)
+    char_u	*name;
+{
+    char_u *p;
+
+    return (event_name2nr(name, &p) != NUM_EVENTS);
+}
+
+/*
  * Return TRUE if an autocommand is defined for a group, event and
  * pattern:  The group can be omitted to accept any group. "event" and "pattern"
  * can be NULL to accept any event and pattern. "pattern" can be NULL to accept
@@ -8852,11 +8864,11 @@
     int		group;
     int		retval = FALSE;
 
-    /* Make a copy so that we can change the '#' to a NUL. */
+    /* Make a copy so that we can change the '#' chars to a NUL. */
     arg_save = vim_strsave(arg);
     if (arg_save == NULL)
 	return FALSE;
-    p = vim_strchr(arg, '#');
+    p = vim_strchr(arg_save, '#');
     if (p != NULL)
 	*p++ = NUL;
 
diff --git a/src/gui_w32.c b/src/gui_w32.c
index c5d1eb0..c49d82b 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -2522,8 +2522,7 @@
 
 #define add_string(s) strcpy((LPSTR)p, s); (LPSTR)p += (strlen((LPSTR)p) + 1)
 #define add_word(x)		*p++ = (x)
-#define add_byte(x)		*((LPSTR)p)++ = (x)
-#define add_long(x)		*((LPDWORD)p)++ = (x)
+#define add_long(x)		dwp = (DWORD *)p; *dwp++ = (x); p = (WORD *)dwp
 
 #if defined(FEAT_GUI_DIALOG) || defined(PROTO)
 /*
@@ -2650,6 +2649,7 @@
     char_u	*textfield)
 {
     WORD	*p, *pdlgtemplate, *pnumitems;
+    DWORD	*dwp;
     int		numButtons;
     int		*buttonWidths, *buttonPositions;
     int		buttonYpos;
diff --git a/src/message.c b/src/message.c
index 1478672..8ea49ae 100644
--- a/src/message.c
+++ b/src/message.c
@@ -722,6 +722,10 @@
 	{
 	    int	size = vim_strsize(s);
 
+	    /* There may be room anyway when there are multibyte chars. */
+	    if (size <= room)
+		return s;
+
 	    for (n = 0; size >= room; )
 	    {
 		size -= (*mb_ptr2cells)(s + n);
diff --git a/src/proto/fileio.pro b/src/proto/fileio.pro
index 816de42..52ae642 100644
--- a/src/proto/fileio.pro
+++ b/src/proto/fileio.pro
@@ -41,6 +41,7 @@
 char_u *get_augroup_name __ARGS((expand_T *xp, int idx));
 char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd));
 char_u *get_event_name __ARGS((expand_T *xp, int idx));
+int autocmd_supported __ARGS((char_u *name));
 int au_exists __ARGS((char_u *arg));
 int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
 int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index e9e75e5..aee0894 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -24,7 +24,7 @@
 		test38.out test39.out test40.out test41.out test42.out \
 		test43.out test44.out test45.out test46.out test47.out \
 		test48.out test51.out test53.out test54.out test55.out \
-		test56.out test57.out test58.out test59.out
+		test56.out test57.out test58.out test59.out test60.out
 
 .SUFFIXES: .in .out
 
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 092b24a..1821cca 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -25,7 +25,7 @@
 		test15.out test17.out test18.out test21.out test26.out \
 		test30.out test31.out test32.out test33.out test34.out \
 		test37.out test38.out test39.out test40.out test41.out \
-		test42.out test52.out
+		test42.out test52.out test60.out
 
 SCRIPTS32 =	test50.out
 
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index 5236922..d8b2f75 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -24,7 +24,7 @@
 		test38.out test39.out test40.out test41.out test42.out \
 		test43.out test44.out test45.out test46.out test47.out \
 		test48.out test51.out test53.out test54.out test55.out \
-		test56.out test57.out test58.out test59.out
+		test56.out test57.out test58.out test59.out test60.out
 
 .SUFFIXES: .in .out
 
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index 6d08e50..767ab78 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -58,7 +58,7 @@
 	 test38.out test39.out test40.out test41.out test42.out \
 	 test43.out test44.out test45.out test46.out \
 	 test48.out test51.out test53.out test54.out test55.out \
-	 test56.out test57.out test58.out test59.out
+	 test56.out test57.out test58.out test59.out test60.out
 
 .IFDEF WANT_GUI
 SCRIPT_GUI = test16.out
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index 06c4173..49f14f9 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -15,7 +15,7 @@
 		test43.out test44.out test45.out test46.out test47.out \
 		test48.out test49.out test51.out test52.out test53.out \
 		test54.out test55.out test56.out test57.out test58.out \
-		test59.out
+		test59.out test60.out
 
 SCRIPTS_GUI = test16.out
 
diff --git a/src/testdir/test60.in b/src/testdir/test60.in
new file mode 100644
index 0000000..58a2c90
--- /dev/null
+++ b/src/testdir/test60.in
@@ -0,0 +1,71 @@
+Tests for the exists() function.  vim: set ft=vim :
+
+STARTTEST
+:so small.vim
+:function! RunTest(str, result)
+    if exists(a:str) == a:result
+	echo "OK"
+    else
+	echo "FAILED: Checking for " . a:str
+    endif
+endfunction
+:function! TestExists()
+    augroup myagroup
+	autocmd! BufEnter *.my echo 'myfile edited'
+    augroup END
+    redir! > test.out
+
+    " valid autocmd group
+    call RunTest('#myagroup', 1)
+
+    " Valid autocmd group and event
+    call RunTest('#myagroup#BufEnter', 1)
+
+    " Valid autocmd group, event and pattern
+    call RunTest('#myagroup#BufEnter#*.my', 1)
+
+    " Valid autocmd event
+    call RunTest('#BufEnter', 1)
+
+    " Valid autocmd event and pattern
+    call RunTest('#BufEnter#*.my', 1)
+
+    " Non-existing autocmd group or event
+    call RunTest('#xyzagroup', 0)
+
+    " Non-existing autocmd group and valid autocmd event
+    call RunTest('#xyzagroup#BufEnter', 0)
+
+    " Valid autocmd group and autocmd event with no matching pattern
+    call RunTest('#myagroup#CmdwinEnter', 0)
+
+    " Valid autocmd group and non-existing autocmd event
+    call RunTest('#myagroup#xyzacmd', 0)
+
+    " Valid autocmd group and event and non-matching pattern
+    call RunTest('#myagroup#BufEnter#xyzpat', 0)
+
+    " Valid autocmd event and non-matching pattern
+    call RunTest('#BufEnter#xyzpat', 0)
+
+    " Empty autocmd group, event and pattern
+    call RunTest('###', 0)
+
+    " Empty autocmd group and event or event and pattern
+    call RunTest('##', 0)
+
+    " Testing support for event name that exists.
+    call RunTest('##SwapExists', 1)
+
+    " Testing support for event name that doesn't exist.
+    call RunTest('##SwapNotExists', 0)
+
+    redir END
+endfunction
+:call TestExists()
+:edit! test.out
+:set ff=unix
+:w
+:qa!
+ENDTEST
+
diff --git a/src/testdir/test60.ok b/src/testdir/test60.ok
new file mode 100644
index 0000000..004245f
--- /dev/null
+++ b/src/testdir/test60.ok
@@ -0,0 +1,16 @@
+
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
diff --git a/src/version.c b/src/version.c
index 69a47ff..f147348 100644
--- a/src/version.c
+++ b/src/version.c
@@ -1082,7 +1082,7 @@
 
     /* Show the sponsor and register message one out of four times, the Uganda
      * message two out of four times. */
-    sponsor = time(NULL);
+    sponsor = (int)time(NULL);
     sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0);
 
     /* start displaying the message lines after half of the blank lines */
diff --git a/src/version.h b/src/version.h
index cc5a45b..e26c13a 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 19)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 19, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 22)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 22, compiled "