Merge pull request #2605 from RaiKoHoff/Dev_NewFeatures

DateTime and Timestamp handling revised
This commit is contained in:
Pairi Daiza 2020-08-04 15:32:33 +02:00 committed by GitHub
commit 78bf93bf9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 175 additions and 125 deletions

View File

@ -6,8 +6,10 @@ SettingsVersion=4
[Settings2]
;IMEInteraction=0
;AutoReloadTimeout=2000
;DateTimeFormat= (-> $Date: <Locale dependent short format> $)
;TimeStampRegEx= (-> \$Date:[^\$]+\$)
;DateTimeFormat= (-> <Locale dependent short format>)
;DateTimeLongFormat= (-> <Locale dependent long format>)
;TimeStampRegEx= (-> \$Date:[^\$]+\$ ) (Find-Pattern to Update Stamps)
;TimeStampFormat= (-> $Date: %s $) {Print format should fit to TimeStampRegEx}
;DefaultDirectory=
;DefaultExtension=txt
;DefaultWindowPosition=

View File

@ -379,44 +379,45 @@
#define CMD_LEXDEFAULT 20019
#define CMD_LEXHTML 20020
#define CMD_LEXXML 20021
#define CMD_TIMESTAMPS 20022
#define CMD_WEBACTION1 20023
#define CMD_WEBACTION2 20024
#define CMD_FINDNEXTSEL 20025
#define CMD_FINDPREVSEL 20026
#define CMD_INCLINELIMIT 20027
#define CMD_DECLINELIMIT 20028
#define CMD_STRINGIFY 20029
#define CMD_STRINGIFY2 20030
#define CMD_EMBRACE 20031
#define CMD_EMBRACE2 20032
#define CMD_EMBRACE3 20033
#define CMD_EMBRACE4 20034
#define CMD_INCREASENUM 20035
#define CMD_DECREASENUM 20036
#define CMD_TOGGLETITLE 20037
#define CMD_JUMP2SELSTART 20038
#define CMD_JUMP2SELEND 20039
#define CMD_COPYPATHNAME 20040
#define CMD_COPYWINPOS 20041
#define CMD_INITIALWINPOS 20042
#define CMD_OPENINIFILE 20043
#define CMD_INSERTNEWLINE 20044
#define CMD_OPEN_HYPERLINK 20045
#define CMD_FOLDJUMPUP 20046
#define CMD_FOLDJUMPDOWN 20047
#define CMD_FOLDCOLLAPSE 20048
#define CMD_FOLDEXPAND 20049
#define CMD_TAB 20050
#define CMD_BACKTAB 20051
#define CMD_VK_INSERT 20052
#define CMD_FULLSCRWINPOS 20053
#define CMD_DEFAULTWINPOS 20054
#define CMD_SAVEASDEFWINPOS 20055
#define CMD_CLEARSAVEDWINPOS 20056
#define CMD_CHECK_INDENTATION 20057
#define CMD_ARROW_UP 20058
#define CMD_ARROW_DOWN 20059
#define CMD_INSERT_TIMESTAMP 20022
#define CMD_UPDATE_TIMESTAMPS 20023
#define CMD_WEBACTION1 20024
#define CMD_WEBACTION2 20025
#define CMD_FINDNEXTSEL 20026
#define CMD_FINDPREVSEL 20027
#define CMD_INCLINELIMIT 20028
#define CMD_DECLINELIMIT 20029
#define CMD_STRINGIFY 20030
#define CMD_STRINGIFY2 20031
#define CMD_EMBRACE 20032
#define CMD_EMBRACE2 20033
#define CMD_EMBRACE3 20034
#define CMD_EMBRACE4 20035
#define CMD_INCREASENUM 20036
#define CMD_DECREASENUM 20037
#define CMD_TOGGLETITLE 20038
#define CMD_JUMP2SELSTART 20039
#define CMD_JUMP2SELEND 20040
#define CMD_COPYPATHNAME 20041
#define CMD_COPYWINPOS 20042
#define CMD_INITIALWINPOS 20043
#define CMD_OPENINIFILE 20044
#define CMD_INSERTNEWLINE 20045
#define CMD_OPEN_HYPERLINK 20046
#define CMD_FOLDJUMPUP 20047
#define CMD_FOLDJUMPDOWN 20048
#define CMD_FOLDCOLLAPSE 20049
#define CMD_FOLDEXPAND 20050
#define CMD_TAB 20051
#define CMD_BACKTAB 20052
#define CMD_VK_INSERT 20053
#define CMD_FULLSCRWINPOS 20054
#define CMD_DEFAULTWINPOS 20055
#define CMD_SAVEASDEFWINPOS 20056
#define CMD_CLEARSAVEDWINPOS 20057
#define CMD_CHECK_INDENTATION 20058
#define CMD_ARROW_UP 20059
#define CMD_ARROW_DOWN 20060
#define IDS_MUI_MENU_LANGUAGE 34500
#define IDS_MUI_LANG_EN_US 34501

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Tyd/Datum (Kort Form)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Tyd/Datum (&Lang Form)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Opdateer Tydstempel\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Opdateer Tydstempel\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Lyn Kommentaar (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Stroom Kommentaar\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Час/дата (кароткая форма)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Час/&дата (доўгая форма)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Аднавіць меткі часу\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Аднавіць меткі часу\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Каментарыі (пераключыць)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Блокавы каментарый\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,8 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Zeit/Datum (Kurzform)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Zeit/Datum (&Langform)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Aktualisiere Zeitstempel\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Aktueller Zeitstempel", CMD_INSERT_TIMESTAMP
MENUITEM "&Aktualisiere Zeitstempel\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Einzeilenkommentar (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Mehrzeilenkommentar\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Time/Date (Short Form)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Time/Date (&Long Form)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Update Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Update Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Line Comment (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Stream Comment\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,8 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Time/Date (Short Form)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Time/Date (&Long Form)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Update Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Current Timestamp", CMD_INSERT_TIMESTAMP
MENUITEM "&Update Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Line Comment (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Stream Comment\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Hora/Fecha (formato corto)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Hora/Fecha (&formato largo)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "Actualización &Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "Actualización &Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Comentario de línea (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "Comentario &multilíneas\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Hora/Fecha (formato corto)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Hora/Fecha (&formato largo)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "Actualización &Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "Actualización &Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Comentario de línea (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "Comentario &multilíneas\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Heure/Date (format court)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Heure/Date (format &long)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Mise à jour Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Mise à jour Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Ligne de commentaire (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "Commentaire &multilignes\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Time/Date (Short Form)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Time/Date (&Long Form)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Update Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Update Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Line Comment (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Stream Comment\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Dátum/Idő (rövid)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Dátum/Idő (&hosszú)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "Időbélye&gek frissítése\tShift+F5", CMD_TIMESTAMPS
MENUITEM "Időbélye&gek frissítése\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Sor megjegyzés (váltás)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Blokk megjegyzés\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Time/Date (Short Form)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Time/Date (&Long Form)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Update Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Update Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Line Comment (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Stream Comment\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Ora/Data (formato &breve)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Ora/Data (formato &lungo)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Aggiorna Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Aggiorna Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Commenta riga (attiva/disattiva)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Commento multi-riga\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "日付と時刻(/)(&T)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "日付と時刻(年月日)(&L)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "日付と時刻の更新(&U)\tShift+F5", CMD_TIMESTAMPS
MENUITEM "日付と時刻の更新(&U)\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "行コメント(切替)(&L)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "ブロックコメント(&S)\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "날짜/시간(짧은 형식)(&S)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "날짜/시간(긴 형식)(&L)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "타임 스탬프 업데이트(&T)\tShift+F5", CMD_TIMESTAMPS
MENUITEM "타임 스탬프 업데이트(&T)\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "줄 주석 (전환)(&T)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "주석 기호 삽입(&C)\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Tijd/Datum (Korte vorm)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Tijd/Datum (&Lange vorm)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Tijdstempels bijwerken\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Tijdstempels bijwerken\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Lijn commentaar (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Multilijnen commentaar\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Godzinę/Datę (krótki format)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Godzinę/Datę (&długi format)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Aktualizacja znacznika czasu\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Aktualizacja znacznika czasu\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Komentarz liniowy (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Komentarz strumieniowy\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Data/Hora (Formato Curto)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Data/Hora (Formato &Longo)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Atualizar Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Atualizar Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "Comentário de &Linha (Alternar)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "Comentário de &Bloco\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Hora/Da&ta (abreviada)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Hora/Data (por extenso)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "Act&ualizar data/hora\tShift+F5", CMD_TIMESTAMPS
MENUITEM "Act&ualizar data/hora\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Linha de comentário (Alternar)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "Vária&s linhas de comentário\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Время/дата (короткая форма)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Время/&дата (длинная форма)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Обновить метки времени\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Обновить метки времени\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Комментарий (вкл./выкл.)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Блочный комментарий\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Čas/Dátum (&krátky)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Čas/Dátum (&dlhý)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Aktualizovať časové značky\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Aktualizovať časové značky\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Riadkový komentár (zap./vyp.)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "Pr&enos komentára\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Tid och datum (kort)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Tid och datum (lång)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "Uppdatera tidsstämplar\tShift+F5", CMD_TIMESTAMPS
MENUITEM "Uppdatera tidsstämplar\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "Linjekommentar (växla)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "Strömkommentar\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Time/Date (Short Form)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Time/Date (&Long Form)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Update Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Update Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Line Comment (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Stream Comment\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Time/Date (Short Form)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "Time/Date (&Long Form)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "&Update Timestamps\tShift+F5", CMD_TIMESTAMPS
MENUITEM "&Update Timestamps\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "&Line Comment (Toggle)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "&Stream Comment\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "日期和时间(短格式)(&T)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "日期和时间(长格式)(&L)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "更新时间戳(&U)\tShift+F5", CMD_TIMESTAMPS
MENUITEM "更新时间戳(&U)\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "切换行注释(&L)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "添加块注释(&S)\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -260,7 +260,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "日期和時間(短格式)(&T)\tCtrl+F5", IDM_EDIT_INSERT_SHORTDATE
MENUITEM "日期和時間(長格式)(&L)\tCtrl+Shift+F5", IDM_EDIT_INSERT_LONGDATE
MENUITEM "更新時間戳(&U)\tShift+F5", CMD_TIMESTAMPS
MENUITEM "更新時間戳(&U)\tShift+F5", CMD_UPDATE_TIMESTAMPS
MENUITEM SEPARATOR
MENUITEM "切換行註釋(&L)\tCtrl+Q", IDM_EDIT_LINECOMMENT
MENUITEM "新增塊註釋(&S)\tCtrl+Shift+Q", IDM_EDIT_STREAMCOMMENT

View File

@ -1265,14 +1265,22 @@ void LoadSettings()
Settings2.LineCommentPostfixStrg, COUNTOF(Settings2.LineCommentPostfixStrg));
StrTrimW(Settings2.LineCommentPostfixStrg, L"\"'");
Defaults2.DateTimeFormat[0] = L'\0';
Defaults2.DateTimeFormat[0] = L'\0'; // empty to get <locale date-time format>
IniSectionGetString(IniSecSettings2, L"DateTimeFormat", Defaults2.DateTimeFormat, Settings2.DateTimeFormat, COUNTOF(Settings2.DateTimeFormat));
StrTrim(Settings2.DateTimeFormat, L"\"'");
Defaults2.DateTimeLongFormat[0] = L'\0'; // empty to get <locale date-time format>
IniSectionGetString(IniSecSettings2, L"DateTimeLongFormat", Defaults2.DateTimeLongFormat, Settings2.DateTimeLongFormat, COUNTOF(Settings2.DateTimeLongFormat));
StrTrim(Settings2.DateTimeLongFormat, L"\"'");
StringCchCopyW(Defaults2.TimeStampRegEx, COUNTOF(Defaults2.TimeStampRegEx), L"\\$Date:[^\\$]+\\$");
IniSectionGetString(IniSecSettings2, L"TimeStampRegEx", Defaults2.TimeStampRegEx, Settings2.TimeStampRegEx, COUNTOF(Settings2.TimeStampRegEx));
StrTrim(Settings2.TimeStampRegEx, L"\"'");
StringCchCopyW(Defaults2.TimeStampFormat, COUNTOF(Defaults2.TimeStampFormat), L"$Date: %s $");
IniSectionGetString(IniSecSettings2, L"TimeStampFormat", Defaults2.TimeStampFormat, Settings2.TimeStampFormat, COUNTOF(Settings2.TimeStampFormat));
StrTrim(Settings2.TimeStampFormat, L"\"'");
StringCchCopyW(Defaults2.WebTemplate1, COUNTOF(Defaults2.WebTemplate1), L"https://google.com/search?q=%s");
IniSectionGetString(IniSecSettings2, L"WebTemplate1", Defaults2.WebTemplate1, Settings2.WebTemplate1, COUNTOF(Settings2.WebTemplate1));

View File

@ -209,6 +209,9 @@ DWORD MsgBoxLastError(LPCWSTR lpszMessage, DWORD dwErrID)
DWORD DbgMsgBoxLastError(LPCWSTR lpszMessage, DWORD dwErrID)
{
#ifdef _DEBUG
if (!dwErrID) {
dwErrID = GetLastError();
}
return MsgBoxLastError(lpszMessage, dwErrID);
#else
UNUSED(lpszMessage);

View File

@ -2267,7 +2267,6 @@ static BOOL CALLBACK _GetDateFormatProc(LPWSTR lpDateFormatString, CALID Calenda
StringCchCopy(pwchFind, SMALL_BUFFER, lpDateFormatString);
return FALSE; // found
}
++count;
return TRUE;
}
@ -2280,14 +2279,16 @@ static BOOL CALLBACK _GetDateFormatProc(LPWSTR lpDateFormatString, CALID Calenda
//
static void _GetCurrentDateTimeString(LPWSTR pwchDateTimeStrg, size_t cchBufLen, bool bShortFmt)
{
WCHAR wchTemplate[SMALL_BUFFER] = { L'\0' };
StringCchCopyW(wchTemplate, COUNTOF(wchTemplate), Settings2.DateTimeFormat);
SYSTEMTIME st;
GetLocalTime(&st);
if (StrIsNotEmpty(wchTemplate))
const WCHAR* const confFormat = bShortFmt ? Settings2.DateTimeFormat : Settings2.DateTimeLongFormat;
if (StrIsNotEmpty(pwchDateTimeStrg) || StrIsNotEmpty(confFormat))
{
WCHAR wchTemplate[MIDSZ_BUFFER] = {L'\0'};
StringCchCopyW(wchTemplate, COUNTOF(wchTemplate), StrIsNotEmpty(pwchDateTimeStrg) ? pwchDateTimeStrg : confFormat);
struct tm sst;
sst.tm_isdst = -1;
sst.tm_sec = (int)st.wSecond;
@ -2298,11 +2299,15 @@ static void _GetCurrentDateTimeString(LPWSTR pwchDateTimeStrg, size_t cchBufLen,
sst.tm_year = (int)st.wYear - 1900;
sst.tm_wday = (int)st.wDayOfWeek;
mktime(&sst);
wcsftime(pwchDateTimeStrg, cchBufLen, wchTemplate, &sst);
size_t const cnt = wcsftime(pwchDateTimeStrg, cchBufLen, wchTemplate, &sst);
if (cnt == 0) {
StringCchCopy(pwchDateTimeStrg, cchBufLen, wchTemplate);
}
}
else {
else // use configured DateTime Format
{
WCHAR wchFormat[SMALL_BUFFER] = { L'\0' };
_DateFmtIdx = 0; // (bShortFmt ? Settings2.DateFormatShort : Settings2.DateFormatLong);
_DateFmtIdx = 0;
EnumDateFormatsExEx(_GetDateFormatProc, Settings2.PreferredLanguageLocaleName, (bShortFmt ? DATE_SHORTDATE : DATE_LONGDATE), (LPARAM)wchFormat);
WCHAR wchDate[SMALL_BUFFER] = { L'\0' };
@ -2315,30 +2320,45 @@ static void _GetCurrentDateTimeString(LPWSTR pwchDateTimeStrg, size_t cchBufLen,
}
}
static void _GetCurrentTimeStamp(LPWSTR pwchDateTimeStrg, size_t cchBufLen, bool bShortFmt)
{
if (StrIsEmpty(pwchDateTimeStrg)) {
// '%s' is not allowd pattern of wcsftime(), so it must be string format
PCWSTR p = StrStr(Settings2.TimeStampFormat, L"%s");
if (p && !StrStr(p + 2, L"%s")) {
WCHAR wchDateTime[SMALL_BUFFER] = {L'\0'};
_GetCurrentDateTimeString(wchDateTime, COUNTOF(wchDateTime), bShortFmt);
StringCchPrintfW(pwchDateTimeStrg, cchBufLen, Settings2.TimeStampFormat, wchDateTime);
return;
}
// use configuration
StringCchCopyW(pwchDateTimeStrg, cchBufLen, Settings2.TimeStampFormat);
}
_GetCurrentDateTimeString(pwchDateTimeStrg, cchBufLen, bShortFmt);
}
//=============================================================================
//
// EditInsertTimestamps()
// EditInsertDateTimeStrg()
//
void EditInsertTimestamps(bool bShortFmt)
void EditInsertDateTimeStrg(bool bShortFmt, bool bTimestampFmt)
{
//~~~_BEGIN_UNDO_ACTION_;
WCHAR wchDateTime[SMALL_BUFFER] = { L'\0' };
StringCchCopyW(wchDateTime, COUNTOF(wchDateTime), Settings2.DateTimeFormat);
_GetCurrentDateTimeString(wchDateTime, COUNTOF(wchDateTime), bShortFmt);
char chTimeStamp[MIDSZ_BUFFER] = {'\0'};
char chTimeStamp[MIDSZ_BUFFER] = { '\0' };
if (StrIsEmpty(Settings2.DateTimeFormat)) {
WCHAR wchTS[MIDSZ_BUFFER] = { L'\0' };
StringCchPrintfW(wchTS, COUNTOF(wchTS), L"$Date: %s $", wchDateTime);
WideCharToMultiByteEx(Encoding_SciCP, 0, wchTS, -1, chTimeStamp, COUNTOF(chTimeStamp), NULL, NULL);
if (bTimestampFmt) {
_GetCurrentTimeStamp(wchDateTime, COUNTOF(wchDateTime), bShortFmt);
}
else {
WideCharToMultiByteEx(Encoding_SciCP, 0, wchDateTime, -1, chTimeStamp, COUNTOF(chTimeStamp), NULL, NULL);
StringCchCopyW(wchDateTime, COUNTOF(wchDateTime), bShortFmt ? Settings2.DateTimeFormat : Settings2.DateTimeLongFormat);
_GetCurrentDateTimeString(wchDateTime, COUNTOF(wchDateTime), bShortFmt);
}
WideCharToMultiByte(Encoding_SciCP, 0, wchDateTime, -1, chTimeStamp, COUNTOF(chTimeStamp), NULL, NULL);
EditReplaceSelection(chTimeStamp, false);
//~~~_END_UNDO_ACTION_;
@ -2351,31 +2371,14 @@ void EditInsertTimestamps(bool bShortFmt)
//
void EditUpdateTimestamps()
{
WCHAR wchFindTimeStamp[SMALL_BUFFER] = { L'\0' };
if (StrIsNotEmpty(Settings2.TimeStampRegEx)) {
StringCchCopy(wchFindTimeStamp, COUNTOF(wchFindTimeStamp), Settings2.TimeStampRegEx);
}
else {
StringCchCopy(wchFindTimeStamp, COUNTOF(wchFindTimeStamp), Defaults2.TimeStampRegEx);
}
WCHAR wchDateTime[SMALL_BUFFER] = { L'\0' };
StringCchCopyW(wchDateTime, COUNTOF(wchDateTime), Settings2.DateTimeFormat);
_GetCurrentDateTimeString(wchDateTime, COUNTOF(wchDateTime), true);
WCHAR wchReplaceStrg[MIDSZ_BUFFER] = { L'\0' };
if (StrIsEmpty(Settings2.DateTimeFormat)) {
StringCchPrintfW(wchReplaceStrg, COUNTOF(wchReplaceStrg), L"$Date: %s $", wchDateTime);
}
else {
StringCchCopyW(wchReplaceStrg, COUNTOF(wchReplaceStrg), wchDateTime);
}
_GetCurrentTimeStamp(wchReplaceStrg, COUNTOF(wchReplaceStrg), true); // DateTimeFormat
EDITFINDREPLACE efrTS_L = INIT_EFR_DATA;
efrTS_L.hwnd = Globals.hwndEdit;
efrTS_L.fuFlags = (SCFIND_REGEXP | SCFIND_POSIX);
WideCharToMultiByteEx(Encoding_SciCP, 0, wchFindTimeStamp, -1, efrTS_L.szFind, COUNTOF(efrTS_L.szFind), NULL, NULL);
WideCharToMultiByteEx(Encoding_SciCP, 0, wchReplaceStrg, -1, efrTS_L.szReplace, COUNTOF(efrTS_L.szReplace), NULL, NULL);
WideCharToMultiByte(Encoding_SciCP, 0, Settings2.TimeStampRegEx, -1, efrTS_L.szFind, COUNTOF(efrTS_L.szFind), NULL, NULL);
WideCharToMultiByte(Encoding_SciCP, 0, wchReplaceStrg, -1, efrTS_L.szReplace, COUNTOF(efrTS_L.szReplace), NULL, NULL);
if (!SciCall_IsSelectionEmpty())
{
@ -2387,7 +2390,6 @@ void EditUpdateTimestamps()
}
//=============================================================================
//
// EditTabsToSpaces()

View File

@ -54,8 +54,8 @@ void EditHex2Char(HWND hwnd);
void EditFindMatchingBrace();
void EditSelectToMatchingBrace();
void EditModifyNumber(HWND hwnd, bool bIncrease);
void EditInsertDateTimeStrg(bool bShortFmt, bool bTimestampFmt);
void EditUpdateTimestamps();
void EditInsertTimestamps(bool bShortFmt);
void EditTabsToSpaces(int nTabWidth, bool bOnlyIndentingWS);
void EditSpacesToTabs(int nTabWidth, bool bOnlyIndentingWS);

View File

@ -16,6 +16,7 @@
#include "Helpers.h"
#include <crtdbg.h>
#include <commctrl.h>
#include <uxtheme.h>
#include <shlobj.h>
@ -756,13 +757,37 @@ static void _CleanUpResources(const HWND hwnd, bool bIsInitialized)
}
//=============================================================================
//
// InvalidParameterHandler()
//
void InvalidParameterHandler(const wchar_t* expression,
const wchar_t* function,
const wchar_t* file,
unsigned int line,
uintptr_t pReserved)
{
UNUSED(expression);
UNUSED(pReserved);
WCHAR msg[256];
StringCchPrintf(msg, COUNTOF(msg),
L"Invalid Parameter in function '%s()' - File:'%s' Line:%i !",
function, file, line);
DbgMsgBoxLastError(msg, ERROR_INVALID_PARAMETER);
}
//=============================================================================
//
// WinMain()
//
//
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nShowCmd)
{
_set_invalid_parameter_handler(InvalidParameterHandler);
_CrtSetReportMode(_CRT_ASSERT, 0); // Disable the message box for assertions.
_InitGlobals();
// Set global variable Globals.hInstance
@ -3370,7 +3395,8 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
EnableCmd(hmenu, IDM_EDIT_DELETELINERIGHT, !te && !ro);
EnableCmd(hmenu, CMD_CTRLBACK, !te && !ro);
EnableCmd(hmenu, CMD_CTRLDEL, !te && !ro);
EnableCmd(hmenu, CMD_TIMESTAMPS, !te && !ro);
EnableCmd(hmenu, CMD_INSERT_TIMESTAMP, !ro);
EnableCmd(hmenu, CMD_UPDATE_TIMESTAMPS, !te && !ro);
EnableCmd(hmenu, IDM_VIEW_FONT, !IsWindow(Globals.hwndDlgCustomizeSchemes));
EnableCmd(hmenu, IDM_VIEW_CURRENTSCHEME, !IsWindow(Globals.hwndDlgCustomizeSchemes));
@ -4490,7 +4516,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_EDIT_INSERT_SHORTDATE:
case IDM_EDIT_INSERT_LONGDATE:
EditInsertTimestamps((iLoWParam == IDM_EDIT_INSERT_SHORTDATE));
EditInsertDateTimeStrg((iLoWParam == IDM_EDIT_INSERT_SHORTDATE), false);
break;
@ -5881,7 +5907,11 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
// break;
case CMD_TIMESTAMPS:
case CMD_INSERT_TIMESTAMP:
EditInsertDateTimeStrg(true, true);
break;
case CMD_UPDATE_TIMESTAMPS:
EditUpdateTimestamps();
break;

View File

@ -321,7 +321,7 @@ BEGIN
VK_F5, IDM_FILE_REVERT, VIRTKEY, NOINVERT
VK_F5, IDM_EDIT_INSERT_SHORTDATE, VIRTKEY, CONTROL, NOINVERT
VK_F5, IDM_VIEW_CHANGENOTIFY, VIRTKEY, ALT, NOINVERT
VK_F5, CMD_TIMESTAMPS, VIRTKEY, SHIFT, NOINVERT
VK_F5, CMD_UPDATE_TIMESTAMPS, VIRTKEY, SHIFT, NOINVERT
VK_F5, IDM_EDIT_INSERT_LONGDATE, VIRTKEY, SHIFT, CONTROL, NOINVERT
VK_F6, IDM_FILE_SAVEAS, VIRTKEY, NOINVERT
VK_F6, IDM_FILE_SAVECOPY, VIRTKEY, CONTROL, NOINVERT

View File

@ -120,7 +120,7 @@
<LanguageStandard>stdcpp17</LanguageStandard>
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<ExceptionHandling>Sync</ExceptionHandling>
<ExceptionHandling>Async</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;imm32.lib;shlwapi.lib;uxtheme.lib;muiload.lib;scintilla.lib;%(AdditionalDependencies)</AdditionalDependencies>
@ -184,7 +184,7 @@
<LanguageStandard>stdcpp17</LanguageStandard>
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<ExceptionHandling>Sync</ExceptionHandling>
<ExceptionHandling>Async</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;imm32.lib;shlwapi.lib;uxtheme.lib;muiload.lib;scintilla.lib;%(AdditionalDependencies)</AdditionalDependencies>
@ -248,7 +248,7 @@
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<ExceptionHandling>Sync</ExceptionHandling>
<ExceptionHandling>Async</ExceptionHandling>
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>
@ -318,7 +318,7 @@
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<ExceptionHandling>Sync</ExceptionHandling>
<ExceptionHandling>Async</ExceptionHandling>
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>

View File

@ -352,7 +352,7 @@ typedef struct _globals_t
FR_STATES FindReplaceMatchFoundState;
WCHAR SelectedThemeName[128];
WCHAR SelectedThemeName[SMALL_BUFFER];
WCHAR WorkingDirectory[MAX_PATH];
WCHAR IniFile[MAX_PATH];
WCHAR IniFileDefault[MAX_PATH];
@ -537,25 +537,27 @@ typedef struct _settings2_t
float LocaleAnsiCodePageAnalysisBonus;
WCHAR PreferredLanguageLocaleName[LOCALE_NAME_MAX_LENGTH + 1];
WCHAR DefaultExtension[64];
WCHAR DefaultExtension[MINI_BUFFER];
WCHAR DefaultDirectory[MAX_PATH];
WCHAR FileDlgFilters[XHUGE_BUFFER];
WCHAR FileBrowserPath[MAX_PATH];
WCHAR GrepWinPath[MAX_PATH];
WCHAR AppUserModelID[128];
WCHAR AutoCompleteFillUpChars[64];
WCHAR LineCommentPostfixStrg[64];
WCHAR AppUserModelID[SMALL_BUFFER];
WCHAR AutoCompleteFillUpChars[MINI_BUFFER];
WCHAR LineCommentPostfixStrg[MINI_BUFFER];
WCHAR ExtendedWhiteSpaceChars[ANSI_CHAR_BUFFER + 1];
WCHAR AutoCompleteWordCharSet[ANSI_CHAR_BUFFER + 1];
WCHAR DateTimeFormat[128];
WCHAR TimeStampRegEx[256];
WCHAR DateTimeFormat[SMALL_BUFFER];
WCHAR DateTimeLongFormat[SMALL_BUFFER];
WCHAR TimeStampRegEx[SMALL_BUFFER];
WCHAR TimeStampFormat[SMALL_BUFFER];
WCHAR WebTemplate1[MAX_PATH];
WCHAR WebTemplate2[MAX_PATH];
WCHAR AdministrationTool[MAX_PATH];
WCHAR DefaultWindowPosition[64];
WCHAR DefaultWindowPosition[MINI_BUFFER];
} SETTINGS2_T, *PSETTINGS2_T;
@ -635,7 +637,7 @@ typedef struct _editfileiostatus
typedef struct _themeFiles
{
UINT rid;
WCHAR szName[80];
WCHAR szName[MINI_BUFFER];
WCHAR szFilePath[MAX_PATH];
} THEMEFILES, * PTHEMEFILES;