diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 5512fc6d8..4f504a29a 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -191,6 +191,7 @@ No native ARM64 grepWin build exists. The ARM64 build uses `grepWin-x64_portable - **File encoding rules** (must be respected when creating or editing these files): - `language\*\*.rc` — **UTF-8 without BOM**. Never write or save these files with a UTF-8 BOM. Use `Build\rc_to_utf8.cmd` to strip accidental BOMs. - **PowerShell pitfall**: `[System.Text.Encoding]::UTF8` writes **with** BOM. Always use `[System.Text.UTF8Encoding]::new($false)` when writing `.rc` files from PowerShell scripts. + - **Python/script pitfall**: `.rc` files use **CRLF** line endings. When writing or inserting lines from Python or other scripts, use `\r\n` — not bare `\n`. After bulk edits, normalize with: `content = content.replace('\r\n', '\n').replace('\n', '\r\n')` before writing. - `Build\Notepad3.ini`, `Build\minipath.ini` — **UTF-8 with BOM** (BOM = `EF BB BF`). These INI reference files must retain the BOM. - **String safety**: Uses `strsafe.h` throughout; deprecated string functions are disabled diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini index 3d951113e..4c01e6a1d 100644 --- a/Build/Notepad3.ini +++ b/Build/Notepad3.ini @@ -27,7 +27,10 @@ SettingsVersion=5 ;NoCGIGuess=0 ;NoCopyLineOnEmptySelection=0 ;NoCutLineOnEmptySelection=0 -;CopyMultiSelectionSeparator= ;(-> ) {use empty value for no separator} +;CopyMultiSelectionSeparator= ;(-> ) {separator between multi-selection copies; empty=no separator; supports escape sequences: \r\n=CRLF, \n=LF, \t=tab, \xHH=hex} +;PasteBoardSeparator= ;(-> ) {separator inserted verbatim between entries in pasteboard mode; empty=no separator; supports \r\n, \n, \t, \xHH; include newlines explicitly e.g. "\r\n---\r\n" for a dashed separator line} +;PasteBoardDebounceMs=200 ;(min: 0, max: 5000[msec]) {debounce interval for clipboard monitoring} +;PasteBoardAddTimestamp=0 ;(0/1) {prepend [HH:MM:SS] timestamp to each pasted entry in pasteboard mode} ;NoFadeHidden=0 ;NoFileVariables=0 ;NoHTMLGuess=0 diff --git a/CLAUDE.md b/CLAUDE.md index 6a484406b..fb5cde470 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -276,6 +276,7 @@ No native ARM64 grepWin build exists. The ARM64 build uses `grepWin-x64_portable - **File encoding rules** (must be respected when creating or editing these files): - `language\*\*.rc` — **UTF-8 without BOM**. Never write or save these files with a UTF-8 BOM. Use `Build\rc_to_utf8.cmd` to strip accidental BOMs. - **PowerShell pitfall**: `[System.Text.Encoding]::UTF8` writes **with** BOM. Always use `[System.Text.UTF8Encoding]::new($false)` when writing `.rc` files from PowerShell scripts. + - **Python/script pitfall**: `.rc` files use **CRLF** line endings. When writing or inserting lines from Python or other scripts, use `\r\n` — not bare `\n`. After bulk edits, normalize with: `content = content.replace('\r\n', '\n').replace('\n', '\r\n')` before writing. - `Build\Notepad3.ini`, `Build\minipath.ini` — **UTF-8 with BOM** (BOM = `EF BB BF`). These INI reference files must retain the BOM. - String safety via `strsafe.h` throughout; deprecated string functions are disabled diff --git a/Readme.md b/Readme.md index 1fbb61129..18c481175 100644 --- a/Readme.md +++ b/Readme.md @@ -35,6 +35,7 @@ Notepad3 is a free, open-source text editor with syntax highlighting for Windows - **Virtual space** rectangular selection (Alt+Drag) - **Accelerated word navigation** with configurable delimiters - **Insert GUIDs** directly into your document +- **Clipboard monitoring mode** (`/b` command-line switch) — automatically appends every clipboard change as a new entry at the end of the document; stop at any time via **Edit → Stop Clipboard Monitoring** without closing the editor ### Syntax Highlighting Over 55 languages supported, including: diff --git a/language/np3_af_za/menu_af_za.rc b/language/np3_af_za/menu_af_za.rc index f85feec77..1980d368b 100644 --- a/language/np3_af_za/menu_af_za.rc +++ b/language/np3_af_za/menu_af_za.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Wysig" BEGIN MENUITEM "Document &Read Only" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "O&ngedaan\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "Oo&rdoen\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Kopieer &Voeg\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Plak\tCtrl+V", IDM_EDIT_PASTE MENUITEM "&Uitruil\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Verwyder\tDel", IDM_EDIT_CLEAR - MENUITEM "Maak &Klipbord Skoon", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Kies &Alles\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Verwyder\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Maak &Klipbord Skoon", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "W&oorde" BEGIN diff --git a/language/np3_be_by/menu_be_by.rc b/language/np3_be_by/menu_be_by.rc index f73c32e99..37135ea7f 100644 --- a/language/np3_be_by/menu_be_by.rc +++ b/language/np3_be_by/menu_be_by.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Праўка" BEGIN MENUITEM "Дакумент толькі для &чытання" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "Ад&мена\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Паўтор\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Дадаць у канец буфера\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Уст&авіць\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Памяняць\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "В&ыдаліць\tDel", IDM_EDIT_CLEAR - MENUITEM "А&чысціць буфер абмену", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Вылучыць у&сё\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "В&ыдаліць\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "А&чысціць буфер абмену", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "Словы" BEGIN diff --git a/language/np3_de_de/menu_de_de.rc b/language/np3_de_de/menu_de_de.rc index 71db440c9..28032d581 100644 --- a/language/np3_de_de/menu_de_de.rc +++ b/language/np3_de_de/menu_de_de.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Bearbeiten" BEGIN MENUITEM "&Dokument Nur Lesen" IDM_VIEW_READONLY - MENUITEM "Zwischenablage &Überwachung abbrechen", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Rückgängig\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Wiederholen\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Kopiere ans &Ende\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Einfügen\tCtrl+V", IDM_EDIT_PASTE MENUITEM "&Auswahl <-> &Zwischenablage\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Löschen\tDel", IDM_EDIT_CLEAR - MENUITEM "&Lösche Zwischenablage", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Alles auswählen\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Löschen\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "&Lösche Zwischenablage", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Zwischenablage &Überwachung abbrechen", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "&Wörter" BEGIN diff --git a/language/np3_el_gr/menu_el_gr.rc b/language/np3_el_gr/menu_el_gr.rc index 7d7275bb7..14ef49cb8 100644 --- a/language/np3_el_gr/menu_el_gr.rc +++ b/language/np3_el_gr/menu_el_gr.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Επεξεργασία" BEGIN MENUITEM "Document &Read Only" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "Αναίρε&ση\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "Επανάλη&ψη ενέργειας\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Προσ&θήκη αντιγραφής\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Επ&ικόλληση\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Αν&τιμετάθεση\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Διαγραφή\tDel", IDM_EDIT_CLEAR - MENUITEM "&Απαλοιφή πρόχειρου", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Επιλ&ογή όλων\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Διαγραφή\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "&Απαλοιφή πρόχειρου", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "&Λέξεις" BEGIN diff --git a/language/np3_en_gb/menu_en_gb.rc b/language/np3_en_gb/menu_en_gb.rc index f7f25bbdc..5412634f5 100644 --- a/language/np3_en_gb/menu_en_gb.rc +++ b/language/np3_en_gb/menu_en_gb.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Edit" BEGIN MENUITEM "Document &Read Only" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Undo\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Redo\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Cop&y Add\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Paste\tCtrl+V", IDM_EDIT_PASTE MENUITEM "S&wap\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Delete\tDel", IDM_EDIT_CLEAR - MENUITEM "Cl&ear Clipboard", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Select All\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Delete\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Cl&ear Clipboard", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "W&ords" BEGIN diff --git a/language/np3_en_us/menu_en_us.rc b/language/np3_en_us/menu_en_us.rc index 6dbc3df4c..0221eb200 100644 --- a/language/np3_en_us/menu_en_us.rc +++ b/language/np3_en_us/menu_en_us.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Edit" BEGIN MENUITEM "Document &Read Only" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Undo\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Redo\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Cop&y Add\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Paste\tCtrl+V", IDM_EDIT_PASTE MENUITEM "S&wap\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Delete\tDel", IDM_EDIT_CLEAR - MENUITEM "Cl&ear Clipboard", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Select All\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Delete\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Cl&ear Clipboard", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "W&ords" BEGIN diff --git a/language/np3_es_es/menu_es_es.rc b/language/np3_es_es/menu_es_es.rc index f71c7886c..07c81189d 100644 --- a/language/np3_es_es/menu_es_es.rc +++ b/language/np3_es_es/menu_es_es.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Edición" BEGIN MENUITEM "Documento &Sólo lectura" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Deshacer\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "Re&hacer\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Copiar a&ñadiendo\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Pegar\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Perm&utar\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "E&liminar\tDel", IDM_EDIT_CLEAR - MENUITEM "&Vaciar el portapapeles", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Seleccionar todo\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "E&liminar\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "&Vaciar el portapapeles", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "P&alabras" BEGIN diff --git a/language/np3_fi_fi/menu_fi_fi.rc b/language/np3_fi_fi/menu_fi_fi.rc index 6ab7aeb39..4f600d853 100644 --- a/language/np3_fi_fi/menu_fi_fi.rc +++ b/language/np3_fi_fi/menu_fi_fi.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Muokkaa" BEGIN MENUITEM "Dokumentti Vain &luettavissa" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "K&umoa\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Tee uudelleen\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Kop&ioi lisäys\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Liitä\tCtrl+V", IDM_EDIT_PASTE MENUITEM "&Vaihda\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Poista\tDel", IDM_EDIT_CLEAR - MENUITEM "Tyhj&ennä leikepöytä", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Valit&se kaikki\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Poista\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Tyhj&ennä leikepöytä", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "S&anat" BEGIN diff --git a/language/np3_fr_fr/menu_fr_fr.rc b/language/np3_fr_fr/menu_fr_fr.rc index 952a13093..e2284d254 100644 --- a/language/np3_fr_fr/menu_fr_fr.rc +++ b/language/np3_fr_fr/menu_fr_fr.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Edition" BEGIN MENUITEM "Document en &lecture seule" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "Défaire\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Rétablir\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Copier& / Ajouter\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Co&ller\tCtrl+V", IDM_EDIT_PASTE MENUITEM "P&ermuter\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Supprimer\tSuppr", IDM_EDIT_CLEAR - MENUITEM "Vi&der le presse-papiers", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Sélectionner tout\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Supprimer\tSuppr", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Vi&der le presse-papiers", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "M&ots" BEGIN diff --git a/language/np3_hi_in/menu_hi_in.rc b/language/np3_hi_in/menu_hi_in.rc index 3a93f4387..73af73f2f 100644 --- a/language/np3_hi_in/menu_hi_in.rc +++ b/language/np3_hi_in/menu_hi_in.rc @@ -155,7 +155,6 @@ BEGIN POPUP "संपादन (&E)" BEGIN MENUITEM "दस्तावेज़ केवल पढ़ने योग्य (&R)" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "पूर्ववत करें (&U)\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "फिर से करें (&R)\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "कॉपी करें और जोड़ें (&Y)\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "चिपकाएं (&P)\tCtrl+V", IDM_EDIT_PASTE MENUITEM "बदलें (&W)\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "हटाएं (&D)\tDel", IDM_EDIT_CLEAR - MENUITEM "क्लिपबोर्ड साफ़ करें (&E)", IDM_EDIT_CLEARCLIPBOARD MENUITEM "सारा चुनें (&S)\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "हटाएं (&D)\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "क्लिपबोर्ड साफ़ करें (&E)", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "शब्द (&O)" BEGIN diff --git a/language/np3_hu_hu/menu_hu_hu.rc b/language/np3_hu_hu/menu_hu_hu.rc index 9697a6977..00e7b146a 100644 --- a/language/np3_hu_hu/menu_hu_hu.rc +++ b/language/np3_hu_hu/menu_hu_hu.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Szerkesztés" BEGIN MENUITEM "&Csak olvasható dokumentum" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Visszavonás\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Újra\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Vág&ólaphoz ad\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Beillesztés\tCtrl+V", IDM_EDIT_PASTE MENUITEM "&Csere\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Törlés\tDel", IDM_EDIT_CLEAR - MENUITEM "Vágólap t&örlése", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Min&d kijelölése\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Törlés\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Vágólap t&örlése", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "Sza&vak" BEGIN diff --git a/language/np3_id_id/menu_id_id.rc b/language/np3_id_id/menu_id_id.rc index 0022a1e0b..28bb10d50 100644 --- a/language/np3_id_id/menu_id_id.rc +++ b/language/np3_id_id/menu_id_id.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Sunting" BEGIN MENUITEM "Mode Hanya &Baca" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Urungkan\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "Kem&balikan\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Tambah ke Papan &Klip\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Te&mpel\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Tuka&r\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "Hap&us\tDel", IDM_EDIT_CLEAR - MENUITEM "Bersi&hkan Papan Klip", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Pil&ih Semua\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "Hap&us\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Bersi&hkan Papan Klip", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "Ka&ta" BEGIN diff --git a/language/np3_it_it/menu_it_it.rc b/language/np3_it_it/menu_it_it.rc index 1d4d949d8..98df2042b 100644 --- a/language/np3_it_it/menu_it_it.rc +++ b/language/np3_it_it/menu_it_it.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Modifica" BEGIN MENUITEM "Documento in sola &lettura" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Annulla\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Ripristina\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Copia aggiungi\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Incolla\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Scam&bia\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Elimina\tCanc", IDM_EDIT_CLEAR - MENUITEM "Svuota appunti", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Seleziona tutto\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Elimina\tCanc", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Svuota appunti", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "&Parole" BEGIN diff --git a/language/np3_ja_jp/menu_ja_jp.rc b/language/np3_ja_jp/menu_ja_jp.rc index c00242101..ef572e7c9 100644 --- a/language/np3_ja_jp/menu_ja_jp.rc +++ b/language/np3_ja_jp/menu_ja_jp.rc @@ -155,7 +155,6 @@ BEGIN POPUP "編集(&E)" BEGIN MENUITEM "閲覧専用(&R)" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "元に戻す(&U)\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "やり直し(&R)\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "クリップボード末尾に追加(&Y)\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "貼り付け(&P)\tCtrl+V", IDM_EDIT_PASTE MENUITEM "クリップボードと入替(&W)\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "削除(&D)\tDel", IDM_EDIT_CLEAR - MENUITEM "クリップボードをクリア(&E)", IDM_EDIT_CLEARCLIPBOARD MENUITEM "すべて選択(&S)\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "削除(&D)\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "クリップボードをクリア(&E)", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "単語(&O)" BEGIN diff --git a/language/np3_ko_kr/menu_ko_kr.rc b/language/np3_ko_kr/menu_ko_kr.rc index 9e3c935cd..7ed6b5fb5 100644 --- a/language/np3_ko_kr/menu_ko_kr.rc +++ b/language/np3_ko_kr/menu_ko_kr.rc @@ -155,7 +155,6 @@ BEGIN POPUP "편집(&E)" BEGIN MENUITEM "읽기 전용 문서(&R)" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "실행 취소(&U)\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "다시 실행(&R)\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "복사 추가(&A)\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "붙여넣기(&P)\tCtrl+V", IDM_EDIT_PASTE MENUITEM "교환(&W)\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "삭제(&D)\tDel", IDM_EDIT_CLEAR - MENUITEM "클립보드 지우기(&E)", IDM_EDIT_CLEARCLIPBOARD MENUITEM "모두 선택(&S)\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "삭제(&D)\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "클립보드 지우기(&E)", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "단어(&W)" BEGIN diff --git a/language/np3_nl_nl/menu_nl_nl.rc b/language/np3_nl_nl/menu_nl_nl.rc index d0721d83a..c5a999fa3 100644 --- a/language/np3_nl_nl/menu_nl_nl.rc +++ b/language/np3_nl_nl/menu_nl_nl.rc @@ -155,7 +155,6 @@ BEGIN POPUP "Bew&erken" BEGIN MENUITEM "Document &Read Only" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Ongedaan maken\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "Op&nieuw uitvoeren\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Kopie &toevoegen\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Plakken\tCtrl+V", IDM_EDIT_PASTE MENUITEM "&Verwisselen\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Wissen\tDel", IDM_EDIT_CLEAR - MENUITEM "&Klembord wissen", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Alles &selecteren\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Wissen\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "&Klembord wissen", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "W&oorden" BEGIN diff --git a/language/np3_pl_pl/menu_pl_pl.rc b/language/np3_pl_pl/menu_pl_pl.rc index e7d076851..5f467b65a 100644 --- a/language/np3_pl_pl/menu_pl_pl.rc +++ b/language/np3_pl_pl/menu_pl_pl.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Edycja" BEGIN MENUITEM "Dokument &tylko do odczytu" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Cofnij\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Powtórz\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Dodaj do schowka\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Wklej\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Zamień\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Usuń\tDel", IDM_EDIT_CLEAR - MENUITEM "Wyczyść schowek", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Zaznacz wszystko\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Usuń\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Wyczyść schowek", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "W&yrazy" BEGIN diff --git a/language/np3_pt_br/menu_pt_br.rc b/language/np3_pt_br/menu_pt_br.rc index 1ea34dade..2203c92e4 100644 --- a/language/np3_pt_br/menu_pt_br.rc +++ b/language/np3_pt_br/menu_pt_br.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Editar" BEGIN MENUITEM "Documento somente leitu&ra" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Desfazer\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Refazer\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Cop&iar Adicional\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Colar\tCtrl+V", IDM_EDIT_PASTE MENUITEM "T&rocar\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Apagar\tDel", IDM_EDIT_CLEAR - MENUITEM "L&impar Área de Transferência", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Selecionar Tudo\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Apagar\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "L&impar Área de Transferência", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "P&alavras" BEGIN diff --git a/language/np3_pt_pt/menu_pt_pt.rc b/language/np3_pt_pt/menu_pt_pt.rc index e29ef28b1..789e5464f 100644 --- a/language/np3_pt_pt/menu_pt_pt.rc +++ b/language/np3_pt_pt/menu_pt_pt.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Editar" BEGIN MENUITEM "Documento só de leitu&ra" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "An&ular\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Refazer\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Cop&iar Adicionar\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Co&lar\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Trocar\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Eliminar\tDel", IDM_EDIT_CLEAR - MENUITEM "Limpar ár&ea de transferência", IDM_EDIT_CLEARCLIPBOARD MENUITEM "&Seleccionar tudo\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Eliminar\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Limpar ár&ea de transferência", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "Pala&vras" BEGIN diff --git a/language/np3_ru_ru/menu_ru_ru.rc b/language/np3_ru_ru/menu_ru_ru.rc index 22ac82b13..6bce14a0f 100644 --- a/language/np3_ru_ru/menu_ru_ru.rc +++ b/language/np3_ru_ru/menu_ru_ru.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Правка" BEGIN MENUITEM "Документ только для чтени&я" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Отмена\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Повтор\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Добавить в конец буфера\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Вст&авить\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Поменять\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Удалить\tDel", IDM_EDIT_CLEAR - MENUITEM "О&чистить буфер обмена", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Выделить в&сё\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Удалить\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "О&чистить буфер обмена", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "Слова" BEGIN diff --git a/language/np3_sk_sk/menu_sk_sk.rc b/language/np3_sk_sk/menu_sk_sk.rc index 445056f20..927f9f703 100644 --- a/language/np3_sk_sk/menu_sk_sk.rc +++ b/language/np3_sk_sk/menu_sk_sk.rc @@ -155,7 +155,6 @@ BEGIN POPUP "&Upraviť" BEGIN MENUITEM "Dokument &Len na čítanie" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Späť\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Znova\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Kopírov&ať pridané\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Vložiť\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Z&ameniť\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "Z&mazať\tDel", IDM_EDIT_CLEAR - MENUITEM "Vyprázdniť &schránku", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Vy&brať všetko\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "Z&mazať\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Vyprázdniť &schránku", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "&Slová" BEGIN diff --git a/language/np3_sv_se/menu_sv_se.rc b/language/np3_sv_se/menu_sv_se.rc index 38cd25997..cc3eb2374 100644 --- a/language/np3_sv_se/menu_sv_se.rc +++ b/language/np3_sv_se/menu_sv_se.rc @@ -155,7 +155,6 @@ BEGIN POPUP "Redigera" BEGIN MENUITEM "Skrivskydda dokument" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "Ångra\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "Gör om\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Lägg till i urklipp\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Klistra in\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Byt\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "Ta bort\tDel", IDM_EDIT_CLEAR - MENUITEM "Rensa urklipp", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Markera allt\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "Ta bort\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Rensa urklipp", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "Ord" BEGIN diff --git a/language/np3_tr_tr/menu_tr_tr.rc b/language/np3_tr_tr/menu_tr_tr.rc index bcd1697b8..1ba64cb22 100644 --- a/language/np3_tr_tr/menu_tr_tr.rc +++ b/language/np3_tr_tr/menu_tr_tr.rc @@ -155,7 +155,6 @@ BEGIN POPUP "Dü&zenle" BEGIN MENUITEM "Belge salt &okunur" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "&Geri al\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "&Yinele\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Tümünü y&apıştır\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "&Yapıştır\tCtrl+V", IDM_EDIT_PASTE MENUITEM "&Değiştir\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "&Sil\tDel", IDM_EDIT_CLEAR - MENUITEM "&Panoyu temizle", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Tü&münü seç\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "&Sil\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "&Panoyu temizle", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "&Sözcükler" BEGIN diff --git a/language/np3_vi_vn/menu_vi_vn.rc b/language/np3_vi_vn/menu_vi_vn.rc index ccfb59cbe..4eb284dfa 100644 --- a/language/np3_vi_vn/menu_vi_vn.rc +++ b/language/np3_vi_vn/menu_vi_vn.rc @@ -155,7 +155,6 @@ BEGIN POPUP "Chỉnh sửa(&E)" BEGIN MENUITEM "Tài liệu chỉ đọc(&R)" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "Hoàn tác(&U)\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "Làm lại(&R)\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "Sao chép thêm(&A)\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "Dán(&P)\tCtrl+V", IDM_EDIT_PASTE MENUITEM "Hoán đổi(&W)\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "Xóa(&D)\tDel", IDM_EDIT_CLEAR - MENUITEM "Xóa bộ nhớ tạm(&E)", IDM_EDIT_CLEARCLIPBOARD MENUITEM "Chọn tất cả(&S)\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "Xóa(&D)\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "Xóa bộ nhớ tạm(&E)", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "Từ(&W)" BEGIN diff --git a/language/np3_zh_cn/menu_zh_cn.rc b/language/np3_zh_cn/menu_zh_cn.rc index 1c49db1c1..d7c7699bf 100644 --- a/language/np3_zh_cn/menu_zh_cn.rc +++ b/language/np3_zh_cn/menu_zh_cn.rc @@ -155,7 +155,6 @@ BEGIN POPUP "编辑(&E)" BEGIN MENUITEM "只读(&R)" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "撤销(&U)\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "重做(&R)\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "增量复制(&Y)\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "粘贴(&P)\tCtrl+V", IDM_EDIT_PASTE MENUITEM "与剪贴板交换(&W)\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "删除(&D)\tDel", IDM_EDIT_CLEAR - MENUITEM "清空剪贴板(&E)", IDM_EDIT_CLEARCLIPBOARD MENUITEM "全选(&A)\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "删除(&D)\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "清空剪贴板(&E)", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "单词(&O)" BEGIN diff --git a/language/np3_zh_tw/menu_zh_tw.rc b/language/np3_zh_tw/menu_zh_tw.rc index 3feff3658..1682ca750 100644 --- a/language/np3_zh_tw/menu_zh_tw.rc +++ b/language/np3_zh_tw/menu_zh_tw.rc @@ -155,7 +155,6 @@ BEGIN POPUP "編輯(&E)" BEGIN MENUITEM "唯讀(&R)" IDM_VIEW_READONLY - MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR MENUITEM "復原(&U)\tCtrl+Z", IDM_EDIT_UNDO MENUITEM "取消復原(&R)\tCtrl+Y", IDM_EDIT_REDO @@ -166,9 +165,11 @@ BEGIN MENUITEM "增量複製(&Y)\tCtrl+E", IDM_EDIT_COPYADD MENUITEM "貼上(&P)\tCtrl+V", IDM_EDIT_PASTE MENUITEM "與剪貼簿置換(&W)\tCtrl+K", IDM_EDIT_SWAP - MENUITEM "刪除(&D)\tDel", IDM_EDIT_CLEAR - MENUITEM "清空剪貼簿(&E)", IDM_EDIT_CLEARCLIPBOARD MENUITEM "全選(&A)\tCtrl+A", IDM_EDIT_SELECTALL + MENUITEM "刪除(&D)\tDel", IDM_EDIT_CLEAR + MENUITEM SEPARATOR + MENUITEM "清空剪貼簿(&E)", IDM_EDIT_CLEARCLIPBOARD + MENUITEM "Stop Clipboard &Monitoring", IDM_EDIT_STOP_PASTEBOARD MENUITEM SEPARATOR POPUP "單詞(&O)" BEGIN diff --git a/readme/config/Configuration.md b/readme/config/Configuration.md index b410d83ce..1f7044a3d 100644 --- a/readme/config/Configuration.md +++ b/readme/config/Configuration.md @@ -181,6 +181,42 @@ Set to `1` to prevent **Ctrl+C** from copying the current line when nothing is s Set to `1` to prevent **Ctrl+X** from cutting the current line when nothing is selected. +#### `CopyMultiSelectionSeparator=` + +String placed between selections when copying a multi-selection (**Ctrl+C** with multiple cursors/selections active). Default (key absent) uses the document's current EOL character. Set to empty for no separator. Supports escape sequences: `\r` (CR), `\n` (LF), `\t` (tab), `\xHH` (hex character). Common choices: + +```ini +CopyMultiSelectionSeparator= ;empty — selections joined without any separator +CopyMultiSelectionSeparator=\t ;tab-separated +CopyMultiSelectionSeparator=\r\n ;CRLF between each selection +``` + +### Clipboard Monitoring + +Notepad3 can be launched in **clipboard monitoring mode** with the `/b` command-line switch. In this mode, every clipboard change is automatically appended as a new entry at the end of the document. Stop monitoring at any time via **Edit → Stop Clipboard Monitoring** without closing the editor. While active, the status bar shows **`CBS`** in the INS/OVR field. + +#### `PasteBoardDebounceMs=200` + +Debounce interval in milliseconds before a clipboard change is pasted into the document. Increase this value if rapid successive copies result in missed or doubled entries. Range: `0`–`5000`. + +#### `PasteBoardSeparator=` + +String inserted verbatim between pasted entries — all newlines must be included explicitly. Default (key absent) uses the document's current EOL character, placing entries on consecutive lines. Set to empty (`PasteBoardSeparator=`) for no separator (entries concatenated). Supports escape sequences: `\r` (CR), `\n` (LF), `\t` (tab), `\xHH` (hex character). Common choices: + +```ini +PasteBoardSeparator=\r\n---\r\n ; dashed line on its own line (CRLF doc) +PasteBoardSeparator=\n---\n ; dashed line on its own line (LF doc) +PasteBoardSeparator=\r\n ; one line break (consecutive lines, CRLF doc) +PasteBoardSeparator=\r\n\r\n ; blank line between entries (CRLF doc) +PasteBoardSeparator=\r\n\r\n\r\n ; two blank lines between entries +``` + +> **Note:** The separator string is inserted verbatim — exactly the number of newline characters you specify will appear between entries. To place a text separator (e.g. `---`) on its own line, include the surrounding newlines: `\n---\n`. + +#### `PasteBoardAddTimestamp=0` + +Set to `1` to prepend a `[HH:MM:SS]` timestamp to each pasted entry. + #### `NoFadeHidden=0` Set to `1` to disable fading of hidden objects in file lists (Favorites, etc.). @@ -426,7 +462,7 @@ Defines visible fields and their order: | 6 | File size (UTF-8 mode) | | 7 | Encoding (double-click to open Encoding dialog) | | 8 | EOL mode (toggle CR+LF / LF / CR) | -| 9 | INS/OVR mode toggle | +| 9 | INS/OVR mode toggle (double-click); shows **CBS** when clipboard monitoring is active — double-click **CBS** stops monitoring | | 10 | STD/2ND text mode toggle | | 11 | Current scheme (double-click to open scheme selector) | | 12 | Ch — Character count from line start | diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index fbb9572c3..9c5e23472 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -1459,6 +1459,17 @@ void LoadSettings() IniSectionGetString(IniSecSettings2, L"CopyMultiSelectionSeparator", L"\x01", Settings2.CopyMultiSelectionSeparator, COUNTOF(Settings2.CopyMultiSelectionSeparator)); + if (Settings2.CopyMultiSelectionSeparator[0] != L'\x01') { + UnSlashW(Settings2.CopyMultiSelectionSeparator, Encoding_SciCP); // interpret \n, \t, \xHH, etc. + } + + IniSectionGetString(IniSecSettings2, L"PasteBoardSeparator", L"\x01", + Settings2.PasteBoardSeparator, COUNTOF(Settings2.PasteBoardSeparator)); + if (Settings2.PasteBoardSeparator[0] != L'\x01') { + UnSlashW(Settings2.PasteBoardSeparator, Encoding_SciCP); // interpret \n, \t, \xHH, etc. + } + Settings2.PasteBoardDebounceMs = clampi(IniSectionGetInt(IniSecSettings2, L"PasteBoardDebounceMs", 200), 0, 5000); + Settings2.PasteBoardAddTimestamp = IniSectionGetBool(IniSecSettings2, L"PasteBoardAddTimestamp", false); for (int i = 0; i < COUNTOF(Settings2.CodeFontPrefPrioList); ++i) { if (i < COUNTOF(g_CodeFontPrioList)) diff --git a/src/Notepad3.c b/src/Notepad3.c index 849331038..3e80b0aed 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -150,7 +150,7 @@ static bool s_IsThisAnElevatedRelaunch = false; static WCHAR s_wchWndClass[64] = { L'\0' }; static HWND s_hwndEditFrame = NULL; -static HWND s_hwndNextCBChain = NULL; +static bool s_bPasteBoardListening = false; static int s_WinCurrentWidth = 0; @@ -166,6 +166,8 @@ static UINT s_msgTaskbarCreated = 0; static WCHAR s_wchTitleExcerpt[MIDSZ_BUFFER] = { L'\0' }; static LONG64 s_iLastCopyTime = 0; static bool s_bLastCopyFromMe = false; +static DWORD s_dwLastPasteSeqNo = 0; +static bool s_bLastPasteSeqNoValid = false; static bool s_bInMultiEditMode = false; static bool s_bCallTipEscDisabled = false; @@ -2096,12 +2098,11 @@ HWND InitInstance(const HINSTANCE hInstance, int nCmdShow) // Check for Paste Board option -- after loading files if (s_flagPasteBoard) { - s_bLastCopyFromMe = true; - s_hwndNextCBChain = SetClipboardViewer(Globals.hwndMain); - s_bLastCopyFromMe = false; - - s_iLastCopyTime = 0; - SetTimer(Globals.hwndMain, ID_PASTEBOARDTIMER, 100, PasteBoardTimerProc); + s_bPasteBoardListening = AddClipboardFormatListener(Globals.hwndMain); + if (s_bPasteBoardListening) { + s_iLastCopyTime = 0; + SetTimer(Globals.hwndMain, ID_PASTEBOARDTIMER, 100, PasteBoardTimerProc); + } } // check if a lexer was specified from the command line @@ -2283,7 +2284,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) // bPendingChangeNotify = false; // break; - case WM_DRAWCLIPBOARD: + case WM_CLIPBOARDUPDATE: if (s_flagPasteBoard) { if (!s_bLastCopyFromMe) { s_iLastCopyTime = GetTicks_ms(); @@ -2291,19 +2292,6 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) s_bLastCopyFromMe = false; } } - - if (s_hwndNextCBChain) { - SendMessage(s_hwndNextCBChain,WM_DRAWCLIPBOARD,wParam,lParam); - } - break; - - case WM_CHANGECBCHAIN: - if ((HWND)wParam == s_hwndNextCBChain) { - s_hwndNextCBChain = (HWND)lParam; - } - if (s_hwndNextCBChain) { - SendMessage(s_hwndNextCBChain,WM_CHANGECBCHAIN,wParam,lParam); - } break; case WM_SYSCOMMAND: @@ -3266,8 +3254,13 @@ LRESULT MsgEndSession(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) // Terminate clipboard watching if (s_flagPasteBoard) { + s_flagPasteBoard = false; + s_iLastCopyTime = 0; KillTimer(hwnd, ID_PASTEBOARDTIMER); - ChangeClipboardChain(hwnd, s_hwndNextCBChain); + if (s_bPasteBoardListening) { + RemoveClipboardFormatListener(hwnd); + s_bPasteBoardListening = false; + } } // close Find/Replace and CustomizeSchemes @@ -5143,12 +5136,16 @@ static bool _HandleEditBasicCommands(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM case IDM_EDIT_STOP_PASTEBOARD: KillTimer(Globals.hwndMain, ID_PASTEBOARDTIMER); - ChangeClipboardChain(Globals.hwndMain, s_hwndNextCBChain); - s_hwndNextCBChain = NULL; + if (s_bPasteBoardListening) { + RemoveClipboardFormatListener(Globals.hwndMain); + s_bPasteBoardListening = false; + } s_flagPasteBoard = false; s_iLastCopyTime = 0; s_bLastCopyFromMe = false; + s_bLastPasteSeqNoValid = false; UpdateToolbar_Now(Globals.hwndMain); + UpdateStatusbar(true); break; @@ -9252,7 +9249,11 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam) break; case STATUS_OVRMODE: - PostWMCommand(hwnd, CMD_VK_INSERT); + if (s_flagPasteBoard) { + PostWMCommand(hwnd, IDM_EDIT_STOP_PASTEBOARD); + } else { + PostWMCommand(hwnd, CMD_VK_INSERT); + } break; case STATUS_2ND_DEF: @@ -10608,17 +10609,22 @@ static void _UpdateStatusbarDelayed(bool bForceRedraw) // ------------------------------------------------------ if (g_iStatusbarVisible[STATUS_OVRMODE]) { - static bool s_bIsOVR = -1; + static int s_bIsOVR = -1; // int for -1 sentinel (first-paint trigger) + static bool s_bPasteBoard = false; bool const bIsOVR = SciCall_GetOverType(); - if (bForceRedraw || (s_bIsOVR != bIsOVR)) { - if (bIsOVR) { + if (bForceRedraw || (s_bIsOVR != (int)bIsOVR) || (s_bPasteBoard != s_flagPasteBoard)) { + if (s_flagPasteBoard) { + StringCchPrintf(tchStatusBar[STATUS_OVRMODE], txtWidth, L"%sCBS%s", + g_mxSBPrefix[STATUS_OVRMODE], g_mxSBPostfix[STATUS_OVRMODE]); + } else if (bIsOVR) { StringCchPrintf(tchStatusBar[STATUS_OVRMODE], txtWidth, L"%sOVR%s", g_mxSBPrefix[STATUS_OVRMODE], g_mxSBPostfix[STATUS_OVRMODE]); } else { StringCchPrintf(tchStatusBar[STATUS_OVRMODE], txtWidth, L"%sINS%s", g_mxSBPrefix[STATUS_OVRMODE], g_mxSBPostfix[STATUS_OVRMODE]); } - s_bIsOVR = bIsOVR; + s_bIsOVR = (int)bIsOVR; + s_bPasteBoard = s_flagPasteBoard; bIsUpdateNeeded = true; } } @@ -12310,7 +12316,15 @@ void CALLBACK PasteBoardTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD if (!s_flagPasteBoard) { return; } - if ((s_iLastCopyTime > 0) && ((GetTicks_ms() - s_iLastCopyTime) > 200)) { + int const debounceMs = max(0, Settings2.PasteBoardDebounceMs); + if ((s_iLastCopyTime > 0) && ((GetTicks_ms() - s_iLastCopyTime) > (LONG64)debounceMs)) { + + // Skip if clipboard hasn't changed since last paste (sequence number check) + DWORD const dwCurrentSeqNo = GetClipboardSequenceNumber(); + if (s_bLastPasteSeqNoValid && (dwCurrentSeqNo == s_dwLastPasteSeqNo)) { + s_iLastCopyTime = 0; + return; + } if (SciCall_CanPaste()) { bool bAutoIndent2 = Settings.AutoIndent; @@ -12318,13 +12332,34 @@ void CALLBACK PasteBoardTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD EditJumpTo(-1, 0); UndoTransActionBegin(); if (!Sci_IsDocEmpty()) { - SciCall_NewLine(); + if (Settings2.PasteBoardSeparator[0] == L'\x01') { + // default: one EOL between entries + SciCall_NewLine(); + } + else if (Settings2.PasteBoardSeparator[0] != L'\0') { + // custom separator inserted verbatim — user controls all newlines in the string + char sepBuf[MICRO_BUFFER * 3] = { '\0' }; + int const sepLen = WideCharToMultiByte(Encoding_SciCP, 0, Settings2.PasteBoardSeparator, -1, + sepBuf, (int)(sizeof(sepBuf) - 1), NULL, NULL); + if (sepLen > 0) { + SciCall_ReplaceSel(sepBuf); + } + } + // if '\0' (empty): no separator, entries joined directly + } + if (Settings2.PasteBoardAddTimestamp) { + char tsBuf[32] = { '\0' }; + SYSTEMTIME st; + GetLocalTime(&st); + StringCchPrintfA(tsBuf, COUNTOF(tsBuf), "[%02u:%02u:%02u] ", st.wHour, st.wMinute, st.wSecond); + SciCall_ReplaceSel(tsBuf); } SciCall_Paste(); - SciCall_NewLine(); EndUndoTransAction(); Sci_ScrollSelectionToView(); Settings.AutoIndent = bAutoIndent2; + s_dwLastPasteSeqNo = dwCurrentSeqNo; + s_bLastPasteSeqNoValid = true; } s_iLastCopyTime = 0; } diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 4dd53aa6b..ef6582bd4 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -844,6 +844,10 @@ typedef struct SETTINGS2_T { WCHAR CopyMultiSelectionSeparator[MICRO_BUFFER]; + WCHAR PasteBoardSeparator[MICRO_BUFFER]; + int PasteBoardDebounceMs; + bool PasteBoardAddTimestamp; + const WCHAR* CodeFontPrefPrioList[MICRO_BUFFER]; const WCHAR* TextFontPrefPrioList[MICRO_BUFFER];