Mercurial > vim
annotate nsis/README.txt @ 32876:522f16e3e058 v9.0.1747
patch 9.0.1747: screenpos() may cause unnecessary redraw
Commit: https://github.com/vim/vim/commit/6235a109c48ff2559eca3b16578c429ffb61eadc
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Aug 19 14:12:42 2023 +0200
patch 9.0.1747: screenpos() may cause unnecessary redraw
Problem: screenpos() may cause unnecessary redraw.
Solution: Don't unnecessarily reset VALID_WROW flag.
VALID_WROW flag is only used by two functions: validate_cursor() and
cursor_valid(), and cursor_valid() is only used once in ex_sleep().
When adjust_plines_for_skipcol() was first added in patch 9.0.0640, it
was called in two functions: comp_botline() and curs_rows().
- comp_botline() is called in two places:
- onepage(), which resets VALID_WROW flag immediately afterwards.
- validate_botline_win(), where resetting a VALID_ flag is strange.
- curs_rows() is called in two places:
- curs_columns(), which sets VALID_WROW flag afterwards.
- validate_cline_row(), which is only used by GUI mouse focus.
Therefore resetting VALID_WROW there doesn't seem to do anything useful.
Also, a w_skipcol check (which resets VALID_WROW flag) was added to
check_cursor_moved() in patch 9.0.0734, which seems to make more sense
than resetting that flag in the middle of a computation.
While at it make adjust_plines_for_skipcol() and textpos2screenpos() a
bit less confusing:
- Make adjust_plines_for_skipcol() return "off" instead of "n - off".
- Use 0-based "row" in textpos2screenpos() until W_WINROW is added.
closes: #12832
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 19 Aug 2023 14:30:02 +0200 |
parents | 238f424acc6c |
children | d91ac228d7df |
rev | line source |
---|---|
7 | 1 This builds a one-click install for Vim for Win32 using the Nullsoft |
12626
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
2 Installation System (NSIS), available at http://nsis.sourceforge.net/ |
7 | 3 |
4 To build the installable .exe: | |
5 | |
6 1. Unpack three archives: | |
7 PC sources | |
8 PC runtime | |
9 PC language files | |
10 You can generate these from the Unix sources and runtime plus the extra | |
11 archive (see the Makefile in the top directory). | |
12 | |
13 2. Go to the src directory and build: | |
14 gvim.exe (the OLE version), | |
15 vimrun.exe, | |
16 install.exe, | |
18182
9b6bfce90778
patch 8.1.2086: missing a few changes for the renamed files
Bram Moolenaar <Bram@vim.org>
parents:
15410
diff
changeset
|
17 uninstall.exe, |
15095
803807ab19c5
patch 8.1.0558: some MS-Windows instructions are outdated
Bram Moolenaar <Bram@vim.org>
parents:
12626
diff
changeset
|
18 tee/tee.exe, |
7 | 19 xxd/xxd.exe, |
20 | |
12626
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
21 Then execute tools/rename.bat to rename the executables. (mv command is |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
22 required.) |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
23 |
7 | 24 3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary |
12626
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
25 archive). Both 64- and 32-bit versions are needed and should be placed |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
26 as follows: |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
27 64-bit: src/GvimExt/gvimext64.dll |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
28 32-bit: src/GvimExt/gvimext.dll |
7 | 29 |
30727
645722244c3f
patch 9.0.0698: VisVim is outdated, does not work with current Visual Studio
Bram Moolenaar <Bram@vim.org>
parents:
25056
diff
changeset
|
30 4. Get a "diff.exe" program. If you skip this the built-in diff will always |
15095
803807ab19c5
patch 8.1.0558: some MS-Windows instructions are outdated
Bram Moolenaar <Bram@vim.org>
parents:
12626
diff
changeset
|
31 be used (which is fine for most users). If you do have your own |
31628
238f424acc6c
patch 9.0.1146: MS-Windows: various special keys/modifiers are not mappable
Bram Moolenaar <Bram@vim.org>
parents:
30727
diff
changeset
|
32 "diff.exe" put it in the "../.." directory (above the "vim90" directory, |
15095
803807ab19c5
patch 8.1.0558: some MS-Windows instructions are outdated
Bram Moolenaar <Bram@vim.org>
parents:
12626
diff
changeset
|
33 it's the same for all Vim versions). |
7 | 34 You can find one in previous Vim versions or in this archive: |
35 http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz | |
15095
803807ab19c5
patch 8.1.0558: some MS-Windows instructions are outdated
Bram Moolenaar <Bram@vim.org>
parents:
12626
diff
changeset
|
36 |
31628
238f424acc6c
patch 9.0.1146: MS-Windows: various special keys/modifiers are not mappable
Bram Moolenaar <Bram@vim.org>
parents:
30727
diff
changeset
|
37 5 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim90" |
15095
803807ab19c5
patch 8.1.0558: some MS-Windows instructions are outdated
Bram Moolenaar <Bram@vim.org>
parents:
12626
diff
changeset
|
38 directory). This is required for the terminal window. |
7 | 39 |
30727
645722244c3f
patch 9.0.0698: VisVim is outdated, does not work with current Visual Studio
Bram Moolenaar <Bram@vim.org>
parents:
25056
diff
changeset
|
40 6. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have |
7 | 41 to do this on Unix. Make sure the file is in DOS file format! |
42 | |
30727
645722244c3f
patch 9.0.0698: VisVim is outdated, does not work with current Visual Studio
Bram Moolenaar <Bram@vim.org>
parents:
25056
diff
changeset
|
43 7. Get gettext and iconv DLLs from the following site: |
12626
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
44 https://github.com/mlocati/gettext-iconv-windows/releases |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
45 Both 64- and 32-bit versions are needed. |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
46 Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
47 DLLs and place them as follows: |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
48 |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
49 <GETTEXT directory> |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
50 | |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
51 + gettext32/ |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
52 | libintl-8.dll |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
53 | libiconv-2.dll |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
54 | libgcc_s_sjlj-1.dll |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
55 | |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
56 ` gettext64/ |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
57 libintl-8.dll |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
58 libiconv-2.dll |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
59 |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
60 The default <GETTEXT directory> is "..", however, you can change it by |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
61 passing /DGETTEXT=... option to the makensis command. |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
62 |
aca41efd888c
patch 8.0.1191: MS-Windows: missing 32 and 64 bit files in installer
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
63 |
7 | 64 Install NSIS if you didn't do that already. |
65 Also install UPX, if you want a compressed file. | |
24565
138e9caf4a7a
patch 8.2.2822: MS-Windows: unnessarily loading libraries when unregistering
Bram Moolenaar <Bram@vim.org>
parents:
19116
diff
changeset
|
66 Download and include the ShellExecAsUser.dll Unicode version which can be |
138e9caf4a7a
patch 8.2.2822: MS-Windows: unnessarily loading libraries when unregistering
Bram Moolenaar <Bram@vim.org>
parents:
19116
diff
changeset
|
67 sourced from: https://nsis.sourceforge.io/ShellExecAsUser_plug-in |
138e9caf4a7a
patch 8.2.2822: MS-Windows: unnessarily loading libraries when unregistering
Bram Moolenaar <Bram@vim.org>
parents:
19116
diff
changeset
|
68 |
7 | 69 |
15410
cb1652e41314
patch 8.1.0713: images for NSIS take up too much space
Bram Moolenaar <Bram@vim.org>
parents:
15095
diff
changeset
|
70 Unpack the images: |
cb1652e41314
patch 8.1.0713: images for NSIS take up too much space
Bram Moolenaar <Bram@vim.org>
parents:
15095
diff
changeset
|
71 cd nsis |
cb1652e41314
patch 8.1.0713: images for NSIS take up too much space
Bram Moolenaar <Bram@vim.org>
parents:
15095
diff
changeset
|
72 unzip icons.zip |
cb1652e41314
patch 8.1.0713: images for NSIS take up too much space
Bram Moolenaar <Bram@vim.org>
parents:
15095
diff
changeset
|
73 |
25056 | 74 Then build gvim.exe: |
7 | 75 |
15410
cb1652e41314
patch 8.1.0713: images for NSIS take up too much space
Bram Moolenaar <Bram@vim.org>
parents:
15095
diff
changeset
|
76 cd nsis |
7 | 77 makensis gvim.nsi |