updated for version 7.0-230
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index ceb82ef..7f4cf81 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0.  Last change: 2006 Nov 01
+*eval.txt*      For Vim version 7.0.  Last change: 2007 Apr 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1623,6 +1623,7 @@
 globpath( {path}, {expr})	String	do glob({expr}) for all dirs in {path}
 has( {feature})			Number	TRUE if feature {feature} supported
 has_key( {dict}, {key})		Number	TRUE if {dict} has entry {key}
+haslocaldir()			Number	TRUE if current window executed |:lcd|
 hasmapto( {what} [, {mode} [, {abbr}]])
 				Number	TRUE if mapping to {what} exists
 histadd( {history},{item})	String	add an item to a history
@@ -3016,6 +3017,9 @@
 		The result is a Number, which is 1 if |Dictionary| {dict} has
 		an entry with key {key}.  Zero otherwise.
 
+haslocaldir()						*haslocaldir()*
+		The result is a Number, which is 1 when the current
+                window has set a local path via |:lcd|, and 0 otherwise.
 
 hasmapto({what} [, {mode} [, {abbr}]])			*hasmapto()*
 		The result is a Number, which is 1 if there is a mapping that
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 4139ad8..652378d 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.0.  Last change: 2006 Apr 30
+*usr_41.txt*	For Vim version 7.0.  Last change: 2007 Apr 26
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -703,6 +703,7 @@
 	isdirectory()		check if a directory exists
 	getfsize()		get the size of a file
 	getcwd()		get the current working directory
+	haslocaldir()		check if current window used |:lcd|
 	tempname()		get the name of a temporary file
 	mkdir()			create a new directory
 	delete()		delete a file
diff --git a/src/eval.c b/src/eval.c
index d66fe57..7a5ca1d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -541,6 +541,7 @@
 static void f_globpath __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_has __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_has_key __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_haslocaldir __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_hasmapto __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_histadd __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_histdel __ARGS((typval_T *argvars, typval_T *rettv));
@@ -7110,6 +7111,7 @@
     {"globpath",	2, 2, f_globpath},
     {"has",		1, 1, f_has},
     {"has_key",		2, 2, f_has_key},
+    {"haslocaldir",	0, 0, f_haslocaldir},
     {"hasmapto",	1, 3, f_hasmapto},
     {"highlightID",	1, 1, f_hlID},		/* obsolete */
     {"highlight_exists",1, 1, f_hlexists},	/* obsolete */
@@ -11134,6 +11136,18 @@
 }
 
 /*
+ * "haslocaldir()" function
+ */
+/*ARGSUSED*/
+    static void
+f_haslocaldir(argvars, rettv)
+    typval_T	*argvars;
+    typval_T	*rettv;
+{
+    rettv->vval.v_number = (curwin->w_localdir != NULL);
+}
+
+/*
  * "hasmapto()" function
  */
     static void
diff --git a/src/version.c b/src/version.c
index a825b38..672a409 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    230,
+/**/
     229,
 /**/
     228,