Compare commits

...

25 Commits

Author SHA1 Message Date
ASU
c8cebb921e Added Ctrl+Shift+M default hotkey for Switch Terminal Input Mode 2025-04-08 00:10:41 +02:00
ASU
c5bf0fc82d Added switch terminal input mode HotKey 2025-04-08 00:10:41 +02:00
Leonid Mashinskiy
a06265da2a Fix crash on startup due memory double-free.
Introduced in 93bbf6a42b87bd19c2e8374b52813e2b80bd3b7d
2025-04-08 00:02:42 +02:00
Johannes Altmanninger
389f78f20d Do not interpret "CSI = u" and "CSI ? u" as DECRC
Unfortunately fish shell version 4 is broken on ConEmu due to the
use of sequences like

    printf '\x1b[=5u'
    printf '\x1b[?u'

used for the kitty keyboard protocol.

ConEmu treats them like "CSI u" (restore cursor position).

Fix that.

Untested -- I haven't built ConEmu yet, I don't know much
about Windows and I don't know if it's still maintained.
But I'll be happy to test.
2025-04-07 23:32:16 +02:00
Maximus5
740b09c363 Merge branch 'daily' 2023-07-24 02:05:45 +02:00
Maximus5
90f76807d5 230724 release files 2023-07-24 02:03:35 +02:00
Maximus5
bd4489e48b 230724 Chocolatey and Nuget 2023-07-24 02:03:33 +02:00
Maximus5
bf2f25300c Internal. Fix deploy script 2023-07-24 01:57:30 +02:00
Maximus5
dead3d3fc5 230724 release files 2023-07-24 01:17:15 +02:00
Maximus5
b12b8f1771 230724 Chocolatey and Nuget 2023-07-24 01:17:07 +02:00
Maximus5
60683a1866 gh-2536: Do not emit control characters in title reports (capability fix). 2023-07-24 01:04:12 +02:00
Maximus5
36e157153b Internal. Add 7z exclusions 2023-07-23 18:12:48 +02:00
Maximus5
d2d65e5e5a l10n: translations were updated 2023-07-23 18:12:48 +02:00
trolzen
0fd8b5c879 fix link to section 2023-07-23 15:17:01 +02:00
Yevgeny Zhiglov
8b88630383 avoid running CodeQL when azure-pipelines.yml was edited and vice versa 2023-07-23 15:08:05 +02:00
Yevgeny Zhiglov
6736006a50 avoid running pipelines when only *.md and *.txt files are modified 2023-07-23 15:08:05 +02:00
Ben Harvie
51b8731c49 Create SECURITY.md 2023-07-23 15:07:09 +02:00
Maximus5
3c6e8f29d2 230723 release files 2023-07-23 14:14:12 +02:00
Maximus5
457752fabb 230723 Chocolatey and Nuget 2023-07-23 14:14:00 +02:00
Maximus5
1dc80e9202 Internal. Set github as a primary download mirror 2023-07-23 13:37:32 +02:00
System user; root
03c48ab024 Do not emit control characters in title reports
Signed-off-by: Martin Kemp <me@martinke.mp>
Co-authored-by: David Leadbeater <dgl@dgl.cx>
2023-07-23 13:06:18 +02:00
Maximus5
a5620b3f13 221218 release files 2022-12-19 04:58:51 +01:00
Maximus5
b38f2b4456 221218 Chocolatey and Nuget 2022-12-19 04:58:25 +01:00
Maximus5
cd9bb86360 Fix Window Title Reporting security issue.
More info: https://seclists.org/fulldisclosure/2003/Feb/341
2022-12-19 03:53:33 +01:00
Maximus5
b57048d6c5 Revert "gh-2458: Preliminary support of Far3 experimental feature 'Fullwidth-aware rendering'."
This reverts commit 1d39a1a41b090160174b82032640eb8233387c17.
2022-12-19 03:08:26 +01:00
36 changed files with 174 additions and 3043 deletions

View File

@ -27,7 +27,7 @@ Please read the [article on the official site](https://conemu.github.io/en/BadIs
If you catch a bug in the Adobe Reader you would not report it on Microsoft Connect because you run Reader in Windows, would you? If you catch a bug in the Adobe Reader you would not report it on Microsoft Connect because you run Reader in Windows, would you?
A lot of users say It works in cygwin or It works in git bash, but since both of them uses the mintty terminal, it can exhibit different behavior. Read more in [Do not compare with Cygwin or Git Bash](#donotcompare). A lot of users say It works in cygwin or It works in git bash, but since both of them uses the mintty terminal, it can exhibit different behavior. Read more in [Do not compare with Cygwin or Git Bash](#do-not-compare-with-cygwin-or-git-bash).
##### TLDR; ##### TLDR;

View File

@ -11,6 +11,10 @@ on:
pull_request: pull_request:
# The branches below must be a subset of the branches above # The branches below must be a subset of the branches above
branches: [master, daily] branches: [master, daily]
paths-ignore:
- '**/*.md'
- '**/*.txt'
- azure-pipelines.yml
schedule: schedule:
- cron: '0 0 * * 2' - cron: '0 0 * * 2'

2
Deploy/.gitignore vendored
View File

@ -19,3 +19,5 @@ user_env.cmd
downloads-*.txt downloads-*.txt
downloads-*.json downloads-*.json
.idea

View File

@ -9,7 +9,9 @@ if exist "%~dp0user_env.cmd" (
) )
set ex7zlist=-x!*.7z -x!*.aps -x!*.bak -x!*.bdf -x!*.cache -x!*.cod -x!.codeblocks -x!*.exp -x!*.gz -x!*.hab -x!*.ilk -x!*.ipch -x!*.lib -x!*.log -x!*.msi -x!*.ncb -x!*.new -x!*.obj -x!*.opt -x!*.pdb -x!*.plg -x!*.plog -x!*.psess -x!*.pvd -x!*.sln.cache -x!*.suo -x!*.tgz -x!*.ttf -x!*.user -x!*.vsp -x!*.zip -x!*684.* -x!*sdf -x!.gitignore -x!.svn -x!curl-7.21.4 -x!Debug -x!enc_temp_folder -x!enc_temp_folder -x!gcc -x!kl_parts_gcc.* -x!makefile_lt_vc -x!MouseWheelTilt.reg -x!rebar.bmp -x!Thumbs.db -x!time2.exe -x!toolbar -x!VTune -x!WhatsNew-ConEmu-Portable.txt -x!PortableApps_Installer -x!UnitTests.cmd -x!.svnignore -x!*.o -x!!*.txt -x!*.VC.db set ex7zlist=-x!*.7z -x!*.aps -x!*.bak -x!*.bdf -x!*.cache -x!*.cod -x!.codeblocks -x!*.exp -x!*.gz -x!*.hab -x!*.ilk -x!*.ipch -x!*.lib -x!*.log -x!*.msi -x!*.ncb -x!*.new -x!*.obj -x!*.opt -x!*.pdb -x!*.plg -x!*.plog -x!*.psess -x!*.pvd -x!*.sln.cache -x!*.suo -x!*.tgz -x!*.ttf -x!*.user -x!*.vsp -x!*.zip -x!*684.* -x!*sdf -x!.gitignore -x!.svn -x!curl-7.21.4 -x!Debug -x!enc_temp_folder -x!enc_temp_folder -x!gcc -x!kl_parts_gcc.* -x!makefile_lt_vc -x!MouseWheelTilt.reg -x!rebar.bmp -x!Thumbs.db -x!time2.exe -x!toolbar -x!VTune -x!WhatsNew-ConEmu-Portable.txt -x!PortableApps_Installer -x!UnitTests.cmd -x!.svnignore -x!*.o -x!!*.txt -x!*.VC.db
set ex7zpack=-x!ConEmu.Gui.map -x!ConEmu64.Gui.map -x!ConEmu\*.map -x!ConEmu\ConEmu.Addons -x!ConEmu\Portable -x!UnitTests -x!Logs -x!*.VC.db
set ex7zpack=-x!ConEmu.Gui.map -x!ConEmu64.Gui.map -x!ConEmu\*.map -x!ConEmu\ConEmu.Addons -x!ConEmu\Portable -x!UnitTests -x!Logs -x!Descript.ion -x!*.VC.db -x!Tests_*.exe -x!far
rem ex7zpack changes should be placed in deploy.cmd and Deploy_git.cmd
setlocal setlocal
set ConEmuHooks=OFF set ConEmuHooks=OFF
@ -61,7 +63,7 @@ rem if errorlevel 1 goto errcpy
set "ConEmu_Maximus5_dbg_7z=%CONEMU_DEPLOY%Debug\ConEmu.Maximus5.%BUILD_NO%.dbg.7z" set "ConEmu_Maximus5_dbg_7z=%CONEMU_DEPLOY%Debug\ConEmu.Maximus5.%BUILD_NO%.dbg.7z"
if exist "%ConEmu_Maximus5_dbg_7z%" del "%ConEmu_Maximus5_dbg_7z%" if exist "%ConEmu_Maximus5_dbg_7z%" del "%ConEmu_Maximus5_dbg_7z%"
7z a -r "%ConEmu_Maximus5_dbg_7z%" Release\*.map Release\*.pdb 7z a -r "%ConEmu_Maximus5_dbg_7z%" Release\*.map Release\*.pdb -x!Release\far
if errorlevel 1 goto err7z if errorlevel 1 goto err7z
set "ConEmuPack_7z=%CONEMU_DEPLOY%Pack\ConEmuPack.%BUILD_NO%.7z" set "ConEmuPack_7z=%CONEMU_DEPLOY%Pack\ConEmuPack.%BUILD_NO%.7z"
@ -71,7 +73,9 @@ rem if exist ConEmu.map (
rem if exist ConEmu1.map del ConEmu1.map rem if exist ConEmu1.map del ConEmu1.map
rem ren ConEmu.map ConEmu1.map rem ren ConEmu.map ConEmu1.map
rem ) rem )
echo on
7z a -r -mx=9 -ms=255f64m "%ConEmuPack_7z%" ConEmu*.exe ConEmu*.map ConEmu\* plugins\* %ex7zlist% %ex7zpack% 7z a -r -mx=9 -ms=255f64m "%ConEmuPack_7z%" ConEmu*.exe ConEmu*.map ConEmu\* plugins\* %ex7zlist% %ex7zpack%
@echo off
if errorlevel 1 goto err7z if errorlevel 1 goto err7z
rem if exist ConEmu1.map ren ConEmu1.map ConEmu.map rem if exist ConEmu1.map ren ConEmu1.map ConEmu.map
cd .. cd ..

