real_dir_from_tilde(): ops, fix case where buf =~, silly crash


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@463 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
diff --git a/files.c b/files.c
index c597417..f665631 100644
--- a/files.c
+++ b/files.c
@@ -589,11 +589,15 @@
     if (buf[0] == '~') {
 	if (buf[1] == '~')
 	    goto abort;		/* Handle ~~ without segfaulting =) */
-	else if (buf[1] == '/') {
+	else if (buf[1] == 0 || buf[1] == '/') {
 	    if (getenv("HOME") != NULL) {
 		dirtmp = nmalloc(strlen(buf) + 2 + strlen(getenv("HOME")));
 
-		sprintf(dirtmp, "%s/%s", getenv("HOME"), &buf[2]);
+		if (strlen(buf) > 2)
+		    sprintf(dirtmp, "%s/%s", getenv("HOME"), &buf[2]);
+		else
+		    sprintf(dirtmp, "%s/", getenv("HOME"));
+
 	    }
 	} else if (buf[1] != 0) {