Mercurial > mxe-octave
view src/readline-2-history.patch @ 5913:fa2337ae8097 release
README.html: Add some general comments wrt Octave on Windows (bug #61207).
* installer-files/README.html: Add reference to wiki article "Octave for
Microsoft Windows".
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sun, 03 Oct 2021 13:51:43 +0200 |
parents | d0a95d2c44bf |
children |
line wrap: on
line source
diff -ur readline-8.0.eventhook/histfile.c readline-8.0/histfile.c --- readline-8.0.eventhook/histfile.c 2019-04-03 10:21:42.916563353 -0400 +++ readline-8.0/histfile.c 2019-04-03 16:16:04.605404093 -0400 @@ -107,6 +107,11 @@ # define PATH_MAX 1024 /* default */ #endif +#if defined(_WIN32) + #define WIN32_LEAN_AND_MEAN + #include <windows.h> +#endif + extern void _hs_append_history_line PARAMS((int, const char *)); /* history file version; currently unused */ @@ -139,6 +144,19 @@ static int histfile_backup PARAMS((const char *, const char *)); static int histfile_restore PARAMS((const char *, const char *)); +static int +history_rename(const char *from, const char *to) +{ +#if defined(_WIN32) + if (!MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING)) { + return -1; + } + return 0; +#else + return rename(from, to); +#endif +} + /* Return the string that should be used in the place of this filename. This only matters when you don't specify the filename to read_history (), or write_history (). */ @@ -448,10 +466,10 @@ if ((n = readlink (filename, linkbuf, sizeof (linkbuf) - 1)) > 0) { linkbuf[n] = '\0'; - return (rename (linkbuf, back)); + return (history_rename (linkbuf, back)); } #endif - return (rename (filename, back)); + return (history_rename (filename, back)); } /* Restore ORIG from BACKUP handling case where ORIG is a symlink @@ -467,10 +485,10 @@ if ((n = readlink (orig, linkbuf, sizeof (linkbuf) - 1)) > 0) { linkbuf[n] = '\0'; - return (rename (backup, linkbuf)); + return (history_rename (backup, linkbuf)); } #endif - return (rename (backup, orig)); + return (history_rename (backup, orig)); } /* Truncate the history file FNAME, leaving only LINES trailing lines.