View File

@ -2,7 +2,7 @@
""" """
Prerequisities: Prerequisities:
1. pip3 install PyYAML requests 1. pip3 install PyYAML requests transifex-python
2. set TX_TOKEN env.var. to your API token obtained at https://www.transifex.com/user/settings/api/ 2. set TX_TOKEN env.var. to your API token obtained at https://www.transifex.com/user/settings/api/
Add new language, e.g. Polish: Add new language, e.g. Polish:
@ -30,6 +30,7 @@ import yaml # PyYAML | PyYAML.Yandex
from collections import OrderedDict from collections import OrderedDict
from enum import Enum from enum import Enum
from requests.auth import HTTPBasicAuth from requests.auth import HTTPBasicAuth
from transifex.api import transifex_api as tapi
def parse_args(): def parse_args():
@ -337,10 +338,12 @@ class Transifex:
def pull(self, lang_id): def pull(self, lang_id):
print('Pulling language {} from Transifex'.format(lang_id)) print('Pulling language {} from Transifex'.format(lang_id))
result = requests.get( # https://developers.transifex.com/reference/api-python-sdk
'{}/translation/{}/?{}'.format( tapi.setup(auth=self.tx_token)
self.base_url, lang_id, self.file_format), resource = tapi.Resource.get(project="o:conemu:p:conemu-sources")
auth=HTTPBasicAuth('api', self.tx_token)) language = tapi.Language.get(f"l:{lang_id}")
download_url = tapi.ResourceTranslationsAsyncDownload.download(resource=resource, language=language)
result = requests.get(download_url)
print(' TX result: %s' % result.status_code) print(' TX result: %s' % result.status_code)
if result.status_code == 200: if result.status_code == 200:
# print(result.encoding) # print(result.encoding)

View File

