Sparkle 2.4 added support for customizing the displayed version string
instead of just showing the "display version" from the manifest (see
https://github.com/sparkle-project/Sparkle/issues/2267). Since MacVim
has a somewhat non-standard usage of bundle vs display version (bundle
is release number, and display version is the upstream Vim version), we
really want to show both to the user, in a concise manner. Support this
customization so it looks like "r123 (Vim 9.1.2345)" (here, "123" is the
bundle version / release number, and "9.1.2345" is the display version /
Vim version).
Fix#1293
2.3.2
- Contains a fix to prevent Sparkle (and the app) from crashing if the
appcast contains file:// or invalid URLs.
2.4
- Add ability to customize version string displays, which is useful for
MacVim as our bundle version (MacVim release number) and display
version (Vim release) are different things and we want to customize
how they are displayed.
- Sparkle binary size reduced roughly by half. This does mean it doesn't
come with debug symbols anymore so we would need to cross-correlate
with dSYM files.
This helps the user know whether they are using a relatively untested
build and should consider going back to a main release. We currently
just define "pre-release" build as any release version with a minor
version, e.g. r176.1 is a pre-release, but r176 isn't.
Also, move the order around so we show "MacVim r123 (Vim
9.0.1234)" instead of "Vim 9.0.1234 (MacVim r123)" which is more
consistent with other ways we show version numbers, and this will be
how we show version number when we upgrade to Sparkle 2.4 as well.
MacVim's `:hardcopy` implementation just uses Preview to show the
generated PostScript file and lets the user decide what to do with it.
macOS 13 Ventura removed PostScript support from Preview, so we now have
to manually convert it to PDF first using `pstopdf` (which is thankfully
bundled with macOS).
While we are at it, update the script so that we actually delete the
file after sending it to Preview. Previously MacVim never did that and
therefore leaks the file in a temp folder until Vim closes, which isn't
ideal for privacy. Now, just set a 10 sec timer to delete the file after
it's opened (we just need enough time to allow Preview to open and load
the file, which doesn't take much time. The 10 sec timer is to account
for slow computers).
Fix#1347
Turn on parallel building, to remove the "Building targets in manual
order is deprecated" project warning.
Also, fix configure to only set macOS deployment target to the major
version of macOS when automatically setting it from the client OS
version. E.g. On macOS 13.2 it will set deployment to 13.0. This is
useful because usually we don't want it to be as granular as the minor
version which had caused issues in Homebrew before
(https://github.com/Homebrew/homebrew-core/issues/111693) where they had
to fix on their end, and also 13.2 ends up being too new for Xcode which
only expects to see up to 13.1 as deployment target.
- Note that the logic used to work in OSX 10.X days because the "minor"
version of X is actually the OS version, whereas in macOS 11/12/13 we
now have versions like 13.2 where the first number is now the OS
version. The configure script will now detect whether it's 10.X.Y or
X.Y (X != 10) and set the correct target correspondingly.
Set mouseshape correctly when using 'r' or 'gr'. Otherwise Vim will only
do it when mouse moves or window receives focus, which is a little
random. This change will be ported upstream.
Part of this was originally part of #1178 but we removed the qlstephen
parts to prepare for eventual removal. Couple years later and we haven't
removed qlstephen yet, so just fix the warnings for now first.
From #1178:
- Fix the project localization name from English to "en"
- Set ALWAYS_SEARCH_USER_PATHS to "NO"
Also:
- Remove the hard-coded macOS 10.8 deployment target which actually
isn't supported by modern Xcode versions. Just unset it as our CI
usually sets that for us.
- The post-build script is now tagged properly to always run.
- Ignore all deprecation warnings. These were exposed because we removed
the 10.8 deployment target. Since we aren't going to be fixing them
(we are either just going to grab newer versions from upsteram, or
delete this), there's no point in having these warnings.
Previously MacVim started to use the latest autoconf (2.71) but it's
best to match upstream in version to make it easier to diff/merge
changes, and also because the version upgrade is technically not 100%
backwards compatible.
Add an empty implementation to remove a diff from upstream, which
constantly shows up when resolving merge conflicts. We just make the
implementation empty because we already handle mouse hide in the MacVim
process using NSCursor instead, and don't need Vim's manual handling of
it.
Also, refactor test_macvim.vim a little.
Problem: Highlight for popupmenu kind and extra cannot be set.
Solution: Add PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel
highlight groups and use them. (Gianmaria Bajo, closes#12114)
The Chinese alignment was slightly wrong when `columns` is even
numbered. Add an additional space to make sure it will line up right.
Also, for Spanish, just fix up the text to fit how the other intro help
texts look.
Also, don't hide the `:help version9` prompt in intro. For some reason
MacVim hides that prompt and shows the `:help macvim` prompt instead
which makes no sense. Just show both.
Fix#1380
Problem: "clear" macros are not always used.
Solution: Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more
places. (Yegappan Lakshmanan, closes#12104)
Problem: FOR_ALL_ macros are defined in an unexpected file.
Solution: Move FOR_ALL_ macros to macros.h. Add FOR_ALL_HASHTAB_ITEMS.
(Yegappan Lakshmanan, closes#12109)
The recent upstream Vim merge (v9.0.1365) contained a lot of refactoring
in the option setting code. Handling option setting was now done via a
standardized callback, with a struct `optset_T`. In resolving the
upstream merge conflicts, `did_set_fullscreen` was erroneously using the
wrong value from the union (should be using boolean instead of number)
which leads to it occasionally giving unpredictable results. Fix the
bug.
Note that the bug seems a little unpredictable since it depends on
compiler specifics. The only way it was known to trigger was by `set
diff` followed by `set fullscreen`.
Fix#1378