+ add: option to preserve origin file modification time

This commit is contained in:
Rainer Kottenhoff 2019-08-27 11:53:21 +02:00
parent d57165efe8
commit 72e86e6825
8 changed files with 27 additions and 0 deletions

View File

@ -444,6 +444,7 @@
#define IDM_FILE_MANAGEFAV 40020
#define IDM_FILE_RECENT 40021
#define IDM_FILE_EXIT 40022
#define IDM_FILE_PRESERVE_FILEMODTIME 40023
#define IDM_ENCODING_ANSI 40100
#define IDM_ENCODING_UNICODE 40101

View File

@ -64,6 +64,8 @@ BEGIN
MENUITEM "&Kopie speichern...\tCtrl+F6", IDM_FILE_SAVECOPY
MENUITEM "&Nur lesend", IDM_FILE_READONLY
MENUITEM SEPARATOR
MENUITEM "Keine Anpassung des &Zeitstempels", IDM_FILE_PRESERVE_FILEMODTIME
MENUITEM SEPARATOR
MENUITEM "&Verschlüsselungs Passwort...", IDM_SETPASS
MENUITEM SEPARATOR
POPUP "&Starte"

View File

@ -64,6 +64,8 @@ BEGIN
MENUITEM "Save &Copy...\tCtrl+F6", IDM_FILE_SAVECOPY
MENUITEM "&Read Only", IDM_FILE_READONLY
MENUITEM SEPARATOR
MENUITEM "&Preserve File Modification Time", IDM_FILE_PRESERVE_FILEMODTIME
MENUITEM SEPARATOR
MENUITEM "Set Encr&yption Passphrase...", IDM_SETPASS
MENUITEM SEPARATOR
POPUP "&Launch"

View File

@ -64,6 +64,8 @@ BEGIN
MENUITEM "Save &Copy...\tCtrl+F6", IDM_FILE_SAVECOPY
MENUITEM "&Read Only", IDM_FILE_READONLY
MENUITEM SEPARATOR
MENUITEM "&Preserve File Modification Time", IDM_FILE_PRESERVE_FILEMODTIME
MENUITEM SEPARATOR
MENUITEM "Set Encr&yption Passphrase...", IDM_SETPASS
MENUITEM SEPARATOR
POPUP "&Launch"

View File

@ -913,6 +913,7 @@ void LoadSettings()
GET_INT_VALUE_FROM_INISECTION(Bidirectional, Defaults.Bidirectional, 0, 2); // set before
GET_BOOL_VALUE_FROM_INISECTION(MuteMessageBeep, false);
GET_BOOL_VALUE_FROM_INISECTION(SplitUndoTypingSeqOnLnBreak, false);
GET_BOOL_VALUE_FROM_INISECTION(PreserveOrigFileModifyTime, false);
///~Settings2.IMEInteraction = clampi(IniSectionGetInt(Settings_Section, L"IMEInteraction", Settings2.IMEInteraction), SC_IME_WINDOWED, SC_IME_INLINE);
@ -1383,6 +1384,7 @@ bool SaveSettings(bool bSaveSettingsNow)
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, Bidirectional);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, MuteMessageBeep);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SplitUndoTypingSeqOnLnBreak);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, PreserveOrigFileModifyTime);
///~IniSectionSetInt(Settings_Section, L"IMEInteraction", Settings2.IMEInteraction);

View File

@ -1356,6 +1356,14 @@ bool EditSaveFile(
if (hFile == INVALID_HANDLE_VALUE)
return false;
//FILETIME createTime;
//FILETIME laccessTime;
FILETIME modTime;
//if (!GetFileTime(hFile, &createTime, &laccessTime, &modTime)) {
if (!GetFileTime(hFile, NULL, NULL, &modTime)) {
return false;
}
// ensure consistent line endings
if (Settings.FixLineEndings) {
EditEnsureConsistentLineEndings(hwnd);
@ -1491,6 +1499,9 @@ bool EditSaveFile(
}
}
if (Settings.PreserveOrigFileModifyTime) {
SetFileTime(hFile, NULL, NULL, &modTime);
}
CloseHandle(hFile);
if (bWriteSuccess) {

View File

@ -3050,6 +3050,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu,IDM_FILE_READONLY,i);
CheckCmd(hmenu,IDM_FILE_READONLY,s_bFileReadOnly);
CheckCmd(hmenu,IDM_FILE_PRESERVE_FILEMODTIME, Settings.PreserveOrigFileModifyTime);
EnableCmd(hmenu,IDM_ENCODING_UNICODEREV,!ro);
EnableCmd(hmenu,IDM_ENCODING_UNICODE,!ro);
@ -5577,6 +5578,11 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
break;
case IDM_FILE_PRESERVE_FILEMODTIME:
Settings.PreserveOrigFileModifyTime = !Settings.PreserveOrigFileModifyTime;
break;
case IDM_VIEW_CHANGENOTIFY:
if (ChangeNotifyDlg(hwnd))
InstallFileWatching(Globals.CurrentFile);

View File

@ -431,6 +431,7 @@ typedef struct _settings_t
int CustomSchemesDlgPosY;
bool MuteMessageBeep;
bool SplitUndoTypingSeqOnLnBreak;
bool PreserveOrigFileModifyTime;
RECT PrintMargin;
EDITFINDREPLACE EFR_Data;