view vimtutor.com @ 33101:8cbdd2cbf10a v9.0.1835

patch 9.0.1835: Perl interface has problems with load PL_current_context Commit: https://github.com/vim/vim/commit/7a9d1aa878d8724e28893b968016b86a3a70c63f Author: Yee Cheng Chin <ychin.git@gmail.com> Date: Fri Sep 1 18:46:17 2023 +0200 patch 9.0.1835: Perl interface has problems with load PL_current_context Problem: Perl interface has problems with load PL_current_context Solution: Fix Perl interface to load PL_current_context from library In #12914, in order to fix an issue with Perl 5.36 dynamic builds, (that version introduced a thread-local `PL_current_context`), the file added the variable manually so we can satisfy the linker. However, the variable is a different one from the one in the library, so there could be unpredictable behavior. Instead, just use `dlsym` to load the context from the library. The fact that it's thread-local doesn't matter too much to us because Vim's interface is single-threaded so it will work properly. closes: #12996 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Fri, 01 Sep 2023 19:00:04 +0200
parents 6f55637de261
children
line wrap: on
line source

$ !
$ !=====================================================================
$ !
$ !	VimTutor.com	version 29-Aug-2002
$ !
$ !	Author: Tom Wyant <Thomas.R.Wyant-III@usa.dupont.com>
$ !
$ !	This DCL command procedure executes the vimtutor command
$ !	(surprise, surprise!) which gives you a brief tutorial on the
$ !	VIM editor. Languages other than the default are supported in
$ !	the usual way, as are at least some of the command qualifiers,
$ !	though you'll need to play some fairly serious games with DCL
$ !	to specify ones that need quoting.
$ !
$ !	Copyright (c) 2002 E. I. DuPont de Nemours and Company, Inc
$ !
$ !	This program is free software; you can redistribute it and/or
$ !	modify it under the terms of the VIM license as available from
$ !	the vim 6.1 ":help license" command or (at your option) the
$ !	license from any later version of vim.
$ !
$ !	This program is distributed in the hope that it will be useful,
$ !	but WITHOUT ANY WARRANTY; without even the implied warranty of
$ !	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ !
$ !=====================================================================
$ !
$ !
$ !	Check for the existence of VIM, and die if it isn't there.
$ !
$	if f$search ("vim:vim.exe") .eqs. ""
$	then
$	    write sys$error "Error - Can't run tutorial. VIM not found."
$	    exit
$	endif
$ !
$ !
$ !	Pick up the argument, if any.
$ !
$	inx = 0
$ arg_loop:
$	inx = inx + 1
$	if f$type (p'inx') .nes. ""
$	then
$	    if p'inx' .nes. "" .and. f$locate ("-", p'inx') .ne. 0
$	    then
$		xx = p'inx'
$		assign/nolog "''xx'" xx
$		p'inx' = ""
$	    endif
$	    goto arg_loop
$	endif
$ !
$ !
$ !	Make sure we clean up our toys when we're through playing.
$ !
$	on error then goto exit
$ !
$ !
$ !	Create the VIM foreign command if needed
$ !
$	if f$type (vim) .eqs. "" then vim := $vim:vim
$ !
$ !
$ !	Build the name for our temp file.
$ !
$	tutfil = "sys$login:vimtutor_" + -
		f$edit (f$getjpi (0, "pid"), "trim") + "."
$	assign/nolog 'tutfil' TUTORCOPY
$ !
$ !
$ !	Copy the selected file to the temp file
$ !
$	assign/nolog/user nla0: sys$error
$	assign/nolog/user nla0: sys$output
$	vim -u "NONE" -c "so $VIMRUNTIME/tutor/tutor.vim"
$ !
$ !
$ !	Run the tutorial
$ !
$	assign/nolog/user sys$command sys$input
$	vim -u "NONE" -c "set nocp" 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' 'tutfil'
$ !
$ !
$ !	Ditch the copy.
$ !
$ exit:
$	if f$type (tutfil) .nes. "" .and. f$search (tutfil) .nes. "" then -
$	    delete 'tutfil';*
$	if f$type (xx) .nes. "" then deassign xx
$	deassign TUTORCOPY
$	exit
$ !
$ !=====================================================================
$ !
$ !		Modification history
$ !
$ !	29-Aug-2002	T. R. Wyant
$ !		Changed license to vim.
$ !		Fix error "input is not from a terminal"
$ !		Juggle documentation (copyright and contact to front,
$ !			modification history to end).
$ !	25-Jul-2002	T. R. Wyant
$ !		Initial version