0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 8.2.2294: VMS: a few remaining problems

Problem:    VMS: a few remaining problems.
Solution:   Add VMS specific changes. Add Lua support. (Zoltan Arpadffy)
This commit is contained in:
Bram Moolenaar
2021-01-04 10:47:26 +01:00
parent bb0956fc65
commit 82c38fe508
9 changed files with 110 additions and 54 deletions

View File

@@ -2,7 +2,7 @@
# Makefile for Vim on OpenVMS # Makefile for Vim on OpenVMS
# #
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com> # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
# Last change: 2020 Dec 30 # Last change: 2021 Jan 04
# #
# This script has been tested on VMS 6.2 to 8.4 on DEC Alpha, VAX and IA64 # This script has been tested on VMS 6.2 to 8.4 on DEC Alpha, VAX and IA64
# with MMS and MMK # with MMS and MMK
@@ -38,7 +38,7 @@ MODEL = HUGE
# GUI or terminal mode executable. # GUI or terminal mode executable.
# Comment out if you want just the character terminal mode only. # Comment out if you want just the character terminal mode only.
# GUI with Motif # GUI with Motif
GUI = YES # GUI = YES
# GUI with GTK # GUI with GTK
# If you have GTK installed you might want to enable this option. # If you have GTK installed you might want to enable this option.
@@ -49,7 +49,7 @@ GUI = YES
# GUI/Motif with XPM # GUI/Motif with XPM
# If you have XPM installed you might want to build Motif version with toolbar # If you have XPM installed you might want to build Motif version with toolbar
XPM = YES # XPM = YES
# Comment out if you want the compiler version with :ver command. # Comment out if you want the compiler version with :ver command.
# NOTE: This part can make some complications if you're using some # NOTE: This part can make some complications if you're using some
@@ -68,6 +68,7 @@ CCVER = YES
# VIM_PERL = YES # VIM_PERL = YES
# VIM_PYTHON = YES # VIM_PYTHON = YES
# VIM_RUBY = YES # VIM_RUBY = YES
# VIM_LUA = YES
# X Input Method. For entering special languages like chinese and # X Input Method. For entering special languages like chinese and
# Japanese. # Japanese.
@@ -237,6 +238,15 @@ RUBY_LIB = ,OS_VMS_RUBY.OPT/OPT
RUBY_INC = RUBY_INC =
.ENDIF .ENDIF
.IFDEF VIM_LUA
# LUA related setup.
LUA_DEF = ,"FEAT_LUA"
LUA_SRC = if_lua.c
LUA_OBJ = if_lua.obj
LUA_LIB = ,OS_VMS_LUA.OPT/OPT
LUA_INC = ,LUA$ROOT:[INCLUDE]
.ENDIF
.IFDEF VIM_XIM .IFDEF VIM_XIM
# XIM related setup. # XIM related setup.
.IFDEF GUI .IFDEF GUI
@@ -275,7 +285,7 @@ VIMHOST = "''F$TRNLNM("SYS$NODE")'''F$TRNLNM("UCX$INET_HOST")'.''F$TRNLNM("UCX$I
.SUFFIXES : .obj .c .SUFFIXES : .obj .c
ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
$(TCL_DEF)$(RUBY_DEF)$(XIM_DEF)$(TAG_DEF)$(MZSCH_DEF) - $(TCL_DEF)$(RUBY_DEF)$(LUA_DEF)$(XIM_DEF)$(TAG_DEF)$(MZSCH_DEF) -
$(ICONV_DEF)) - $(ICONV_DEF)) -
$(CFLAGS)$(GUI_FLAG) - $(CFLAGS)$(GUI_FLAG) -
/include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC) - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC) -
@@ -286,14 +296,14 @@ ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
# as $(GUI_INC) - replaced with $(GUI_INC_VER) # as $(GUI_INC) - replaced with $(GUI_INC_VER)
# Otherwise should not be any other difference. # Otherwise should not be any other difference.
ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
$(TCL_DEF)$(RUBY_DEF)$(XIM_DEF)$(TAG_DEF)$(MZSCH_DEF) - $(TCL_DEF)$(RUBY_DEF)$(LUA_DEF)$(XIM_DEF)$(TAG_DEF)$(MZSCH_DEF) -
$(ICONV_DEF)) - $(ICONV_DEF)) -
$(CFLAGS)$(GUI_FLAG) - $(CFLAGS)$(GUI_FLAG) -
/include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC) - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC) -
$(TCL_INC)$(XDIFF_INC)$(XPM_INC)) $(TCL_INC)$(XDIFF_INC)$(XPM_INC))
ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) $(XPM_LIB)\ ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) $(XPM_LIB)\
$(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(RUBY_LIB) $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(RUBY_LIB) $(LUA_LIB)
SRC = \ SRC = \
arabic.c \ arabic.c \
@@ -408,6 +418,7 @@ SRC = \
$(PYTHON_SRC) \ $(PYTHON_SRC) \
$(TCL_SRC) \ $(TCL_SRC) \
$(RUBY_SRC) \ $(RUBY_SRC) \
$(LUA_SRC) \
$(MZSCH_SRC) \ $(MZSCH_SRC) \
$(XDIFF_SRC) $(XDIFF_SRC)
@@ -525,11 +536,12 @@ OBJ = \
$(PYTHON_OBJ) \ $(PYTHON_OBJ) \
$(TCL_OBJ) \ $(TCL_OBJ) \
$(RUBY_OBJ) \ $(RUBY_OBJ) \
$(LUA_OBJ) \
$(MZSCH_OBJ) \ $(MZSCH_OBJ) \
$(XDIFF_OBJ) $(XDIFF_OBJ)
# Default target is making the executable # Default target is making the executable
all : [.auto]config.h mmk_compat motif_env gtk_env perl_env python_env tcl_env ruby_env $(TARGET) all : [.auto]config.h mmk_compat motif_env gtk_env perl_env python_env tcl_env ruby_env lua_env $(TARGET)
! $@ ! $@
[.auto]config.h : $(CONFIG_H) [.auto]config.h : $(CONFIG_H)
@@ -709,6 +721,19 @@ ruby_env :
-@ ! -@ !
.ENDIF .ENDIF
.IFDEF VIM_LUA
lua_env :
-@ write sys$output "using LUA environment:"
-@ write sys$output " include path: ""$(LUA_INC)"""
-@ write sys$output "creating OS_VMS_LUA.OPT file."
-@ open/write opt_file OS_VMS_LUA.OPT
-@ write opt_file "LUA$ROOT:[LIB]LUA$SHR.EXE /share"
-@ close opt_file
.ELSE
lua_env :
-@ !
.ENDIF
arabic.obj : arabic.c vim.h arabic.obj : arabic.c vim.h
arglist.obj : arglist.c vim.h [.auto]config.h feature.h os_unix.h arglist.obj : arglist.c vim.h [.auto]config.h feature.h os_unix.h
autocmd.obj : autocmd.c vim.h [.auto]config.h feature.h os_unix.h autocmd.obj : autocmd.c vim.h [.auto]config.h feature.h os_unix.h
@@ -1167,6 +1192,8 @@ if_ruby.obj : if_ruby.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
errors.h globals.h version.h errors.h globals.h version.h
if_lua.obj : if_lua.c vim.h [.auto]config.h feature.h os_unix.h \
errors.h globals.h version.h
beval.obj : beval.c vim.h [.auto]config.h feature.h os_unix.h \ beval.obj : beval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h option.h ex_cmds.h proto.h \ gui.h beval.h option.h ex_cmds.h proto.h \

View File

@@ -16,10 +16,13 @@
#if defined(__TANDEM) #if defined(__TANDEM)
# include <limits.h> // for SSIZE_MAX # include <limits.h> // for SSIZE_MAX
#endif #endif
#if defined(UNIX) && defined(FEAT_EVAL) #if (defined(UNIX) || defined(VMS)) && defined(FEAT_EVAL)
# include <pwd.h> # include <pwd.h>
# include <grp.h> # include <grp.h>
#endif #endif
#if defined(VMS) && defined(HAVE_XOS_R_H)
# include <x11/xos_r.h>
#endif
// Is there any system that doesn't have access()? // Is there any system that doesn't have access()?
#define USE_MCH_ACCESS #define USE_MCH_ACCESS
@@ -338,7 +341,7 @@ readfile(
if (!read_stdin && !read_buffer && !read_fifo) if (!read_stdin && !read_buffer && !read_fifo)
{ {
#ifdef UNIX #if defined(UNIX) || defined(VMS)
/* /*
* On Unix it is possible to read a directory, so we have to * On Unix it is possible to read a directory, so we have to
* check for it before the mch_open(). * check for it before the mch_open().
@@ -4623,11 +4626,13 @@ create_readdirex_item(char_u *path, char_u *name)
q = (char_u*)pw->pw_name; q = (char_u*)pw->pw_name;
if (dict_add_string(item, "user", q) == FAIL) if (dict_add_string(item, "user", q) == FAIL)
goto theend; goto theend;
# if !defined(VMS) || (defined(VMS) && defined(HAVE_XOS_R_H))
gr = getgrgid(st.st_gid); gr = getgrgid(st.st_gid);
if (gr == NULL) if (gr == NULL)
q = (char_u*)""; q = (char_u*)"";
else else
q = (char_u*)gr->gr_name; q = (char_u*)gr->gr_name;
# endif
if (dict_add_string(item, "group", q) == FAIL) if (dict_add_string(item, "group", q) == FAIL)
goto theend; goto theend;
} }

View File

@@ -69,6 +69,20 @@
_XmDrawHighlight(a, b, c, d, e, f, g, h, LineSolid) _XmDrawHighlight(a, b, c, d, e, f, g, h, LineSolid)
#endif #endif
// Older VMS systems do not have xos_r.h and cannot haldle XtProcessLocking
#if defined(VMS)
# if defined(HAVE_XOS_R_H)
# define XTPROCESS_LOCK XtProcessLock()
# define XTPROCESS_UNLOCK XtProcessUnlock()
# else
# define XTPROCESS_LOCK
# define XTPROCESS_UNLOCK
# endif
#else
# define XTPROCESS_LOCK XtProcessLock()
# define XTPROCESS_UNLOCK XtProcessUnlock()
#endif
/* /*
* Motif internals we have to cheat around with. * Motif internals we have to cheat around with.
*/ */
@@ -714,9 +728,9 @@ draw_label(XmEnhancedButtonWidget eb, XEvent *event, Region region)
{ {
XtExposeProc expose; XtExposeProc expose;
XtProcessLock(); XTPROCESS_LOCK;
expose = xmLabelClassRec.core_class.expose; expose = xmLabelClassRec.core_class.expose;
XtProcessUnlock(); XTPROCESS_UNLOCK;
(*expose)((Widget) eb, event, region); (*expose)((Widget) eb, event, region);
} }
@@ -809,9 +823,9 @@ Enter(Widget wid,
_XmPrimitiveEnter((Widget) eb, event, NULL, NULL); _XmPrimitiveEnter((Widget) eb, event, NULL, NULL);
if (eb->pushbutton.armed == TRUE) if (eb->pushbutton.armed == TRUE)
{ {
XtProcessLock(); XTPROCESS_LOCK;
expose = XtClass(eb)->core_class.expose; expose = XtClass(eb)->core_class.expose;
XtProcessUnlock(); XTPROCESS_UNLOCK;
(*expose) (wid, event, (Region) NULL); (*expose) (wid, event, (Region) NULL);
} }
@@ -887,9 +901,9 @@ Leave(Widget wid,
{ {
XtExposeProc expose; XtExposeProc expose;
eb->pushbutton.armed = FALSE; eb->pushbutton.armed = FALSE;
XtProcessLock(); XTPROCESS_LOCK;
expose = XtClass(eb)->core_class.expose; expose = XtClass(eb)->core_class.expose;
XtProcessUnlock(); XTPROCESS_UNLOCK;
(*expose) (wid, event, (Region)NULL); (*expose) (wid, event, (Region)NULL);
draw_unhighlight(eb); draw_unhighlight(eb);
draw_pixmap(eb, event, NULL); draw_pixmap(eb, event, NULL);
@@ -973,9 +987,9 @@ set_size(XmEnhancedButtonWidget newtb)
// Invoke Label's Resize procedure. // Invoke Label's Resize procedure.
{ {
XtWidgetProc resize; XtWidgetProc resize;
XtProcessLock(); XTPROCESS_LOCK;
resize = xmLabelClassRec.core_class.resize; resize = xmLabelClassRec.core_class.resize;
XtProcessUnlock(); XTPROCESS_UNLOCK;
(* resize) ((Widget) newtb); (* resize) ((Widget) newtb);
} }
@@ -988,9 +1002,9 @@ Initialize(Widget rq, Widget ebw, ArgList args UNUSED, Cardinal *n UNUSED)
XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget)ebw; XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget)ebw;
XtWidgetProc resize; XtWidgetProc resize;
XtProcessLock(); XTPROCESS_LOCK;
resize = xmLabelClassRec.core_class.resize; resize = xmLabelClassRec.core_class.resize;
XtProcessUnlock(); XTPROCESS_UNLOCK;
// Create a bitmap for stippling (Drawable resources are cheap). // Create a bitmap for stippling (Drawable resources are cheap).
if (STIPPLE_BITMAP == None) if (STIPPLE_BITMAP == None)

View File

@@ -161,7 +161,6 @@
# define mch_fstat(n, p) fstat((n), (p)) # define mch_fstat(n, p) fstat((n), (p))
# undef HAVE_LSTAT // VMS does not have lstat() # undef HAVE_LSTAT // VMS does not have lstat()
# define mch_stat(n, p) stat(vms_fixfilename(n), (p)) # define mch_stat(n, p) stat(vms_fixfilename(n), (p))
# define mch_rmdir(n) rmdir(vms_fixfilename(n))
#else #else
# ifndef MSWIN # ifndef MSWIN
# define mch_access(n, p) access((n), (p)) # define mch_access(n, p) access((n), (p))

View File

@@ -73,8 +73,9 @@
// always use unlink() to remove files // always use unlink() to remove files
#ifndef PROTO #ifndef PROTO
# ifdef VMS # ifdef VMS
# define mch_remove(x) delete((char *)(x)) # define vim_mkdir(x, y) mkdir((char *)vms_fixfilename(x), y)
# define vim_mkdir(x, y) mkdir((char *)(x), y) # define mch_rmdir(x) delete((char *)vms_fixfilename(x))
# define mch_remove(x) delete((char *)vms_fixfilename(x))
# else # else
# define vim_mkdir(x, y) mkdir((char *)(x), y) # define vim_mkdir(x, y) mkdir((char *)(x), y)
# define mch_rmdir(x) rmdir((char *)(x)) # define mch_rmdir(x) rmdir((char *)(x))

View File

@@ -672,10 +672,19 @@ vms_fixfilename(void *instring)
else if (strchr(instring,'"') == NULL) // password in the path? else if (strchr(instring,'"') == NULL) // password in the path?
{ {
// Seems it is a regular file, let guess that it is pure Unix fspec // Seems it is a regular file, let guess that it is pure Unix fspec
if (decc$to_vms(instring, vms_fspec_proc, 0, 0) <= 0) if ( (strchr(instring,'[') == NULL) && (strchr(instring,'<') == NULL) &&
// No... it must be mixed (strchr(instring,']') == NULL) && (strchr(instring,'>') == NULL) &&
(strchr(instring,':') == NULL) )
{
// It must be a truly unix fspec
decc$to_vms(instring, vms_fspec_proc, 0, 0);
}
else
{
// It is a mixed fspec
vms_unix_mixed_filespec(instring, buf); vms_unix_mixed_filespec(instring, buf);
} }
}
else else
// we have a password in the path // we have a password in the path
// decc$ functions can not handle // decc$ functions can not handle

View File

@@ -147,7 +147,6 @@
#undef HAVE_FCHDIR #undef HAVE_FCHDIR
#undef HAVE_LSTAT #undef HAVE_LSTAT
#undef HAVE_STDINT_H #undef HAVE_STDINT_H
#undef HAVE_XOS_R_H
// Hardware specific // Hardware specific
#ifdef VAX #ifdef VAX
@@ -157,12 +156,12 @@
#undef HAVE_STRINGS_H #undef HAVE_STRINGS_H
#undef HAVE_SIGSETJMP #undef HAVE_SIGSETJMP
#undef HAVE_ISNAN #undef HAVE_ISNAN
#undef HAVE_XOS_R_H
#define HAVE_NO_LONG_LONG #define HAVE_NO_LONG_LONG
#define VIM_SIZEOF_LONG 4 #define VIM_SIZEOF_LONG 4
#define LONG_LONG_MIN (-2147483647-1) #define LONG_LONG_MIN (-2147483647-1)
#define LONG_LONG_MAX (2147483647) #define LONG_LONG_MAX (2147483647)
#define ULONG_LONG_MAX (4294967295U) #define ULONG_LONG_MAX (4294967295U)
#undef XTHREADS
#else // AXP and IA64 #else // AXP and IA64
#define HAVE_GETTIMEOFDAY #define HAVE_GETTIMEOFDAY
#define HAVE_USLEEP #define HAVE_USLEEP
@@ -170,12 +169,12 @@
#define HAVE_STRINGS_H #define HAVE_STRINGS_H
#define HAVE_SIGSETJMP #define HAVE_SIGSETJMP
#define HAVE_ISNAN #define HAVE_ISNAN
#define HAVE_XOS_R_H
#define HAVE_NO_LONG_LONG #define HAVE_NO_LONG_LONG
#define VIM_SIZEOF_LONG 8 #define VIM_SIZEOF_LONG 8
#define LONG_LONG_MIN (-9223372036854775807-1) #define LONG_LONG_MIN (-9223372036854775807-1)
#define LONG_LONG_MAX (9223372036854775807) #define LONG_LONG_MAX (9223372036854775807)
#define ULONG_LONG_MAX (18446744073709551615U) #define ULONG_LONG_MAX (18446744073709551615U)
#define XTHREADS
#endif #endif
// Compiler specific // Compiler specific

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2294,
/**/ /**/
2293, 2293,
/**/ /**/

View File

@@ -3389,7 +3389,7 @@ ex_disassemble(exarg_T *eap)
break; break;
case ISN_EXECCONCAT: case ISN_EXECCONCAT:
smsg("%4d EXECCONCAT %lld", current, smsg("%4d EXECCONCAT %lld", current,
(long long)iptr->isn_arg.number); (varnumber_T)iptr->isn_arg.number);
break; break;
case ISN_ECHO: case ISN_ECHO:
{ {
@@ -3402,15 +3402,15 @@ ex_disassemble(exarg_T *eap)
break; break;
case ISN_EXECUTE: case ISN_EXECUTE:
smsg("%4d EXECUTE %lld", current, smsg("%4d EXECUTE %lld", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
case ISN_ECHOMSG: case ISN_ECHOMSG:
smsg("%4d ECHOMSG %lld", current, smsg("%4d ECHOMSG %lld", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
case ISN_ECHOERR: case ISN_ECHOERR:
smsg("%4d ECHOERR %lld", current, smsg("%4d ECHOERR %lld", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
case ISN_LOAD: case ISN_LOAD:
case ISN_LOADOUTER: case ISN_LOADOUTER:
@@ -3419,11 +3419,11 @@ ex_disassemble(exarg_T *eap)
if (iptr->isn_arg.number < 0) if (iptr->isn_arg.number < 0)
smsg("%4d LOAD%s arg[%lld]", current, add, smsg("%4d LOAD%s arg[%lld]", current, add,
(long long)(iptr->isn_arg.number (varnumber_T)(iptr->isn_arg.number
+ STACK_FRAME_SIZE)); + STACK_FRAME_SIZE));
else else
smsg("%4d LOAD%s $%lld", current, add, smsg("%4d LOAD%s $%lld", current, add,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
} }
break; break;
case ISN_LOADV: case ISN_LOADV:
@@ -3496,10 +3496,10 @@ ex_disassemble(exarg_T *eap)
if (iptr->isn_arg.number < 0) if (iptr->isn_arg.number < 0)
smsg("%4d STORE%s arg[%lld]", current, add, smsg("%4d STORE%s arg[%lld]", current, add,
(long long)(iptr->isn_arg.number + STACK_FRAME_SIZE)); (varnumber_T)(iptr->isn_arg.number + STACK_FRAME_SIZE));
else else
smsg("%4d STORE%s $%lld", current, add, smsg("%4d STORE%s $%lld", current, add,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
} }
break; break;
case ISN_STOREV: case ISN_STOREV:
@@ -3578,7 +3578,7 @@ ex_disassemble(exarg_T *eap)
// constants // constants
case ISN_PUSHNR: case ISN_PUSHNR:
smsg("%4d PUSHNR %lld", current, smsg("%4d PUSHNR %lld", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
case ISN_PUSHBOOL: case ISN_PUSHBOOL:
case ISN_PUSHSPEC: case ISN_PUSHSPEC:
@@ -3653,11 +3653,11 @@ ex_disassemble(exarg_T *eap)
break; break;
case ISN_NEWLIST: case ISN_NEWLIST:
smsg("%4d NEWLIST size %lld", current, smsg("%4d NEWLIST size %lld", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
case ISN_NEWDICT: case ISN_NEWDICT:
smsg("%4d NEWDICT size %lld", current, smsg("%4d NEWDICT size %lld", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
// function call // function call
@@ -3924,10 +3924,10 @@ ex_disassemble(exarg_T *eap)
smsg("%4d 2BOOL (!!val)", current); smsg("%4d 2BOOL (!!val)", current);
break; break;
case ISN_2STRING: smsg("%4d 2STRING stack[%lld]", current, case ISN_2STRING: smsg("%4d 2STRING stack[%lld]", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
case ISN_2STRING_ANY: smsg("%4d 2STRING_ANY stack[%lld]", current, case ISN_2STRING_ANY: smsg("%4d 2STRING_ANY stack[%lld]", current,
(long long)(iptr->isn_arg.number)); (varnumber_T)(iptr->isn_arg.number));
break; break;
case ISN_RANGE: smsg("%4d RANGE %s", current, iptr->isn_arg.string); case ISN_RANGE: smsg("%4d RANGE %s", current, iptr->isn_arg.string);
break; break;