The version notes:
Huge version with X11-Motif GUI.  Features included (+) or not (-):
+acl               +farsi             +mouse_sgr         -tag_any_white
+arabic            +file_in_path      -mouse_sysmouse    -tcl
+autocmd           +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
+balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
+browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +timers
+byte_offset       -hangul_input      -num64             +title
+channel           +iconv             +packages          +toolbar
+cindent           +insert_expand     +path_extra        +user_commands
+clientserver      +job               -perl              +vertsplit
+clipboard         +jumplist          +persistent_undo   +virtualedit
+cmdline_compl     +keymap            +postscript        +visual
+cmdline_hist      +lambda            +printer           +visualextra
+cmdline_info      +langmap           +profile           +viminfo
+comments          +libcall           -python            +vreplace
+conceal           +linebreak         -python3           +wildignore
+cryptv            +lispindent        +quickfix          +wildmenu
+cscope            +listcmds          +reltime           +windows
+cursorbind        +localmap          +rightleft         +writebackup
+cursorshape       -lua               -ruby              +X11
+dialog_con_gui    +menu              +scrollbind        +xfontset
+diff              +mksession         +signs             +xim
+digraphs          +modify_fname      +smartindent       +xpm
-dnd               +mouse             +startuptime       +xsmp_interact
-ebcdic            +mouseshape        +statusline        +xterm_clipboard
+emacs_tags        +mouse_dec         -sun_workshop      -xterm_save
+eval              -mouse_gpm         +syntax
+ex_extra          -mouse_jsbterm     +tag_binary
+extra_search      +mouse_netterm     +tag_old_static
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/home/harolds/share/vim"
Compilation: gcc -std=gnu99 -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MOTIF  
-I/usr/dt/include   -O2 -fno-strength-reduce -Wall     -I/opt/x11r6/include
Linking: gcc -std=gnu99 -L/usr/dt/lib -R /usr/dt/lib -L/opt/x11r6/lib 
-R/opt/x11r6/lib  -o vim   -lXmu -lXext  -lXm -lXpm  -lm -lncurses

uname: SunOS XXXX 5.8 Generic_Virtual sun4u sparc SUNW,SPARC-Enterprise

I first saw problems with a plugin but when debugging that I saw this problem 
with a basic :let output (extract)
loaded_matchparen     #0
NETRW_DIRHIST_CNT     #0
NETRW_BOOKMARKMAX     #0
b:changedtick         #0
v:beval_winid         #0
v:version             #0
v:t_list              #0
v:beval_winnr         #0
v:errors              []
v:lnum                #0
v:hlsearch            #0
v:t_channel           #0

Every positive values showed a display value of 0, negative values showed a 
display value of -1.

I traced from the ex_let() function to get_tv_string_buf_chk() where there is 
these lines:
7143          case VAR_NUMBER:
    1             vim_snprintf((char *)buf, NUMBUFLEN, "%lld",
    2                                             (long 
long)varp->vval.v_number);

This is fine, v_number is 32 bits and this just converts the number by sign 
extension to a 64 bit number.

vim_snprintf() leads to new code in messages.c and a variable list is 
generated. That passes on until vim_vsnprintf_typval()
Note that FEAT_NUM64 is not defined.
4469             /* parse 'h', 'l' and 'll' length modifiers */
   1             if (*p == 'h' || *p == 'l')
   2             {
   3                 length_modifier = *p;
   4                 p++;
   5                 if (length_modifier == 'l' && *p == 'l')
   6                 {
   7                     /* double l = long long */
   8 # ifdef FEAT_NUM64
   9                     length_modifier = 'L';
  10 # else
  11                     length_modifier = 'l';      /* treat it as a single 
'l' */
  12 # endif
  13                     p++;
  14                 }
  15             }

So there is a variable list with the address of a long long value and a lld 
format which is then is treated as a single long. Hence the display of the 
extended sign as the number.

Hoping that this was the common source of the problem I removed FEAT_NUM64 
checks. This solved the :let display problem.

However, the plugin executable() function problem was still there and CTRL-A 
always returns a result of 0.

I tried building again with no changes but the FEAT_NUM64 feature forced on. 
This led to even stranger results :let display displays 100 as the value for 
all positive numbers and -4294967196 for all negative numbers. CTRL-A always 
returns a result of 177.

The gcc compiler used is the same for my working 8.0 build. The 8.1 build used 
options including -O2 but I also tried a build with the exact options as on the 
8.0 build and it had the same problems. I also tried a build with a different 
compiler and that produced the same results.

Interested if anyone has a working Solaris VIM 8.1 product with the extant code.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui