From 46c85439c966d7ed39fb3d711d4d6c61ac964647 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 26 Feb 2016 11:17:46 +0100 Subject: [PATCH 1/4] patch 7.4.1422 Problem: Error when reading fails uses wrong errno. Keeping channel open after job stops results in test failing. Solution: Move the error up. Add ch_job_killed. --- src/channel.c | 26 +++++++++++++++----------- src/eval.c | 14 ++++++++++++-- src/structs.h | 2 ++ src/version.c | 2 ++ 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/channel.c b/src/channel.c index 4a2b20c442..03dbdc3017 100644 --- a/src/channel.c +++ b/src/channel.c @@ -307,11 +307,14 @@ add_channel(void) } /* - * Return TRUE if "channel" has a callback. + * Return TRUE if "channel" has a callback and the associated job wasn't + * killed. */ static int -channel_has_callback(channel_T *channel) +channel_still_useful(channel_T *channel) { + if (channel->ch_job_killed && channel->ch_job == NULL) + return FALSE; return channel->ch_callback != NULL #ifdef CHANNEL_PIPES || channel->ch_part[PART_OUT].ch_callback != NULL @@ -322,12 +325,13 @@ channel_has_callback(channel_T *channel) /* * Close a channel and free all its resources if there is no further action - * possible, there is no callback to be invoked. + * possible, there is no callback to be invoked or the associated job was + * killed. */ void channel_may_free(channel_T *channel) { - if (!channel_has_callback(channel)) + if (!channel_still_useful(channel)) channel_free(channel); } @@ -1774,6 +1778,12 @@ channel_read(channel_T *channel, int part, char *func) * -> channel_read() */ ch_errors(channel, "%s(): Cannot read", func); + if (len < 0) + { + ch_error(channel, "channel_read(): cannot read from channel"); + PERROR(_("E896: read from channel")); + } + msg = channel->ch_part[part].ch_mode == MODE_RAW || channel->ch_part[part].ch_mode == MODE_NL ? DETACH_MSG_RAW : DETACH_MSG_JSON; @@ -1785,12 +1795,6 @@ channel_read(channel_T *channel, int part, char *func) channel_close(channel, TRUE); if (channel->ch_nb_close_cb != NULL) (*channel->ch_nb_close_cb)(); - - if (len < 0) - { - ch_error(channel, "channel_read(): cannot read from channel"); - PERROR(_("E896: read from channel")); - } } #if defined(CH_HAS_GUI) && defined(FEAT_GUI_GTK) @@ -2174,7 +2178,7 @@ channel_parse_messages(void) while (channel != NULL) { - if (channel->ch_refcount == 0 && !channel_has_callback(channel)) + if (channel->ch_refcount == 0 && !channel_still_useful(channel)) { /* channel is no longer useful, free it */ channel_free(channel); diff --git a/src/eval.c b/src/eval.c index 0db6cfac53..f9e85178bf 100644 --- a/src/eval.c +++ b/src/eval.c @@ -7770,8 +7770,11 @@ job_free(job_T *job) # ifdef FEAT_CHANNEL if (job->jv_channel != NULL) { - /* The channel doesn't count as a references for the job, we need to - * NULL the reference when the job is freed. */ + /* The link from the channel to the job doesn't count as a reference, + * thus don't decrement the refcount of the job. The reference from + * the job to the channel does count the refrence, decrement it and + * NULL the reference. We don't set ch_job_killed, unreferencing the + * job doesn't mean it stops running. */ job->jv_channel->ch_job = NULL; channel_unref(job->jv_channel); } @@ -15161,7 +15164,14 @@ f_job_stop(typval_T *argvars UNUSED, typval_T *rettv UNUSED) if (mch_stop_job(job, arg) == FAIL) rettv->vval.v_number = 0; else + { rettv->vval.v_number = 1; + /* Assume that "hup" does not kill the job. */ + if (job->jv_channel != NULL && STRCMP(arg, "hup") != 0) + job->jv_channel->ch_job_killed = TRUE; + } + /* We don't try freeing the job, obviously the caller still has a + * reference to it. */ } } #endif diff --git a/src/structs.h b/src/structs.h index 5f70c732b6..c0339de81c 100644 --- a/src/structs.h +++ b/src/structs.h @@ -1373,6 +1373,8 @@ struct channel_S { job_T *ch_job; /* Job that uses this channel; this does not * count as a reference to avoid a circular * reference. */ + int ch_job_killed; /* TRUE when there was a job and it was killed + * or we know it died. */ int ch_refcount; /* reference count */ }; diff --git a/src/version.c b/src/version.c index 42200012a4..08c8c1a8ed 100644 --- a/src/version.c +++ b/src/version.c @@ -748,6 +748,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1422, /**/ 1421, /**/ From 4cafa6dc7f0728b018979aff0ca039908ecf2ae1 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 26 Feb 2016 11:52:39 +0100 Subject: [PATCH 2/4] patch 7.4.1423 Problem: Channel test fails on MS-Windows. Solution: Do not give an error message when reading fails, assume the other end exited. --- src/channel.c | 14 +++++--------- src/version.c | 2 ++ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/channel.c b/src/channel.c index 03dbdc3017..9f6cdc7ca6 100644 --- a/src/channel.c +++ b/src/channel.c @@ -1763,10 +1763,13 @@ channel_read(channel_T *channel, int part, char *func) break; /* did read everything that's available */ } - /* Reading a disconnection (readlen == 0), or an error. - * TODO: call error callback. */ + /* Reading a disconnection (readlen == 0), or an error. */ if (readlen <= 0) { + /* Do not give an error message, most likely the other end just + * exited. */ + ch_errors(channel, "%s(): Cannot read from channel", func); + /* Queue a "DETACH" netbeans message in the command queue in order to * terminate the netbeans session later. Do not end the session here * directly as we may be running in the context of a call to @@ -1777,13 +1780,6 @@ channel_read(channel_T *channel, int part, char *func) * -> gui event loop or select loop * -> channel_read() */ - ch_errors(channel, "%s(): Cannot read", func); - if (len < 0) - { - ch_error(channel, "channel_read(): cannot read from channel"); - PERROR(_("E896: read from channel")); - } - msg = channel->ch_part[part].ch_mode == MODE_RAW || channel->ch_part[part].ch_mode == MODE_NL ? DETACH_MSG_RAW : DETACH_MSG_JSON; diff --git a/src/version.c b/src/version.c index 08c8c1a8ed..5e246f9dd4 100644 --- a/src/version.c +++ b/src/version.c @@ -748,6 +748,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1423, /**/ 1422, /**/ From 0c0dac1fb134309462b263fd5347d9232bfe36ed Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 26 Feb 2016 15:56:42 +0100 Subject: [PATCH 3/4] patch 7.4.1424 Problem: Not using --not-a-term when running tests on MS-Windows. Solution: Use NO_PLUGIN. (Christian Brabandt) --- src/testdir/Make_dos.mak | 2 +- src/version.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak index bfd624c512..66cf12f2e1 100644 --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -114,4 +114,4 @@ bench_re_freeze.out: bench_re_freeze.vim newtests: $(NEW_TESTS) .vim.res: - $(VIMPROG) -u NONE -U NONE -S runtest.vim $*.vim + $(VIMPROG) -u NONE $(NO_PLUGIN) -S runtest.vim $*.vim diff --git a/src/version.c b/src/version.c index 5e246f9dd4..fe580e0448 100644 --- a/src/version.c +++ b/src/version.c @@ -748,6 +748,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1424, /**/ 1423, /**/ From 6e722e2f948bc51fcb92d98d6f2a089dac01e2bd Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 26 Feb 2016 19:58:58 +0100 Subject: [PATCH 4/4] patch 7.4.1425 Problem: There are still references to MS-DOS support. Solution: Remove most of the help txt and install instructions. (Ken Takata) --- Filelist | 1 - csdpmi4b.zip | Bin 41506 -> 0 bytes runtime/doc/os_msdos.txt | 273 +-------------------------------------- src/INSTALLpc.txt | 55 +------- src/version.c | 2 + 5 files changed, 10 insertions(+), 321 deletions(-) delete mode 100755 csdpmi4b.zip diff --git a/Filelist b/Filelist index 1134bbe4f6..4fa57b2525 100644 --- a/Filelist +++ b/Filelist @@ -694,7 +694,6 @@ EXTRA = \ src/tee/Makefile \ src/tee/Make_mvc.mak \ src/tee/tee.c \ - csdpmi4b.zip \ # generic language files LANG_GEN = \ diff --git a/csdpmi4b.zip b/csdpmi4b.zip deleted file mode 100755 index 211396fae186cfe39de7a9b8121925b6cad1a2a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41506 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 diff --git a/runtime/doc/os_msdos.txt b/runtime/doc/os_msdos.txt index bd996be0c3..662403ea07 100644 --- a/runtime/doc/os_msdos.txt +++ b/runtime/doc/os_msdos.txt @@ -1,276 +1,15 @@ -*os_msdos.txt* For Vim version 7.4. Last change: 2005 Mar 29 +*os_msdos.txt* For Vim version 7.4. Last change: 2016 Feb 26 VIM REFERENCE MANUAL by Bram Moolenaar *msdos* *ms-dos* *MSDOS* *MS-DOS* -This file contains the particularities for the MS-DOS version of Vim. +This file used to contain the particularities for the MS-DOS version of Vim. +MS-DOS support was removed in patch 7.4.1399. If you want to use it you will +need to get a version older than that. Note that the MS-DOS version doesn't +work, there is not enough memory. The DOS32 version (using DJGPP) might still +work on older systems. -1. Two versions for MS-DOS |msdos-versions| -2. Known problems |msdos-problems| -3. Long file names |msdos-longfname| -4. Termcap codes |msdos-termcap| -5. Shifted arrow keys |msdos-arrows| -6. Filename extensions |msdos-fname-extensions| -7. Memory usage and limitations |msdos-limitations| -8. Symbolically linked files |msdos-linked-files| -9. Copy/paste in a dos box |msdos-copy-paste| - -Additionally, there are a number of common Win32 and DOS items: -File locations |dos-locations| -Using backslashes |dos-backslash| -Standard mappings |dos-standard-mappings| -Screen output and colors |dos-colors| -File formats |dos-file-formats| -:cd command |dos-:cd| -Interrupting |dos-CTRL-Break| -Temp files |dos-temp-files| -Shell option default |dos-shell| - -For compiling Vim see src/INSTALL.pc. *msdos-compiling* - -============================================================================== -1. Two versions for MS-DOS *msdos-versions* - -There are two versions of Vim that can be used with MS-DOS machines: - - *dos16* -Dos16 version Can be used on any MS-DOS system, only uses up to 640 Kbyte of - memory. Also runs on OS/2, Windows 95, and NT. Excludes some - Vim-specific features (autocommands, syntax highlighting, - etc.). Recommended for use on pre-386 machines. - *dos32* -Dos32 version Requires 386 processor and a |DPMI| driver, uses all - available memory. Supports long file names and the Windows - clipboard, but NOT on Windows NT. Recommended for MS-DOS, - Windows 3.1 and Windows 95. - -There are also two versions that run under Windows: -Win32 version Requires Windows 95 or Windows NT, uses all available - memory, supports long file names, etc. Has some problems on - Windows 95. Recommended for Windows NT. See |os_win32.txt| -Win32 GUI Requirements like the Win32 version, but runs in its own - window, instead of a console. Has scrollbars, menu, etc. - Recommended for Windows 95 and Windows NT. See |gui-w32|. - -It is recommended to use the Dos32 or Win32 version. Although the Dos16 -version is able to edit very big files, it quickly runs out of memory when -making big changes. Disabling undo helps: ":set ul=-1". The screen updating -of the Dos16 version is the fastest of the three on DOS or Windows 95; on -Windows NT, the Win32 version is just as fast. - - *DPMI* -For the Dos32 version, you may need a DPMI driver when running in MS-DOS. If -you are running Windows or installed a clever memory manager, it will probably -work already. If you get the message "No DPMI", you need to install a DPMI -driver. Such a driver is included with the executable in CSDPMI4B.ZIP. Run -"cwsdpmi" just before starting Vim each time. Or you might want to include -"cwsdpmi -p" in your autoexec.bat to make it resident. The latest version of -"CSDPMI*.ZIP" can be obtained from: "ftp.neosoft.com:pub/users/s/sandmann". - - *minimal-features* -The 16 bit DOS version has been compiled with minimal features. Check the -|+feature-list| which ones are included (marked with a "T"). -You can include more features by editing feature.h and recompiling. - -============================================================================== -2. Known problems *msdos-problems* - -When using smartdrive (MS-DOS 6.x) with write-behind caching, it is possible -that Vim will try to create a swap file on a read-only file system (e.g. -write protected floppy). You will then be given the message > - A serious disk error has occurred .., Retry (r)? -There is nothing you can do but unprotect the floppy or switch off the -computer. Even CTRL-ALT-DEL will not get you out of this. This is really a -problem of smartdrive, not Vim. Smartdrive works fine otherwise. If this -bothers you, don't use the write-behind caching. - -Vim can't read swap files that have been opened already, unless the "share" -command has been used. If you see stray warnings for existing swap files, -include the "share" command in your config.sys or autoexec.bat (see your MSDOS -documentation). - -The Dos16 version can only have about 10 files open (in a window or hidden) at -one time. With more files you will get error messages when trying to read or -write a file, and for filter commands. Or Vim runs out of memory, and random -problems may result. - -The Dos32 version cannot have an unlimited number of files open at any one -time. The limit depends on the setting of FILES in your CONFIG.SYS. This -defaults to 15; if you need to edit a lot of files, you should increase this. -If you do not set FILES high enough, you can get strange errors, and shell -commands may cause a crash! - -The Dos32 version can work with long file names. When doing file name -completion, matches for the short file name will also be found. But this will -result in the corresponding long file name. For example, if you have the long -file name "this_is_a_test" with the short file name "this_i~1", the command -":e *1" will start editing "this_is_a_test". - -When using the Dos32 version and you run into problems with DPMI support, -check if there is a program in your config.sys that eats resources. One -program known to cause this problem is "netx", which says "NetWare v. 3.26 -Workstation shell". Replace it with version 3.32 to fix the problem. - -The Dos32 version will parse its arguments to handle quotation. This is good -to edit a file with spaces in its name, for example: > - vim "program files\accessories\ppp.scp" -A side effect is that single quotes are removed. Insert a backslash to avoid -that. For example, to edit the file "fi'le.txt": > - vim fi\'le.txt - -============================================================================== -3. Long file names *msdos-longfname* - -If the Dos32 version is run on Windows 95, it can use long file names. It -will work by default. If you want to disable this, use this setting: - set LFN=N -You can put this in your autoexec.bat file. - -Note: If you have installed DJGPP on your machine, you probably have a -"djgpp.env" file, which contains "LFN=n". You need to use "LFN=Y" to switch -on using long file names then. - -============================================================================== -4. Termcap codes *msdos-termcap* - -If you want to use another output method (e.g., when using a terminal on a COM -port), set the terminal name to "pcansi". You can change the termcap options -when needed (see |terminal-options|). Note that the -normal IBM ansi.sys does not support all the codes of the builtin pcansi -terminal. If you use ansi.sys, you will need to delete the termcap entries -t_al and t_dl with > - :set t_al= t_dl= -Otherwise, the screen will not be updated correctly. It is better to use -nansi.sys, nnansi.sys, or the like instead of ansi.sys. - -If you want to use Vim on a terminal connected to a COM: port, reset the -'bioskey' option. Otherwise the commands will be read from the PC keyboard. -CTRL-C and CTRL-P may not work correctly with 'bioskey' reset. - -============================================================================== -5. Shifted arrow keys *msdos-arrows* - -Use CTRL-arrow-left and CTRL-arrow-right instead of SHIFT-arrow-left and -SHIFT-arrow-right. The arrow-up and arrow-down cannot be used with SHIFT or -CTRL. - -============================================================================== -6. Filename extensions *msdos-fname-extensions* - -MS-DOS allows for only one file name extension. Therefore, when appending an -extension, the '.' in the original file name is replaced with a '_', the name -is truncated to 8 characters, and the new extension (e.g., ".swp") is -appended. Two examples: "test.c" becomes "test_c.bak", "thisisat.est" -becomes "thisisat.bak". To reduce these problems, the default for -'backupext' is "~" instead of ".bak". The backup file for "thisisat.est" -then becomes "thisisat.es~". The 'shortname' option is not available, -because it would always be set. - -============================================================================== -7. Memory usage and limitations *msdos-limitations* - -A swap file is used to store most of the text. You should be able to edit -very large files. However, memory is used for undo and other things. If you -delete a lot of text, you can still run out of memory in the Dos16 version. - -If Vim gives an "Out of memory" warning, you should stop editing. The result -of further editing actions is unpredictable. Setting 'undolevels' to 0 saves -some memory. Running the maze macros on a big maze is guaranteed to run out -of memory, because each change is remembered for undo. In this case set -'undolevels' to a negative number. This will switch off undo completely. - - *msdos-clipboard-limits* -In the Dos32 version, extended memory is used to avoid these problems. -However, if you are using the clipboard, you can still run into memory -limitations because the Windows clipboard can only communicate with Vim using -Dos memory. This means that the largest amount of text that can be sent to -or received from the Windows clipboard is limited by how much free Dos memory -is available on your system. - -You can usually maximize the amount of available Dos memory by adding the -following lines to Dos's "config.sys" file: > - - DOS=HIGH,UMB - DEVICE=C:\WINDOWS\himem.sys - DEVICE=C:\WINDOWS\emm386.exe RAM - -Modifying config.sys in this way will also help to make more memory available -for the Dos16 version, if you are using that. - -In the Dos16 version the line length is limited to about 32000 characters. -When reading a file the lines are automatically split. But editing a line -in such a way that it becomes too long may give unexpected results. - -============================================================================== -8. Symbolically linked files *msdos-linked-files* - -When using Vim to edit a symbolically linked file on a unix NFS file server, -you may run into problems. When writing the file, Vim does not "write -through" the symlink. Instead, it deletes the symbolic link and creates a new -file in its place. - -On Unix, Vim is prepared for links (symbolic or hard). A backup copy of the -original file is made and then the original file is overwritten. This assures -that all properties of the file remain the same. On non-Unix systems, the -original file is renamed and a new file is written. Only the protection bits -are set like the original file. However, this doesn't work properly when -working on an NFS-mounted file system where links and other things exist. The -only way to fix this in the current version is not making a backup file, by -":set nobackup nowritebackup" |'writebackup'| - -A similar problem occurs when mounting a Unix filesystem through Samba or a -similar system. When Vim creates a new file it will get the default user ID -for the mounted file system. This may be different from the original user ID. -To avoid this set the 'backupcopy' option to "yes". - -============================================================================== -9. Copy/paste in a dos box *msdos-copy-paste* - - *E450* *E451* *E452* *E453* *E454* -The 32 bit version can copy/paste from/to the Windows clipboard directly. Use -the "* register. Large amounts of text can be copied this way, but it must be -possible to allocate memory for it, see |msdos-clipboard-limits|. When moving -text from one Vim to another, the type of the selection -(characterwise/linewise/blockwise) is passed on. - -In other versions, the following can be used. - -(posted to comp.editors by John Velman ) - -How to copy/paste text from/to vim in a dos box: - -1) To get VIM to run in a window, instead of full screen, press alt+enter. - This toggles back and forth between full screen and a dos window. - NOTE: In Windows 95 you must have the property "Fast Pasting" unchecked! - In the properties dialog box for the MS-DOS window, go to "MS-DOS - Prompt/Misc/Fast pasting" and make sure that it is NOT checked. - To make this permanent, change the properties for - "\windows\system\conagent.exe" (from Philip Nelson, unverified). - -2) To paste something _into_ Vim, put Vim in insert mode. - -3) Put the text you want to paste on the windows clipboard. - -4) Click the control box in the upper left of the Vim window. (This looks - like a big minus sign.) If you don't want to use the mouse, you can get - this with alt+spacebar. -5) On the resulting dropdown menu choose "Edit". -6) On the child dropdown menu choose "Paste". - -To copy something from the Vim window to the clipboard, - -1) Select the control box to get the control drop down menu. -2) Select "Edit". -3) Select "Mark". -4) Using either the keys or the mouse, select the part of the Vim window that - you want to copy. To use the keys, use the arrow keys, and hold down shift - to extend the selection. -5) When you've completed your selection, press 'enter'. The selection - is now in the windows clipboard. By the way, this can be any - rectangular selection, for example columns 4-25 in rows 7-10. It can - include anything in the VIM window: the output of a :!dir, for - example. vim:tw=78:ts=8:ft=help:norl: diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt index 071ede44a2..31da97dc49 100644 --- a/src/INSTALLpc.txt +++ b/src/INSTALLpc.txt @@ -686,64 +686,13 @@ Or when using MinGW (as one line): 13. Windows 3.1x ================ -make -f Make_w16.mak 16 bit, Borland C++ 5.0 - -Warning: Be sure to use the right make.exe. It should be Borland make. - -You will almost certainly have to change the paths for libs and include files -in the Makefile. Look for "D:\BC5" and "ctl3dv2". You will get a number of -warnings which can be ignored ( _chmod, precompiled header files, and -"possibly incorrect assignment"). - -The makefile should also work for BC++ 4.0 and 4.5, but may need tweaking to -remove unsupported compiler & liker options. - -For making the Win32s version, you need Microsoft Visual C++ 4.1 OR EARLIER. -In MSVC 4.2 support for Win32s was dropped! Use this command: - nmake -f Make_mvc.mak GUI=yes +The Windows 3.1x support was removed in patch 7.4.1364. 14. MS-DOS ========== -Summary: -ren Make_bc3.mak Makefile; make 16 bit, Borland C++ and Turbo C++ -ren Make_tcc.mak Makefile; make 16 bit, Turbo C -make -f Make_djg.mak 32 bit, DJGPP 2.0 -make -f Make_bc5.mak 32 bit, Borland C++ 5.x (edit it to - define DOS) - -Warning: Be sure to use the right make.exe. Microsoft C make doesn't work; -Borland make only works with Make_bc3.mak, Make_bc5.mak and Make_tcc.mak; -DJGPP/GNU make must be used for Make_djg.mak. - -The Borland C++ compiler has been used to generate the MS-DOS executable; it -should work without problems. You will probably have to change the paths for -LIBPATH and INCLUDEPATH in the start of the Makefile. You will get two -warnings which can be ignored (one about _chmod and one about precompiled -header files). - -The "spawno" library by Ralf Brown was used in order to free memory when Vim -starts a shell or other external command. Only about 200 bytes are taken from -conventional memory. When recompiling get the spawno library from Simtel, -directory "msdos/c". It is called something like "spwno413.zip". Or follow -the instructions in the Makefile to remove the library. - -The Turbo C Makefile has not been tested much lately. It is included for those -that don't have C++. You may need to make a few changes to get it to work. - -DJGPP needs to be installed properly to compile Vim; you need a lot of things -before it works. When your setup is OK, Vim should compile with just one -warning (about an argument to signal()). - -Make_bc5.mak is for those that have Borland C++ 5.0 or later. At the top of -the file, there are some variables you can change to make either a 32-bit -Windows exe (GUI or console mode), or a 16-bit MS-DOS version. -NOTE: multi-byte support is broken in the Borland libraries, not everything -will work properly! Esp. handling multi-byte file names. - -If you get all kinds of strange error messages when compiling, try changing -the file format from "unix" to "dos". +The MS-DOS support was removed in patch 7.4.1399. 15. Installing after building from sources diff --git a/src/version.c b/src/version.c index fe580e0448..ee083adbf7 100644 --- a/src/version.c +++ b/src/version.c @@ -748,6 +748,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1425, /**/ 1424, /**/