Fix :hardcopy not working in macOS 13 Ventura by ychin · Pull Request #1390 · macvim-dev/macvim

eirnym

@ychin

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 macvim-dev#1347

@ychin ychin deleted the fix-macos-13-ventura-printing branch

March 18, 2023 11:36

tono pushed a commit to tono/macvim that referenced this pull request

Mar 21, 2023
…inting

Fix :hardcopy not working in macOS 13 Ventura

This was referenced

Apr 6, 2023

ychin added a commit that referenced this pull request

Jul 10, 2023
Updated to Vim 9.0.1677

Announcements
====================

Website
--------------------

The official website for MacVim is now https://macvim.org. Previously it just
forwarded to https://macvim-dev.github.io/macvim/. You can also read the MacVim
documentation at https://macvim.org/docs/gui_mac.txt.html. #1385

Features
====================

Updater / What's New page
--------------------

There is now a "What's New" page that will automatically be shown whenever
MacVim detected that it has been updated to a new version (can be disabled in
Settings). The page will also include all the release notes if you have
updated across multiple versions. This feature is useful for users who turned
on "Automatically install updates" or installs MacVim through other methods
like Homebrew but would still like to see the release notes when a new version
comes out. You can also access it through the Help menu. #1414

MacVim should now report its version in a much more consistent manner in the
"About MacVim" page and when the updater reports there is a new version. It
should look something like "r176 (Vim 9.0.1276)" where "r176" is the MacVim
release number and the 9.0.1276 is the bundled Vim version. #1293 #1393

Sparkle (updater for MacVim) is now updated to 2.4.2. #1416

New Vim features
--------------------

- New bundled colorschemes: wildcharm/retrobox/sorbet/zaibatsu (vim/vim#12163)
- File encryption now has a new `cryptmethod`: `xchacha20v2`, which is designed
  to be more forward compatible with future Vim versions than `xchacha20`.
  (v9.0.1481)
- `switchbuf` works for more commands. (v9.0.1546)
- Statusline now supports multiple alignment "%=" items. (v9.0.1300)
- New UTF-16 utility functions (`strutf16len` and `utf16idx`) (v9.0.1485)
- Misc 'smoothscroll' bugs fixes

General
====================

* Removed non-Unicode localization files, which helps cut down on app size. #1397
* Miscellaneous documentation fixes. #1415 #1375 #1386 #1363 (by @dkav)
* The disk image for MacVim (MacVim.dmg) is now in APFS and uses better
  compression for better efficiency. #1409

Fixes
====================

* Printing a file in macOS 13 Ventura (using `:hardcopy` or File→Print) should
  work again. #1390
* Fixed a broken symlink to XPCServices in the Sparkle framework. #1367
* Fixed MacVim to not throw (safe) Objective C exceptions when quitting. #1371
* Fixed welcome message not being aligned properly in Simplified Chinese and
  show the Vim 9 prompt. #1381
* Removed some unnecessary test files in the runtime folders which were
  included erroneously. #1418

Scripting
====================

- Scripting languages versions:
    - Python is now built against 3.11, up from 3.10.

Compatibility
====================

Requires macOS 10.9 or above. (10.9 - 10.12 requires downloading a
separate legacy build)

Script interfaces have compatibility with these versions:

- Lua 5.4
- Perl 5.30
- Python2 2.7
- Python3 3.11
- Ruby 3.2

ychin added a commit to ychin/macvim that referenced this pull request

Dec 9, 2023
Fix broken printing in macOS 14. It was broken because the OS stopped
supporting Postscript and removed the `pstopdf` tool. Fix the printexpr
to detect when `pstopdf` doesn't exist and try to use `ps2pdf` instead.
This is a third-party tool and it's not guaranteed to exist. If it
doesn't exist, give an error prompt for the user to suggest installing
Ghostscript first. Settled on this solution as printing is a relatively
niche feature and it's not worth spending too much effort fixing this.

Related:
- macvim-dev#1390 / macvim-dev#1347: macOS 13 Ventura broke printing by removing Preview
  support for PostScript. The fix was to use `pstopdf`, which eventually
  got removed in macOS 14.

@ychin ychin mentioned this pull request

Dec 9, 2023