changeset 208:f922db5a1fb3

updated for version 7.0060
author vimboss
date Tue, 15 Mar 2005 22:50:43 +0000
parents 4968de555941
children 590ba37e3e9f
files src/eval.c src/ex_cmds.h src/os_amiga.c
diffstat 3 files changed, 18 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -13024,8 +13024,13 @@ f_synIDattr(argvars, rettv)
 		p = highlight_has_attr(id, HL_STANDOUT, modec);
 		break;
 
-	case 'u':					/* underline */
-		p = highlight_has_attr(id, HL_UNDERLINE, modec);
+	case 'u':
+		if (STRLEN(what) <= 5 || TOLOWER_ASC(what[5]) != 'c')
+							/* underline */
+		    p = highlight_has_attr(id, HL_UNDERLINE, modec);
+		else
+							/* undercurl */
+		    p = highlight_has_attr(id, HL_UNDERCURL, modec);
 		break;
     }
 
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -110,7 +110,7 @@ EX(CMD_anoremenu,	"anoremenu",	ex_menu,
 EX(CMD_args,		"args",		ex_args,
 			BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
 EX(CMD_argadd,		"argadd",	ex_argadd,
-			BANG|NEEDARG|RANGE|NOTADR|ZEROR|COUNT|FILES|TRLBAR),
+			BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR),
 EX(CMD_argdelete,	"argdelete",	ex_argdelete,
 			BANG|RANGE|NOTADR|COUNT|FILES|TRLBAR),
 EX(CMD_argdo,		"argdo",	ex_listdo,
--- a/src/os_amiga.c
+++ b/src/os_amiga.c
@@ -119,9 +119,6 @@ mch_inchar(buf, maxlen, time, tb_change_
 {
     int	    len;
     long    utime;
-#ifdef FEAT_AUTOCMD
-    static int	once_already = 0;
-#endif
 
     if (time >= 0)
     {
@@ -130,43 +127,28 @@ mch_inchar(buf, maxlen, time, tb_change_
 	else
 	    utime = time * 1000L;   /* convert from milli to micro secs */
 	if (WaitForChar(raw_in, utime) == 0)	/* no character available */
-	{
-#ifdef FEAT_AUTOCMD
-	    once_already = 0;
-#endif
 	    return 0;
-	}
     }
     else    /* time == -1 */
     {
-#ifdef FEAT_AUTOCMD
-	if (once_already == 2)
-	    updatescript(0);
-	else if (once_already == 1)
-	{
-	    setcursor();
-	    once_already = 2;
-	    return 0;
-	}
-	else
-#endif
 	/*
 	 * If there is no character available within 2 seconds (default)
-	 * write the autoscript file to disk
+	 * write the autoscript file to disk.  Or cause the CursorHold event
+	 * to be triggered.
 	 */
-	    if (WaitForChar(raw_in, p_ut * 1000L) == 0)
+	if (WaitForChar(raw_in, p_ut * 1000L) == 0)
 	{
 #ifdef FEAT_AUTOCMD
-	    if (has_cursorhold() && get_real_state() == NORMAL_BUSY)
+	    if (!did_cursorhold && has_cursorhold()
+			    && get_real_state() == NORMAL_BUSY && maxlen >= 3)
 	    {
-		apply_autocmds(EVENT_CURSORHOLD, NULL, NULL, FALSE, curbuf);
-		update_screen(VALID);
-		once_already = 1;
-		return 0;
+		buf[0] = K_SPECIAL;
+		buf[1] = KS_EXTRA;
+		buf[2] = (int)KE_CURSORHOLD;
+		return 3;
 	    }
-	    else
 #endif
-		updatescript(0);
+	    updatescript(0);
 	}
     }
 
@@ -179,9 +161,6 @@ mch_inchar(buf, maxlen, time, tb_change_
 #  endif
 	if (len > 0)
 	{
-#ifdef FEAT_AUTOCMD
-	    once_already = 0;
-#endif
 #ifdef FEAT_MBYTE
 	    /* Convert from 'termencoding' to 'encoding'. */
 	    if (input_conv.vc_type != CONV_NONE)