@ -14,6 +14,7 @@ pushd "%~dp0.."
set L10N_PATH=Release/ConEmu/ConEmu.l10n set L10N_PATH=Release/ConEmu/ConEmu.l10n
echo Calling "%PYTHON3%" "%~dp0l10n.py" --l10n %L10N_PATH% --tx-pull all --write-l10n
call "%PYTHON3%" "%~dp0l10n.py" --l10n %L10N_PATH% --tx-pull all --write-l10n call "%PYTHON3%" "%~dp0l10n.py" --l10n %L10N_PATH% --tx-pull all --write-l10n
if errorlevel 1 ( if errorlevel 1 (
echo Failed to load updated translations from transifex echo Failed to load updated translations from transifex

View File

@ -1,6 +1,6 @@
[Version] [Version]
PackageVersion=22.8.7.0 PackageVersion=23.7.24.0
DisplayVersion=220807 DisplayVersion=230724
[Format] [Format]
Type=PortableApps.comFormat Type=PortableApps.comFormat

View File

@ -1475,6 +1475,8 @@
"cbIntegralSize": { "cbIntegralSize": {
"en": [ "When checked, ConEmu windows size is changed proportionally to console cells.\n" "en": [ "When checked, ConEmu windows size is changed proportionally to console cells.\n"
, "Option is disabled automatically for Quake and Inside modes, and for 100% window width or height." ], , "Option is disabled automatically for Quake and Inside modes, and for 100% window width or height." ],
"es": [ "Cuando está habilitado, el tamaño de las ventanas de ConEmu se cambia proporcionalmente a las celdas de la consola.\n"
, "Esta opción se deshabilita para los modos Quake y dentro, y si el ancho o el alto de la ventana es del 100%." ],
"pl": [ "Gdy zaznaczone, rozmiar okien ConEmu jest zmieniany proporcjonalnie do komórek konsoli.\n" "pl": [ "Gdy zaznaczone, rozmiar okien ConEmu jest zmieniany proporcjonalnie do komórek konsoli.\n"
, "Opcja jest automatycznie wyłączana w trybach Quake i Inside oraz dla 100% szerokości lub wysokości okna." ], , "Opcja jest automatycznie wyłączana w trybach Quake i Inside oraz dla 100% szerokości lub wysokości okna." ],
"ko": [ "선택하면 콘솔 셀에 비례하여 ConEmu 창 크기가 변경됩니다.\n" "ko": [ "선택하면 콘솔 셀에 비례하여 ConEmu 창 크기가 변경됩니다.\n"
@ -3503,6 +3505,7 @@
, ,
"tFarHourglass": { "tFarHourglass": {
"en": "Far Manager not-responding duration in milliseconds before changing mouse cursor to AppStarting", "en": "Far Manager not-responding duration in milliseconds before changing mouse cursor to AppStarting",
"es": "Duración de no-respuesta de Far Manager en milisegundos antes de cambiar el cursor a InicioApp",
"pl": "Czas braku odpowiedzi Far Managera w ms przed zmianą kursora myszy na Uruchamianie aplikacji", "pl": "Czas braku odpowiedzi Far Managera w ms przed zmianą kursora myszy na Uruchamianie aplikacji",
"ko": "마우스 커서를 AppStarting으로 변경하기 전 Far Manager가 응답하지 않는 밀리초 시간", "ko": "마우스 커서를 AppStarting으로 변경하기 전 Far Manager가 응답하지 않는 밀리초 시간",
"ko_KR": "마우스 커서를 AppStarting으로 변경하기 전 Far Manager가 응답하지 않는 밀리초 시간", "ko_KR": "마우스 커서를 AppStarting으로 변경하기 전 Far Manager가 응답하지 않는 밀리초 시간",
@ -5608,6 +5611,7 @@
"en": "Show Edit context menu", "en": "Show Edit context menu",
"ru": "Показать контекстное меню редактирования", "ru": "Показать контекстное меню редактирования",
"zh": "显示编辑右键菜单", "zh": "显示编辑右键菜单",
"es": "Mostrar el menú contextual Editar",
"pl": "Pokaż edycje menu kontekstowego", "pl": "Pokaż edycje menu kontekstowego",
"it_IT": "Mostra menu Modifica", "it_IT": "Mostra menu Modifica",
"ko": "상황에 맞는 메뉴 편집 표시", "ko": "상황에 맞는 메뉴 편집 표시",
@ -5618,6 +5622,7 @@
"en": "Show Edit context menu", "en": "Show Edit context menu",
"ru": "Показать контекстное меню редактирования", "ru": "Показать контекстное меню редактирования",
"zh": "显示编辑右键菜单", "zh": "显示编辑右键菜单",
"es": "Mostrar el menú contextual Editar",
"pl": "Pokaż edycje menu kontekstowego", "pl": "Pokaż edycje menu kontekstowego",
"it_IT": "Mostra menu Modifica", "it_IT": "Mostra menu Modifica",
"ko": "상황에 맞는 메뉴 편집 표시", "ko": "상황에 맞는 메뉴 편집 표시",
@ -6290,6 +6295,7 @@
, ,
"vkSetFocusParent": { "vkSetFocusParent": {
"en": "Set focus to the ConEmu parent window (ConEmu Inside mode)", "en": "Set focus to the ConEmu parent window (ConEmu Inside mode)",
"es": "Centrar el foco en la ventana matriz de ConEmu (modo dentro de ConEmu)",
"pl": "Ustaw fokus na okno nadrzędne ConEmu (tryb ConEmu Inside)", "pl": "Ustaw fokus na okno nadrzędne ConEmu (tryb ConEmu Inside)",
"ko": "ConEmu 부모 창에 포커스 설정 (ConEmu Inside 모드)", "ko": "ConEmu 부모 창에 포커스 설정 (ConEmu Inside 모드)",
"ko_KR": "ConEmu 부모 창에 포커스 설정 (ConEmu Inside 모드)", "ko_KR": "ConEmu 부모 창에 포커스 설정 (ConEmu Inside 모드)",
@ -6555,7 +6561,7 @@
"zh": "显示 ConEmu 系统菜单 (fires on key down)", "zh": "显示 ConEmu 系统菜单 (fires on key down)",
"_de": "Zeige ConEmu-Systemmenü", "_de": "Zeige ConEmu-Systemmenü",
"_ja": "ConEmuシステムメニューを表示する", "_ja": "ConEmuシステムメニューを表示する",
"_es": "Mostrar menú del sistema de ConEmu", "es": "Mostrar el menú de sistema de ConEmu (se lanza al presionar la tecla)",
"pl": "Pokaż menu systemowe ConEmu (uruchamia się po naciśnięciu klawisza)", "pl": "Pokaż menu systemowe ConEmu (uruchamia się po naciśnięciu klawisza)",
"ko": "ConEmu 시스템 메뉴 표시 (키를 누르면 실행 됨)", "ko": "ConEmu 시스템 메뉴 표시 (키를 누르면 실행 됨)",
"ko_KR": "ConEmu 시스템 메뉴 표시 (키를 누르면 실행 됨)", "ko_KR": "ConEmu 시스템 메뉴 표시 (키를 누르면 실행 됨)",
@ -6567,7 +6573,7 @@
"zh": "显示 ConEmu 系统菜单 (fires on key release)", "zh": "显示 ConEmu 系统菜单 (fires on key release)",
"_de": "Zeige ConEmu-Systemmenü", "_de": "Zeige ConEmu-Systemmenü",
"_ja": "ConEmuシステムメニューを表示する", "_ja": "ConEmuシステムメニューを表示する",
"_es": "Mostrar menú del sistema de ConEmu", "es": "Mostrar el menú de sistema de ConEmu (se lanza al soltar la tecla)",
"pl": "Pokaż menu systemowe ConEmu (uruchamia się po zwolnieniu klawisza)", "pl": "Pokaż menu systemowe ConEmu (uruchamia się po zwolnieniu klawisza)",
"ko": "ConEmu 시스템 메뉴 표시 (키를 놓으면 실행 됨)", "ko": "ConEmu 시스템 메뉴 표시 (키를 놓으면 실행 됨)",
"ko_KR": "ConEmu 시스템 메뉴 표시 (키를 놓으면 실행 됨)", "ko_KR": "ConEmu 시스템 메뉴 표시 (키를 놓으면 실행 됨)",
@ -7098,6 +7104,7 @@
"en": "Alternative mode is off", "en": "Alternative mode is off",
"ru": "Альтернативный режим выключен", "ru": "Альтернативный режим выключен",
"zh": "替代模式 关闭", "zh": "替代模式 关闭",
"es": "El modo alternativo está desactivado",
"pl": "Tryb alternatywny jest wyłączony", "pl": "Tryb alternatywny jest wyłączony",
"it_IT": "La modalità alternativa è disattivata", "it_IT": "La modalità alternativa è disattivata",
"ko": "대체 모드가 꺼짐", "ko": "대체 모드가 꺼짐",
@ -7108,6 +7115,7 @@
"en": "Alternative mode is ON (console frozen)", "en": "Alternative mode is ON (console frozen)",
"ru": "Альтернативный режим включен (консоль заморожена)", "ru": "Альтернативный режим включен (консоль заморожена)",
"zh": "替代模式 开启(控制台冻结)", "zh": "替代模式 开启(控制台冻结)",
"es": "El modo alternativo está activado (consola congelada)",
"pl": "Tryb alternatywny jest włączony (konsola zawieszona)", "pl": "Tryb alternatywny jest włączony (konsola zawieszona)",
"it_IT": "La modalità alternativa è ON (console bloccata)", "it_IT": "La modalità alternativa è ON (console bloccata)",
"ko": "대체 모드가 켜짐 (콘솔 고정)", "ko": "대체 모드가 켜짐 (콘솔 고정)",
@ -7240,6 +7248,7 @@
"en": "BufferHeight mode is off", "en": "BufferHeight mode is off",
"ru": "Режим BufferHeight выключен", "ru": "Режим BufferHeight выключен",
"zh": "缓存高度模式 关闭", "zh": "缓存高度模式 关闭",
"es": "Modo AlturaBuffer está desactivado",
"pl": "Tryb BufferHeight jest wyłączony", "pl": "Tryb BufferHeight jest wyłączony",
"it_IT": "AltezzaDinamica disattiva", "it_IT": "AltezzaDinamica disattiva",
"ko": "버퍼 높이 모드가 꺼짐", "ko": "버퍼 높이 모드가 꺼짐",
@ -7250,6 +7259,7 @@
"en": "BufferHeight mode is ON (scrolling enabled)", "en": "BufferHeight mode is ON (scrolling enabled)",
"ru": "Режим BufferHeight включен (прокрутка включена)", "ru": "Режим BufferHeight включен (прокрутка включена)",
"zh": "缓存高度模式 开启(滚动已启动)", "zh": "缓存高度模式 开启(滚动已启动)",
"es": "Modo AlturaBuffer está activado (scroll habilitado)",
"pl": "Tryb BufferHeight jest włączony (przewijanie włączone)", "pl": "Tryb BufferHeight jest włączony (przewijanie włączone)",
"it_IT": "AltezzaDinamica attiva (scorrimento abilitato)", "it_IT": "AltezzaDinamica attiva (scorrimento abilitato)",
"ko": "버퍼 높이 모드가 켜짐 (스크롤 사용 가능)", "ko": "버퍼 높이 모드가 켜짐 (스크롤 사용 가능)",
@ -7261,6 +7271,7 @@
"ru": "Закрыть ВСЕ консоли", "ru": "Закрыть ВСЕ консоли",
"zh": "关闭所有控制台", "zh": "关闭所有控制台",
"de": "ALLE Konsolen schließen", "de": "ALLE Konsolen schließen",
"es": "Cerrar todas las consolas",
"pl": "Zamknij WSZYSTKIE konsole", "pl": "Zamknij WSZYSTKIE konsole",
"it_IT": "Chiudi TUTTE le console", "it_IT": "Chiudi TUTTE le console",
"ko": "모든 콘솔 닫기", "ko": "모든 콘솔 닫기",
@ -7272,6 +7283,7 @@
"ru": "Закрыть только активную консоль", "ru": "Закрыть только активную консоль",
"zh": "只关闭活动的控制台", "zh": "只关闭活动的控制台",
"de": "Nur aktive Konsole schließen", "de": "Nur aktive Konsole schließen",
"es": "Cerrar sólo consola activa",
"pl": "Zamknij tylko aktywną konsolę", "pl": "Zamknij tylko aktywną konsolę",
"it_IT": "Chiudi solo le console attive", "it_IT": "Chiudi solo le console attive",
"ko": "활성 콘솔만 닫기", "ko": "활성 콘솔만 닫기",
@ -7283,6 +7295,7 @@
"ru": "Закрыть", "ru": "Закрыть",
"zh": "关闭", "zh": "关闭",
"de": "Schließen", "de": "Schließen",
"es": "Cerrar",
"pl": "Zamknij", "pl": "Zamknij",
"it_IT": "Chiudi", "it_IT": "Chiudi",
"ko": "닫기", "ko": "닫기",
@ -7294,6 +7307,7 @@
"ru": "Закрыть все", "ru": "Закрыть все",
"zh": "全部关闭", "zh": "全部关闭",
"de": "Alle schließen", "de": "Alle schließen",
"es": "Cerrar todo",
"pl": "Zamknij wszystko", "pl": "Zamknij wszystko",
"it_IT": "Chiudi tutto", "it_IT": "Chiudi tutto",
"ko": "모두 닫기", "ko": "모두 닫기",
@ -7305,6 +7319,7 @@
"ru": "Закрыть 1 консоль", "ru": "Закрыть 1 консоль",
"zh": "关闭一个控制台", "zh": "关闭一个控制台",
"de": "1 Konsole schließen", "de": "1 Konsole schließen",
"es": "Cerrar una consola",
"pl": "Zamknij 1 konsole", "pl": "Zamknij 1 konsole",
"it_IT": "Chiudi 1 console", "it_IT": "Chiudi 1 console",
"ko": "1 콘솔 닫기", "ko": "1 콘솔 닫기",
@ -7316,6 +7331,7 @@
"ru": "консоли", "ru": "консоли",
"zh": "控制台", "zh": "控制台",
"de": "Konsolen", "de": "Konsolen",
"es": "consolas",
"pl": "konsole", "pl": "konsole",
"it_IT": "console", "it_IT": "console",
"ko": "콘솔", "ko": "콘솔",
@ -7325,6 +7341,7 @@
"lng_ConfirmCloseBtnGroup": { "lng_ConfirmCloseBtnGroup": {
"en": "Close group of", "en": "Close group of",
"zh": "关闭", "zh": "关闭",
"es": "Cerrar grupo de",
"pl": "Zamknij grupe", "pl": "Zamknij grupe",
"it_IT": "Chiudi gruppo di", "it_IT": "Chiudi gruppo di",
"ko": "그룹 닫기", "ko": "그룹 닫기",
@ -7336,6 +7353,7 @@
"ru": "Подтвердить закрытие активного дочернего окна?", "ru": "Подтвердить закрытие активного дочернего окна?",
"zh": "同意关闭活动的窗口?", "zh": "同意关闭活动的窗口?",
"de": "Das Schließen des aktiven Unterfensters bestätigen?", "de": "Das Schließen des aktiven Unterfensters bestätigen?",
"es": "¿Cerrar la consola hijo activa?",
"pl": "Czy potwierdzić zamknięcie aktywnego okna podrzędnego?", "pl": "Czy potwierdzić zamknięcie aktywnego okna podrzędnego?",
"it_IT": "Conferma chiusura della finestra attiva?", "it_IT": "Conferma chiusura della finestra attiva?",
"ko": "활성 자식 창을 닫으시겠습니까?", "ko": "활성 자식 창을 닫으시겠습니까?",
@ -7347,6 +7365,7 @@
"ru": "Подтвердить закрытие консоли?", "ru": "Подтвердить закрытие консоли?",
"zh": "同意关闭控制台?", "zh": "同意关闭控制台?",
"de": "Wollen Sie die Konsole wirklich schließen?", "de": "Wollen Sie die Konsole wirklich schließen?",
"es": "¿Cerrar consola?",
"pl": "Potwierdź zamknięcie konsoli?", "pl": "Potwierdź zamknięcie konsoli?",
"it_IT": "Conferma chiusura console?", "it_IT": "Conferma chiusura console?",
"ko": "콘솔을 닫으시겠습니까?", "ko": "콘솔을 닫으시겠습니까?",
@ -7358,6 +7377,7 @@
"ru": "Подтвердить закрытие редактора Far?", "ru": "Подтвердить закрытие редактора Far?",
"zh": "同意关闭 Far 编辑器?", "zh": "同意关闭 Far 编辑器?",
"de": "Soll der FAR-Editor geschlossen werden?", "de": "Soll der FAR-Editor geschlossen werden?",
"es": "¿Cerrar editor Far?",
"pl": "Potwierdź zamknięcie edytora Far?", "pl": "Potwierdź zamknięcie edytora Far?",
"it_IT": "Conferma chiusura di editor Far?", "it_IT": "Conferma chiusura di editor Far?",
"ko": "Far 편집기를 닫으시겠습니까?", "ko": "Far 편집기를 닫으시겠습니까?",
@ -7369,6 +7389,7 @@
"ru": "Подтвердить закрытие группы?", "ru": "Подтвердить закрытие группы?",
"zh": "同意关闭?", "zh": "同意关闭?",
"de": "Soll die Gruppe geschlossen werden?", "de": "Soll die Gruppe geschlossen werden?",
"es": "¿Cerrar grupo?",
"pl": "Potwierdzić zamykającą grupę?", "pl": "Potwierdzić zamykającą grupę?",
"it_IT": "Conferma chiusura gruppo?", "it_IT": "Conferma chiusura gruppo?",
"ko": "그룹을 닫으시겠습니까?", "ko": "그룹을 닫으시겠습니까?",
@ -7380,6 +7401,7 @@
"ru": "Подтвердить закрытие Far viewer?", "ru": "Подтвердить закрытие Far viewer?",
"zh": "同意关闭 Far 浏览器?", "zh": "同意关闭 Far 浏览器?",
"de": "Soll der FAR-Viewer geschlossen werden?", "de": "Soll der FAR-Viewer geschlossen werden?",
"es": "¿Cerrar visor Far?",
"pl": "Potwierdzić zamknięcie przeglądarki Far?", "pl": "Potwierdzić zamknięcie przeglądarki Far?",
"it_IT": "Conferma chiusura di visualizzatore Far?", "it_IT": "Conferma chiusura di visualizzatore Far?",
"ko": "Far 뷰어를 닫으시겠습니까?", "ko": "Far 뷰어를 닫으시겠습니까?",
@ -7391,6 +7413,7 @@
"ru": "Подтвердить закрытие?", "ru": "Подтвердить закрытие?",
"zh": "同意关闭?", "zh": "同意关闭?",
"de": "Soll ConEmu geschlossen werden?", "de": "Soll ConEmu geschlossen werden?",
"es": "¿Cerrar?",
"pl": "Potwierdzasz zamknięcie?", "pl": "Potwierdzasz zamknięcie?",
"it_IT": "Conferma chiusura?", "it_IT": "Conferma chiusura?",
"ko": "닫으시겠습니까?", "ko": "닫으시겠습니까?",
@ -7402,6 +7425,7 @@
"ru": "Ничего не закрывать", "ru": "Ничего не закрывать",
"zh": "不关闭任何东西", "zh": "不关闭任何东西",
"de": "Nichts schließen", "de": "Nichts schließen",
"es": "No cerrar nada",
"pl": "Nie zamykaj niczego", "pl": "Nie zamykaj niczego",
"it_IT": "Non chiudere nulla", "it_IT": "Non chiudere nulla",
"ko": "아무것도 닫지 않음", "ko": "아무것도 닫지 않음",
@ -7413,6 +7437,7 @@
"ru": "Незавершенные операции", "ru": "Незавершенные операции",
"zh": "不完整的操作", "zh": "不完整的操作",
"de": "Noch nicht beendete Prozesse", "de": "Noch nicht beendete Prozesse",
"es": "Operaciones sin completar",
"pl": "Niekompletne operacje", "pl": "Niekompletne operacje",
"it_IT": "Operazioni non complete", "it_IT": "Operazioni non complete",
"ko": "불완전한 작업", "ko": "불완전한 작업",
@ -7423,6 +7448,7 @@
"en": "Terminate all but shell processes?", "en": "Terminate all but shell processes?",
"ru": "Завершить все процессы, кроме оболочки?", "ru": "Завершить все процессы, кроме оболочки?",
"zh": "终止除 shell 之外的所有进程?", "zh": "终止除 shell 之外的所有进程?",
"es": "¿Terminar todo excepto los procesos del intérprete de comandos?",
"pl": "Zakończyć wszystkie procesy oprócz procesów powłoki?", "pl": "Zakończyć wszystkie procesy oprócz procesów powłoki?",
"it_IT": "Chiudi tutti i processi non shell?", "it_IT": "Chiudi tutti i processi non shell?",
"ko": "쉘 프로세스를 제외한 모든 프로세스를 종료하시겠습니까?", "ko": "쉘 프로세스를 제외한 모든 프로세스를 종료하시겠습니까?",
@ -7432,6 +7458,7 @@
"lng_ConfirmKillingQ": { "lng_ConfirmKillingQ": {
"en": "Confirm killing?", "en": "Confirm killing?",
"zh": "同意杀死?", "zh": "同意杀死?",
"es": "¿Matar?",
"pl": "Potwierdzasz zabijanie?", "pl": "Potwierdzasz zabijanie?",
"it_IT": "Conferma chiusura forzata?", "it_IT": "Conferma chiusura forzata?",
"ko": "죽이시겠습니까?", "ko": "죽이시겠습니까?",
@ -7443,6 +7470,7 @@
"ru": "Несохраненные окна редактора", "ru": "Несохраненные окна редактора",
"zh": "编辑窗口没有保存", "zh": "编辑窗口没有保存",
"de": "Editor-Fenster mit nicht gespeicherten Änderungen", "de": "Editor-Fenster mit nicht gespeicherten Änderungen",
"es": "Ventanas de editor sin salvar",
"pl": "Niezapisane okna edytora", "pl": "Niezapisane okna edytora",
"it_IT": "Finestre editor non salvate", "it_IT": "Finestre editor non salvate",
"ko": "저장되지 않은 편집기 창", "ko": "저장되지 않은 편집기 창",
@ -7454,6 +7482,7 @@
"ru": "Создать новую консоль", "ru": "Создать новую консоль",
"zh": "创建新控制台", "zh": "创建新控制台",
"de": "Neue Konsole erstellen", "de": "Neue Konsole erstellen",
"es": "Crear nueva consola",
"pl": "Utwórz nową konsolę", "pl": "Utwórz nową konsolę",
"it_IT": "Crea nuova console", "it_IT": "Crea nuova console",
"ko": "새 콘솔 만들기", "ko": "새 콘솔 만들기",
@ -7763,6 +7792,7 @@
"ru": "Развернуть окно", "ru": "Развернуть окно",
"zh": "最大化窗口", "zh": "最大化窗口",
"de": "Fenster maximieren", "de": "Fenster maximieren",
"es": "Maximizar ventana",
"pl": "Maksymalizuj okno", "pl": "Maksymalizuj okno",
"it_IT": "Massimizza finestra", "it_IT": "Massimizza finestra",
"ko": "창 최대화", "ko": "창 최대화",
@ -7774,6 +7804,7 @@
"ru": "О программе / Помощь", "ru": "О программе / Помощь",
"zh": "关于(&a/ 帮助", "zh": "关于(&a/ 帮助",
"de": "Ü&ber / Hilfe", "de": "Ü&ber / Hilfe",
"es": "&Acerca de / Ayuda",
"pl": "& Informacje / Pomoc", "pl": "& Informacje / Pomoc",
"it_IT": "Informazioni / &Aiuto", "it_IT": "Informazioni / &Aiuto",
"ko": "정보/도움말(&A)", "ko": "정보/도움말(&A)",
@ -7784,6 +7815,7 @@
"en": "All task tabs", "en": "All task tabs",
"ru": "Все вкладки задач", "ru": "Все вкладки задач",
"zh": "所有任务标签", "zh": "所有任务标签",
"es": "Todas las pestañas de tareas",
"pl": "Wszystkie zakładki zadań", "pl": "Wszystkie zakładki zadań",
"ko": "모든 작업 탭", "ko": "모든 작업 탭",
"ko_KR": "모든 작업 탭", "ko_KR": "모든 작업 탭",
@ -7794,6 +7826,7 @@
"ru": "Всегда сверху", "ru": "Всегда сверху",
"zh": "置顶(%w", "zh": "置顶(%w",
"de": "Immer im &Vordergrund", "de": "Immer im &Vordergrund",
"es": "Siempre encima",
"pl": "Za&wsze na górze", "pl": "Za&wsze na górze",
"it_IT": "Sempre in primo piano", "it_IT": "Sempre in primo piano",
"ko": "항상 맨 위에(&W)", "ko": "항상 맨 위에(&W)",
@ -7805,6 +7838,7 @@
"ru": "Прикрепить к...", "ru": "Прикрепить к...",
"zh": "附上...", "zh": "附上...",
"de": "Anderes Fenster ankoppeln...", "de": "Anderes Fenster ankoppeln...",
"es": "Fijar a...",
"pl": "Dołączyć do...", "pl": "Dołączyć do...",
"it_IT": "Collegati a...", "it_IT": "Collegati a...",
"ko": "첨부...", "ko": "첨부...",
@ -7815,6 +7849,7 @@
"en": "Auto scro&ll", "en": "Auto scro&ll",
"ru": "Автопрокрутка", "ru": "Автопрокрутка",
"zh": "自动滚动(&l", "zh": "自动滚动(&l",
"es": "Desplazamiento automático",
"pl": "Auto Scro&ll", "pl": "Auto Scro&ll",
"it_IT": "Scorrimento automatico", "it_IT": "Scorrimento automatico",
"ko": "자동 스크롤(&L)", "ko": "자동 스크롤(&L)",
@ -7825,6 +7860,7 @@
"en": "Bring &here", "en": "Bring &here",
"zh": "移动到这里(&H)", "zh": "移动到这里(&H)",
"de": "Auf aktiven Bildschirm verschieben", "de": "Auf aktiven Bildschirm verschieben",
"es": "Traer aquí",
"pl": "Przynieś &tutaj", "pl": "Przynieś &tutaj",
"ko": "여기로 가져오기(&H)", "ko": "여기로 가져오기(&H)",
"ko_KR": "여기로 가져오기(&H)", "ko_KR": "여기로 가져오기(&H)",
@ -7835,6 +7871,7 @@
"ru": "Сходство / приоритет...", "ru": "Сходство / приоритет...",
"zh": "关系和优先级(&F)...", "zh": "关系和优先级(&F)...",
"de": "Prozessor-&Zuordnung/Priorität", "de": "Prozessor-&Zuordnung/Priorität",
"es": "Afinidad/prioridad",
"pl": "A&ffinity/ priorytet ...", "pl": "A&ffinity/ priorytet ...",
"it_IT": "A&ffinità/priorità...", "it_IT": "A&ffinità/priorità...",
"ko": "선호도/우선 순위(&F)...", "ko": "선호도/우선 순위(&F)...",
@ -7846,6 +7883,7 @@
"ru": "Проверить обновления", "ru": "Проверить обновления",
"zh": "更新(&c", "zh": "更新(&c",
"de": "Auf neue &Version prüfen", "de": "Auf neue &Version prüfen",
"es": "&Comprobar actualizaciones",
"pl": "&Sprawdź aktualizacje", "pl": "&Sprawdź aktualizacje",
"it_IT": "Controlla &aggiornamenti", "it_IT": "Controlla &aggiornamenti",
"ko": "업데이트 확인(&C)", "ko": "업데이트 확인(&C)",
@ -7857,6 +7895,7 @@
"ru": "Дочернее системное меню...", "ru": "Дочернее системное меню...",
"zh": "系统子菜单...", "zh": "系统子菜单...",
"de": "Systemmenü des eingebetteten Fensters...", "de": "Systemmenü des eingebetteten Fensters...",
"es": "Menú del sistema hijo...",
"pl": "Menu systemowe dla dzieci ...", "pl": "Menu systemowe dla dzieci ...",
"ko": "자식 시스템 메뉴...", "ko": "자식 시스템 메뉴...",
"ko_KR": "자식 시스템 메뉴...", "ko_KR": "자식 시스템 메뉴...",
@ -7867,6 +7906,7 @@
"ru": "Очистить историю...", "ru": "Очистить историю...",
"zh": "清除日志...", "zh": "清除日志...",
"de": "Verlauf leeren...", "de": "Verlauf leeren...",
"es": "Borrar historial...",
"pl": "Czysta historia...", "pl": "Czysta historia...",
"it_IT": "Pulisci cronologia...", "it_IT": "Pulisci cronologia...",
"ko": "사용 내역 지우기...", "ko": "사용 내역 지우기...",
@ -7878,6 +7918,7 @@
"ru": "Закрыть консоль", "ru": "Закрыть консоль",
"zh": "关闭控制台(&c...", "zh": "关闭控制台(&c...",
"de": "Konsole s&chließen", "de": "Konsole s&chließen",
"es": "&Cerrar consola",
"pl": "&Zamknij konsolę", "pl": "&Zamknij konsolę",
"it_IT": "&Chiudi console", "it_IT": "&Chiudi console",
"ko": "콘솔 닫기(&C)", "ko": "콘솔 닫기(&C)",
@ -7889,6 +7930,7 @@
"ru": "Закрыть группу вкладок", "ru": "Закрыть группу вкладок",
"zh": "关闭标签组(&c", "zh": "关闭标签组(&c",
"de": "Reiter-Gruppe s&chließen", "de": "Reiter-Gruppe s&chließen",
"es": "&Cerrar grupo de pestañas",
"pl": "&Zamknij grupę kart", "pl": "&Zamknij grupę kart",
"it_IT": "&Chiudi gruppo di schede", "it_IT": "&Chiudi gruppo di schede",
"ko": "탭 그룹 닫기(&C)", "ko": "탭 그룹 닫기(&C)",
@ -7900,6 +7942,7 @@
"ru": "Закрыть вкладку", "ru": "Закрыть вкладку",
"zh": "关闭标签(&c", "zh": "关闭标签(&c",
"de": "Reiter s&chließen", "de": "Reiter s&chließen",
"es": "&Cerrar pestaña",
"pl": "&Zamknij karte", "pl": "&Zamknij karte",
"it_IT": "&Chiudi scheda", "it_IT": "&Chiudi scheda",
"ko": "탭 닫기(&C)", "ko": "탭 닫기(&C)",
@ -7911,6 +7954,7 @@
"ru": "Копировать", "ru": "Копировать",
"zh": "复制(&y", "zh": "复制(&y",
"de": "&Kopieren", "de": "&Kopieren",
"es": "Copiar",
"pl": "Kopiu&j", "pl": "Kopiu&j",
"it_IT": "Cop&ia", "it_IT": "Cop&ia",
"ko": "복사(&Y)", "ko": "복사(&Y)",
@ -7922,6 +7966,7 @@
"ru": "Копировать все", "ru": "Копировать все",
"zh": "复制全部(&a", "zh": "复制全部(&a",
"de": "&Alles kopieren", "de": "&Alles kopieren",
"es": "Copiar todo",
"pl": "Kopiuj &wszystko", "pl": "Kopiuj &wszystko",
"it_IT": "Copi&a tutto", "it_IT": "Copi&a tutto",
"ko": "모두 복사(&A)", "ko": "모두 복사(&A)",
@ -7933,6 +7978,7 @@
"ru": "Только обычный текст", "ru": "Только обычный текст",
"zh": "纯文字(&t", "zh": "纯文字(&t",
"de": "Nur &Text kopieren", "de": "Nur &Text kopieren",
"es": "Sólo texto plano",
"pl": "Zwykły &tylko tekst", "pl": "Zwykły &tylko tekst",
"it_IT": "Solo &testo semplice", "it_IT": "Solo &testo semplice",
"ko": "일반 텍스트만(&T)", "ko": "일반 텍스트만(&T)",
@ -7944,6 +7990,7 @@
"ru": "Копировать в HTML-формате", "ru": "Копировать в HTML-формате",
"zh": "复制 &HTML 格式", "zh": "复制 &HTML 格式",
"de": "Im &HTML-Format kopieren", "de": "Im &HTML-Format kopieren",
"es": "Copiar formato HTML",
"pl": "Kopiuj &Format HTML", "pl": "Kopiuj &Format HTML",
"it_IT": "Copia formato &HTML", "it_IT": "Copia formato &HTML",
"ko": "HTML 형식 복사(&H)", "ko": "HTML 형식 복사(&H)",
@ -7955,6 +8002,7 @@
"ru": "Копировать как HTML", "ru": "Копировать как HTML",
"zh": "复制成 HTML&s", "zh": "复制成 HTML&s",
"de": "Al&s HTML-Quelltext kopieren", "de": "Al&s HTML-Quelltext kopieren",
"es": "Copiar como HTML",
"pl": "Kopiuj plik& HTML", "pl": "Kopiuj plik& HTML",
"it_IT": "Copia co&me HTML", "it_IT": "Copia co&me HTML",
"ko": "HTML로 복사(&S)", "ko": "HTML로 복사(&S)",
@ -7966,6 +8014,7 @@
"ru": "Последовательности ANSI", "ru": "Последовательности ANSI",
"zh": "A&NSI 序列", "zh": "A&NSI 序列",
"de": "Text mit A&NSI-Sequenzen kopieren", "de": "Text mit A&NSI-Sequenzen kopieren",
"es": "Secuencias ANSI",
"pl": "A&NSI sekwencje", "pl": "A&NSI sekwencje",
"it_IT": "Sequenze A&NSI", "it_IT": "Sequenze A&NSI",
"ko": "ANSI 시퀀스(&N)", "ko": "ANSI 시퀀스(&N)",
@ -7977,6 +8026,7 @@
"ru": "Найти текст...", "ru": "Найти текст...",
"zh": "搜索(&f", "zh": "搜索(&f",
"de": "Text s&uchen...", "de": "Text s&uchen...",
"es": "Buscar texto",
"pl": "&Znajdź tekst...", "pl": "&Znajdź tekst...",
"it_IT": "&Trova testo...", "it_IT": "&Trova testo...",
"ko": "텍스트 찾기(&F)...", "ko": "텍스트 찾기(&F)...",
@ -7988,6 +8038,7 @@
"ru": "Отметить блок", "ru": "Отметить блок",
"zh": "标记块(&b", "zh": "标记块(&b",
"de": "&Bereich markieren", "de": "&Bereich markieren",
"es": "Marcar bloque",
"pl": "Zaznacz &zablokuj", "pl": "Zaznacz &zablokuj",
"ko": "블록 표시(&B)", "ko": "블록 표시(&B)",
"ko_KR": "블록 표시(&B)", "ko_KR": "블록 표시(&B)",
@ -7998,6 +8049,7 @@
"ru": "Отметить текст", "ru": "Отметить текст",
"zh": "标记文字(&k", "zh": "标记文字(&k",
"de": "Text mar&kieren", "de": "Text mar&kieren",
"es": "Marcar texto",
"pl": "Zaznacz tekst", "pl": "Zaznacz tekst",
"ko": "텍스트 표시(&K)", "ko": "텍스트 표시(&K)",
"ko_KR": "텍스트 표시(&K)", "ko_KR": "텍스트 표시(&K)",
@ -8008,6 +8060,7 @@
"ru": "Вставить", "ru": "Вставить",
"zh": "粘贴(&p", "zh": "粘贴(&p",
"de": "&Einfügen", "de": "&Einfügen",
"es": "&Pegar",
"pl": "&Wklej", "pl": "&Wklej",
"it_IT": "&Incolla", "it_IT": "&Incolla",
"ko": "붙여넣기(&P)", "ko": "붙여넣기(&P)",
@ -8019,6 +8072,7 @@
"ru": "Свойства...", "ru": "Свойства...",
"zh": "属性(&p", "zh": "属性(&p",
"de": "&Fenster-Eigenschaften...", "de": "&Fenster-Eigenschaften...",
"es": "&Propiedades...",
"pl": "&Posiadłość", "pl": "&Posiadłość",
"it_IT": "&Proprietà...", "it_IT": "&Proprietà...",
"ko": "속성(&P)...", "ko": "속성(&P)...",
@ -8030,6 +8084,7 @@
"ru": "Настоящая консоль", "ru": "Настоящая консоль",
"zh": "真实控制台(&R)", "zh": "真实控制台(&R)",
"de": "&Echtes Konsolenfenster anzeigen", "de": "&Echtes Konsolenfenster anzeigen",
"es": "Consola real",
"pl": "&Prawdziwa konsola", "pl": "&Prawdziwa konsola",
"it_IT": "Console &reale", "it_IT": "Console &reale",
"ko": "실제 콘솔(&R)", "ko": "실제 콘솔(&R)",
@ -8041,6 +8096,7 @@
"ru": "Отладка активного процесса...", "ru": "Отладка активного процесса...",
"zh": "调试活动的进程...&a", "zh": "调试活动的进程...&a",
"de": "&Aktiven Prozess untersuchen...", "de": "&Aktiven Prozess untersuchen...",
"es": "Depurar proceso activo...",
"pl": "Debugowanie &aktywny proces.", "pl": "Debugowanie &aktywny proces.",
"it_IT": "Debug processi &attivi...", "it_IT": "Debug processi &attivi...",
"ko": "활성 프로세스 디버그(&A)...", "ko": "활성 프로세스 디버그(&A)...",
@ -8052,6 +8108,7 @@
"ru": "Показать утверждение", "ru": "Показать утверждение",
"zh": "显示断言", "zh": "显示断言",
"de": "Fehlermeldung anzeigen", "de": "Fehlermeldung anzeigen",
"es": "Mostrar sentencia",
"pl": "Pokaż potwierdzenie", "pl": "Pokaż potwierdzenie",
"it_IT": "Mostra asserzione", "it_IT": "Mostra asserzione",
"ko": "주장 표시", "ko": "주장 표시",
@ -8063,6 +8120,7 @@
"ru": "Журнал отладки", "ru": "Журнал отладки",
"zh": "调试日志GUI", "zh": "调试日志GUI",
"de": "Protokoll für Feh&lersuche (GUI)", "de": "Protokoll für Feh&lersuche (GUI)",
"es": "Depurar traza (GUI)",
"pl": "Debug &log (GUI)", "pl": "Debug &log (GUI)",
"it_IT": "&Log debug (GUI)", "it_IT": "&Log debug (GUI)",
"ko": "디버그 로그 (GUI)(&L) ", "ko": "디버그 로그 (GUI)(&L) ",

View File

@ -20,7 +20,22 @@ https://conemu.github.io/en/Whats_New.html
------------------------------------------- -------------------------------------------
2022.8.7 2023.7.24
* gh-2536: Do not emit control characters in title reports (capability fix).
* l10n: translations were updated
2023.7.23
* gh-2536: Do not emit control characters in title reports.
2022.12.18 (stable)
* Fix Window Title Reporting security issue.
More info: https://seclists.org/fulldisclosure/2003/Feb/341
* gh-2458: Preliminary support of Far3 experimental feature 'Fullwidth-aware rendering' temporarily removed.
2022.8.7 (alpha)
* gh-2458: Preliminary support of Far3 experimental feature 'Fullwidth-aware rendering'. * gh-2458: Preliminary support of Far3 experimental feature 'Fullwidth-aware rendering'.
* l10n: translations were updated * l10n: translations were updated
* New binaries are signed with new certificate issued by Sectigo. * New binaries are signed with new certificate issued by Sectigo.

5
SECURITY.md Normal file
View File

@ -0,0 +1,5 @@
# Security Policy
## Reporting a Vulnerability
Please report security issues to `ConEmu.Maximus5@gmail.com`

View File

@ -8,6 +8,13 @@ trigger:
include: include:
- master - master
- daily - daily
paths:
exclude:
- '**/*.md'
- '*.md'
- '**/*.txt'
- '*.txt'
- .github/workflows/codeql-analysis.yml
pool: pool:
vmImage: 'windows-2019' vmImage: 'windows-2019'

View File

@ -3,7 +3,7 @@
<metadata> <metadata>
<id>ConEmu.Core</id> <id>ConEmu.Core</id>
<version>22.8.7.0</version> <version>23.7.24.0</version>
<title>ConEmu.Core</title> <title>ConEmu.Core</title>
<authors>Maximus5</authors> <authors>Maximus5</authors>
<owners>Maximus5</owners> <owners>Maximus5</owners>

View File

@ -3,7 +3,7 @@
<metadata> <metadata>
<id>ConEmu</id> <id>ConEmu</id>
<version>22.8.7.0</version> <version>23.7.24.0</version>
<title>ConEmu</title> <title>ConEmu</title>
<authors>Maximus5</authors> <authors>Maximus5</authors>
<owners>Maximus5</owners> <owners>Maximus5</owners>

View File

@ -1,6 +1,6 @@
$package = 'ConEmu' $package = 'ConEmu'
$version = '22.08.07' $version = '23.07.24'
$sha256 = 'E0ADFD2FFBEB44C9125A626AD600CCFBDEACBBA0624DF37D2DDD6C6D27D8D578' $sha256 = '2A56EDD5515DDD916410DE3D84E00069CE07566B2F81C612A4241A8B109D7F4C'
$isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and ` $isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and `
($Env:PROCESSOR_ARCHITEW6432 -eq $null)) ($Env:PROCESSOR_ARCHITEW6432 -eq $null))

View File

@ -1,5 +1,5 @@
$package = 'ConEmu' $package = 'ConEmu'
$version = '22.08.07' $version = '23.07.24'
$isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and ` $isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and `

View File

@ -157,7 +157,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//#define CONEMU_ANIMATE_DURATION_MAX 5000 //#define CONEMU_ANIMATE_DURATION_MAX 5000
const wchar_t* gsHomePage = CEHOMEPAGE; //L"https://conemu.github.io"; const wchar_t* gsHomePage = CEHOMEPAGE; //L"https://conemu.github.io";
const wchar_t* gsDownlPage = CEDOWNLPAGE; //L"https://www.fosshub.com/ConEmu.html"; const wchar_t* gsDownlPage = CEDOWNLPAGE; //L"https://conemu.github.io/en/Downloads.html";
const wchar_t* gsFirstStart = CEFIRSTSTART; //L"https://conemu.github.io/en/SettingsFast.html"; const wchar_t* gsFirstStart = CEFIRSTSTART; //L"https://conemu.github.io/en/SettingsFast.html";
const wchar_t* gsReportBug = CEREPORTBUG; //L"https://conemu.github.io/en/Issues.html"; const wchar_t* gsReportBug = CEREPORTBUG; //L"https://conemu.github.io/en/Issues.html";
const wchar_t* gsReportCrash = CEREPORTCRASH; //L"https://conemu.github.io/en/Issues.html"; const wchar_t* gsReportCrash = CEREPORTCRASH; //L"https://conemu.github.io/en/Issues.html";
@ -2610,6 +2610,18 @@ CConEmuMain::~CConEmuMain()
} }
#endif #endif
void CConEmuMain::AskChangeTermMode()
{
CVConGuard VCon;
if (GetActiveVCon(&VCon) < 0)
return;
CVirtualConsole *pVCon = VCon.VCon();
CRealConsole *pRCon = pVCon->RCon();
if (!pRCon) return;
pRCon ->StartStopTermMode(tmc_TerminalType, cta_Switch);
}
void CConEmuMain::AskChangeBufferHeight() void CConEmuMain::AskChangeBufferHeight()
{ {
CVConGuard VCon; CVConGuard VCon;

View File

@ -597,6 +597,7 @@ class CConEmuMain
int ActiveConNum(); // 0-based int ActiveConNum(); // 0-based
int GetConCount(); // количество открытых консолей int GetConCount(); // количество открытых консолей
void AskChangeBufferHeight(); void AskChangeBufferHeight();
void AskChangeTermMode();
void AskChangeAlternative(); void AskChangeAlternative();
void AttachToDialog(); void AttachToDialog();
void CheckFocus(LPCWSTR asFrom); void CheckFocus(LPCWSTR asFrom);

View File

@ -525,6 +525,14 @@ bool CConEmuCtrl::key_MultiBuffer(const ConEmuChord& VkState, bool TestOnly, con
return true; return true;
} }
// pRCon may be nullptr
bool CConEmuCtrl::key_SwitchTermMode(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon)
{
if (TestOnly)
return true;
gpConEmu->AskChangeTermMode();
return true;
}
// pRCon may be nullptr // pRCon may be nullptr
bool CConEmuCtrl::key_DuplicateRoot(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon) bool CConEmuCtrl::key_DuplicateRoot(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon)
{ {

View File

@ -106,6 +106,7 @@ public:
static bool WINAPI key_MultiRecreate(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon); static bool WINAPI key_MultiRecreate(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon);
static bool WINAPI key_AlternativeBuffer(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon); static bool WINAPI key_AlternativeBuffer(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon);
static bool WINAPI key_MultiBuffer(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon); static bool WINAPI key_MultiBuffer(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon);
static bool WINAPI key_SwitchTermMode(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon);
static bool WINAPI key_DuplicateRoot(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon); static bool WINAPI key_DuplicateRoot(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon);
static bool WINAPI key_DuplicateRootAs(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon); static bool WINAPI key_DuplicateRootAs(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon);
static bool WINAPI key_MultiCmd(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon); static bool WINAPI key_MultiCmd(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon);

View File

@ -539,7 +539,7 @@ bool CheckLockFrequentExecute(DWORD& Tick, DWORD Interval);
#define LockFrequentExecuteStatic(Interval) static DWORD LastExecuteTick; if (CheckLockFrequentExecute(LastExecuteTick,Interval)) #define LockFrequentExecuteStatic(Interval) static DWORD LastExecuteTick; if (CheckLockFrequentExecute(LastExecuteTick,Interval))
extern const wchar_t* gsHomePage; // = L"https://conemu.github.io"; extern const wchar_t* gsHomePage; // = L"https://conemu.github.io";
extern const wchar_t* gsDownlPage; // = L"http://www.fosshub.com/ConEmu.html"; extern const wchar_t* gsDownlPage; // = L"https://conemu.github.io/en/Downloads.html";
extern const wchar_t* gsFirstStart; // = L"https://conemu.github.io/en/SettingsFast.html"; extern const wchar_t* gsFirstStart; // = L"https://conemu.github.io/en/SettingsFast.html";
extern const wchar_t* gsReportBug; // = L"https://conemu.github.io/en/Issues.html"; extern const wchar_t* gsReportBug; // = L"https://conemu.github.io/en/Issues.html";
extern const wchar_t* gsReportCrash; // = L"https://conemu.github.io/en/Issues.html"; extern const wchar_t* gsReportCrash; // = L"https://conemu.github.io/en/Issues.html";

View File

@ -311,6 +311,8 @@ int ConEmuHotKeyList::AllocateHotkeys()
.SetHotKey(VK_PAUSE); .SetHotKey(VK_PAUSE);
Add(vkMultiBuffer, chk_User, L"Multi.Scroll", CConEmuCtrl::key_MultiBuffer) Add(vkMultiBuffer, chk_User, L"Multi.Scroll", CConEmuCtrl::key_MultiBuffer)
; ;
Add(vkSwitchTermMode, chk_User, L"Multi.SwitchTermMode", CConEmuCtrl::key_SwitchTermMode)
.SetHotKey('M',VK_CONTROL,VK_SHIFT);
Add(vkMultiGroup, chk_User, L"Multi.GroupInput" ).SetMacro(L"GroupInput(0)") Add(vkMultiGroup, chk_User, L"Multi.GroupInput" ).SetMacro(L"GroupInput(0)")
.SetHotKey('G', VK_APPS); .SetHotKey('G', VK_APPS);
Add(vkMultiGroupAll, chk_User, L"Multi.GroupInputAll" ).SetMacro(L"GroupInput(3)") Add(vkMultiGroupAll, chk_User, L"Multi.GroupInputAll" ).SetMacro(L"GroupInput(3)")

View File

@ -408,6 +408,7 @@ static LngPredefined gsDataHints[] = {
{ vkMoveTabRight, L"Move active tab rightward" }, { vkMoveTabRight, L"Move active tab rightward" },
{ vkMultiAltCon, L"Show alternative console buffer (last command output)" }, { vkMultiAltCon, L"Show alternative console buffer (last command output)" },
{ vkMultiBuffer, L"Switch bufferheight mode" }, { vkMultiBuffer, L"Switch bufferheight mode" },
{ vkSwitchTermMode, L"Switch Terminal Input Mode" },
{ vkMultiClose, L"Close active console" }, { vkMultiClose, L"Close active console" },
{ vkMultiCmd, L"Create new %s console" }, { vkMultiCmd, L"Create new %s console" },
{ vkMultiGroup, L"Group keyboard input for visible splits" }, { vkMultiGroup, L"Group keyboard input for visible splits" },

View File

@ -44,11 +44,11 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define szRetryVersionIniCheck \ #define szRetryVersionIniCheck \
L"ConEmu is unable to load current version information from servers.\n" \ L"ConEmu is unable to load current version information from servers.\n" \
L"You may either check and download new versions manually from\n" \ L"You may either check and download new versions manually from\n" \
CEDOWNLPAGE /* http://www.fosshub.com/ConEmu.html */ L"\n" \ CEDOWNLPAGE /* https://conemu.github.io/en/Downloads.html */ L"\n" \
L"or let ConEmu retry the check.\n" L"or let ConEmu retry the check.\n"
#define szRetryPackageDownload \ #define szRetryPackageDownload \
L"ConEmu is unable to download update package.\n" \ L"ConEmu is unable to download update package.\n" \
L"You may either download new versions manually from\n" \ L"You may either download new versions manually from\n" \
CEDOWNLPAGE /* http://www.fosshub.com/ConEmu.html */ L"\n" \ CEDOWNLPAGE /* https://conemu.github.io/en/Downloads.html */ L"\n" \
L"or let ConEmu retry the downloading.\n" L"or let ConEmu retry the downloading.\n"

View File

@ -431,8 +431,6 @@ bool CVConLine::ParseLine(bool abForce, unsigned anTextWidth, unsigned anFontWid
const bool bEnhanceGraphics = gpSet->isEnhanceGraphics; const bool bEnhanceGraphics = gpSet->isEnhanceGraphics;
const bool bUseAlternativeFont = _bool(gpSet->isFixFarBorders); const bool bUseAlternativeFont = _bool(gpSet->isFixFarBorders);
int cjkShift = 0;
for (unsigned j = 0; j < TextWidth;) for (unsigned j = 0; j < TextWidth;)
{ {
bool bPair = ((j+1) < TextWidth); bool bPair = ((j+1) < TextWidth);
@ -444,7 +442,7 @@ bool CVConLine::ParseLine(bool abForce, unsigned anTextWidth, unsigned anFontWid
VConTextPart* p = TextParts+(PartsCount++); VConTextPart* p = TextParts+(PartsCount++);
//TODO: DBCS cell number, it may differ from j //TODO: DBCS cell number, it may differ from j
p->Init(j, j + cjkShift, this); p->Init(j, j, this);
// Process Far Dialogs to justify rectangles and frames // Process Far Dialogs to justify rectangles and frames
TextPartFlags dlgBorder = j ? isDialogBorderCoord(j) : TRF_None; TextPartFlags dlgBorder = j ? isDialogBorderCoord(j) : TRF_None;
@ -550,8 +548,6 @@ bool CVConLine::ParseLine(bool abForce, unsigned anTextWidth, unsigned anFontWid
while ((j2 < TextWidth) && (ConAttrLine[j2] == attr) && isCharCJK(ConCharLine[j2])) while ((j2 < TextWidth) && (ConAttrLine[j2] == attr) && isCharCJK(ConCharLine[j2]))
j2++; j2++;
} }
if (!bPair)
cjkShift += (j2 - j);
} }
else if (bUseAlternativeFont && isCharAltFont(wc)) else if (bUseAlternativeFont && isCharAltFont(wc))
{ {
@ -593,26 +589,6 @@ bool CVConLine::ParseLine(bool abForce, unsigned anTextWidth, unsigned anFontWid
j = j2; j = j2;
} }
// We have trailing spaces at the end of console line if it contains flags
// COMMON_LVB_LEADING_BYTE & COMMON_LVB_TRAILING_BYTE. That means RealConsole
// assigned two real cells per one CJK (doublespace char).
// Let's try to crop silently these spaces
for (int cut = cjkShift; cut > 0 && PartsCount > 0;)
{
auto& lastPart = TextParts[PartsCount - 1];
if ((lastPart.Flags & (TRF_SizeFree|TRF_TextSpacing)) != (TRF_SizeFree|TRF_TextSpacing))
{
break;
}
if (lastPart.Length > static_cast<unsigned>(cut))
{
lastPart.Length -= cut;
break;
}
cut -= static_cast<int>(lastPart.Length);
--PartsCount;
}
return true; return true;
} }

View File

@ -162,6 +162,7 @@ protected:
protected: protected:
friend struct VConTextPart; friend struct VConTextPart;
// Members // Members
CRealConsole* mp_RCon;
// This corresponds to "dialogs" - regions framed with preudographics // This corresponds to "dialogs" - regions framed with preudographics
int mn_DialogsCount; int mn_DialogsCount;

View File

@ -1352,6 +1352,7 @@
#define stStartupShellGeneral 3110 #define stStartupShellGeneral 3110
#define tFarHourglass 3111 #define tFarHourglass 3111
#define vkSetFocusParent 3212 #define vkSetFocusParent 3212
#define vkSwitchTermMode 3220
#define IDC_STATIC -1 #define IDC_STATIC -1
// Next default values for new objects // Next default values for new objects

View File

@ -1,7 +1,7 @@
// 220807 // 230724
#define MVV_1 22 #define MVV_1 23
#define MVV_2 8 #define MVV_2 7
#define MVV_3 7 #define MVV_3 24
#define MVV_4 0 #define MVV_4 0
#define MVV_4a "" #define MVV_4a ""
#undef MVV_git #undef MVV_git

View File

@ -4,4 +4,4 @@
#define CEVS_PREVIEW 1 #define CEVS_PREVIEW 1
#define CEVS_ALPHA 2 #define CEVS_ALPHA 2
#define ConEmuVersionStage CEVS_ALPHA #define ConEmuVersionStage CEVS_STABLE

View File

@ -985,10 +985,11 @@ bool SrvAnsiImpl::ReportString(LPCWSTR asRet)
LPCWSTR pc = asRet; LPCWSTR pc = asRet;
for (int i = 0; i < nLen; i++, p++, pc++) for (int i = 0; i < nLen; i++, p++, pc++)
{ {
const char ch = (*pc == 0x1B || *pc >= 0x20) ? *pc : L' ';
p->EventType = KEY_EVENT; p->EventType = KEY_EVENT;
p->Event.KeyEvent.bKeyDown = TRUE; p->Event.KeyEvent.bKeyDown = TRUE;
p->Event.KeyEvent.wRepeatCount = 1; p->Event.KeyEvent.wRepeatCount = 1;
p->Event.KeyEvent.uChar.UnicodeChar = *pc; p->Event.KeyEvent.uChar.UnicodeChar = ch;
} }
DumpKnownEscape(asRet, nLen, SrvAnsi::de_Report); DumpKnownEscape(asRet, nLen, SrvAnsi::de_Report);
@ -1298,13 +1299,15 @@ CSI P s @ Insert P s (Blank) Character(s) (default = 1) (ICH)
switch (Code.Action) // case sensitive switch (Code.Action) // case sensitive
{ {
case L's': case L's':
// Save cursor position (can not be nested) if (Code.PvtLen == 0)
XTermSaveRestoreCursor(true); // Save cursor position (can not be nested)
XTermSaveRestoreCursor(true);
break; break;
case L'u': case L'u':
// Restore cursor position if (Code.PvtLen == 0)
XTermSaveRestoreCursor(false); // Restore cursor position
XTermSaveRestoreCursor(false);
break; break;
case L'H': // Set cursor position (1-based) case L'H': // Set cursor position (1-based)
@ -2473,4 +2476,3 @@ void SrvAnsiImpl::XTermAltBuffer(bool bSetAltBuffer/*, condata::TablePtr& table*
} }
} }

View File

@ -1032,12 +1032,7 @@ BOOL WINAPI ReadOutput(FAR_CHAR_INFO* Buffer, COORD BufferSize, COORD BufferCoor
break; break;
} }
FAR_CHAR_INFO chr{}; FAR_CHAR_INFO chr = {lbRead ? pc->Char.UnicodeChar : L' '};
if (lbRead)
{
chr.Char = pc->Char.UnicodeChar;
chr.Attributes.Flags = pc->Attributes & 0xFF00;
}
if (pTrueColor && pTrueColor >= pTrueColorEnd) if (pTrueColor && pTrueColor >= pTrueColorEnd)
{ {
@ -1285,7 +1280,7 @@ BOOL WINAPI WriteOutput(const FAR_CHAR_INFO* Buffer, COORD BufferSize, COORD Buf
} }
n |= (Flags & 0xFF00);
pc->Attributes = n; pc->Attributes = n;
if (pTrueColor) if (pTrueColor)

View File

@ -2505,10 +2505,11 @@ BOOL CEAnsi::ReportString(LPCWSTR asRet)
LPCWSTR pc = asRet; LPCWSTR pc = asRet;
for (size_t i = 0; i < nLen; i++, p++, pc++) for (size_t i = 0; i < nLen; i++, p++, pc++)
{ {
const char ch = (*pc == 0x1B || *pc >= 0x20) ? *pc : L' ';
p->EventType = KEY_EVENT; p->EventType = KEY_EVENT;
p->Event.KeyEvent.bKeyDown = TRUE; p->Event.KeyEvent.bKeyDown = TRUE;
p->Event.KeyEvent.wRepeatCount = 1; p->Event.KeyEvent.wRepeatCount = 1;
p->Event.KeyEvent.uChar.UnicodeChar = *pc; p->Event.KeyEvent.uChar.UnicodeChar = ch;
} }
DumpKnownEscape(asRet, nLen, de_Report); DumpKnownEscape(asRet, nLen, de_Report);

View File

@ -1,5 +1,5 @@
#define CONEMUVERN 22,8,7,0 #define CONEMUVERN 23,7,24,0
#define CONEMUVERS "220807" #define CONEMUVERS "230724"
#define CONEMUVERL L"220807" #define CONEMUVERL L"230724"
#define MSI86 "../ConEmu.220807.x86.msi" #define MSI86 "../ConEmu.230724.x86.msi"
#define MSI64 "../ConEmu.220807.x64.msi" #define MSI64 "../ConEmu.230724.x64.msi"

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Include> <Include>
<?define Version = '$(var.MajorVersion).220.8070' ?> <?define Version = '$(var.MajorVersion).230.7240' ?>
<?define ConEmuVerS = '220807.$(var.Platform)' ?> <?define ConEmuVerS = '230724.$(var.Platform)' ?>
</Include> </Include>

View File

@ -125,7 +125,7 @@ typedef struct _CONSOLE_SELECTION_INFO
#define CEHOMEPAGE_A "https://conemu.github.io/" #define CEHOMEPAGE_A "https://conemu.github.io/"
#define CEHOMEPAGE _CRT_WIDE(CEHOMEPAGE_A) #define CEHOMEPAGE _CRT_WIDE(CEHOMEPAGE_A)
#define CEDOWNLPAGE L"https://www.fosshub.com/ConEmu.html" #define CEDOWNLPAGE L"https://conemu.github.io/en/Downloads.html"
#define CEFLATTRPAGE L"http://flattr.com/thing/2002773/Maximus5ConEmu-on-GitHub" #define CEFLATTRPAGE L"http://flattr.com/thing/2002773/Maximus5ConEmu-on-GitHub"
#define CEDONATEPAGE L"https://conemu.github.io/donate.html" #define CEDONATEPAGE L"https://conemu.github.io/donate.html"
#define CEWIKIBASE L"https://conemu.github.io/en/" #define CEWIKIBASE L"https://conemu.github.io/en/"

View File

@ -101,9 +101,6 @@ bool SearchAppPaths(LPCWSTR asFilePath, CEStr& rsFound, const bool abSetPath, CE
rsFound.Set(pszPath); rsFound.Set(pszPath);
bFound = true; bFound = true;
if (pszCheck != szVal)
free(pszCheck);
// The program may require additional "%PATH%". So, if allowed... // The program may require additional "%PATH%". So, if allowed...
if (abSetPath) if (abSetPath)
{ {

File diff suppressed because it is too large Load Diff