mirror of
https://github.com/Maximus5/ConEmu.git
synced 2025-05-08 16:52:10 +08:00
Compare commits
25 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c8cebb921e | ||
![]() |
c5bf0fc82d | ||
![]() |
a06265da2a | ||
![]() |
389f78f20d | ||
![]() |
740b09c363 | ||
![]() |
90f76807d5 | ||
![]() |
bd4489e48b | ||
![]() |
bf2f25300c | ||
![]() |
dead3d3fc5 | ||
![]() |
b12b8f1771 | ||
![]() |
60683a1866 | ||
![]() |
36e157153b | ||
![]() |
d2d65e5e5a | ||
![]() |
0fd8b5c879 | ||
![]() |
8b88630383 | ||
![]() |
6736006a50 | ||
![]() |
51b8731c49 | ||
![]() |
3c6e8f29d2 | ||
![]() |
457752fabb | ||
![]() |
1dc80e9202 | ||
![]() |
03c48ab024 | ||
![]() |
a5620b3f13 | ||
![]() |
b38f2b4456 | ||
![]() |
cd9bb86360 | ||
![]() |
b57048d6c5 |
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -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?
|
||||
|
||||
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;
|
||||
|
4
.github/workflows/codeql-analysis.yml
vendored
4
.github/workflows/codeql-analysis.yml
vendored
@ -11,6 +11,10 @@ on:
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [master, daily]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.txt'
|
||||
- azure-pipelines.yml
|
||||
schedule:
|
||||
- cron: '0 0 * * 2'
|
||||
|
||||
|
2
Deploy/.gitignore
vendored
2
Deploy/.gitignore
vendored
@ -19,3 +19,5 @@ user_env.cmd
|
||||
|
||||
downloads-*.txt
|
||||
downloads-*.json
|
||||
|
||||
.idea
|
||||
|
@ -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 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
|
||||
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"
|
||||
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
|
||||
|
||||
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 ren ConEmu.map ConEmu1.map
|
||||
rem )
|
||||
echo on
|
||||
7z a -r -mx=9 -ms=255f64m "%ConEmuPack_7z%" ConEmu*.exe ConEmu*.map ConEmu\* plugins\* %ex7zlist% %ex7zpack%
|
||||
@echo off
|
||||
if errorlevel 1 goto err7z
|
||||
rem if exist ConEmu1.map ren ConEmu1.map ConEmu.map
|
||||
cd ..
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
"""
|
||||
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/
|
||||
|
||||
Add new language, e.g. Polish:
|
||||
@ -30,6 +30,7 @@ import yaml # PyYAML | PyYAML.Yandex
|
||||
from collections import OrderedDict
|
||||
from enum import Enum
|
||||
from requests.auth import HTTPBasicAuth
|
||||
from transifex.api import transifex_api as tapi
|
||||
|
||||
|
||||
def parse_args():
|
||||
@ -337,10 +338,12 @@ class Transifex:
|
||||
|
||||
def pull(self, lang_id):
|
||||
print('Pulling language {} from Transifex'.format(lang_id))
|
||||
result = requests.get(
|
||||
'{}/translation/{}/?{}'.format(
|
||||
self.base_url, lang_id, self.file_format),
|
||||
auth=HTTPBasicAuth('api', self.tx_token))
|
||||
# https://developers.transifex.com/reference/api-python-sdk
|
||||
tapi.setup(auth=self.tx_token)
|
||||
resource = tapi.Resource.get(project="o:conemu:p:conemu-sources")
|
||||
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)
|
||||
if result.status_code == 200:
|
||||
# print(result.encoding)
|
||||
|
@ -14,6 +14,7 @@ pushd "%~dp0.."
|
||||
|
||||
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
|
||||
if errorlevel 1 (
|
||||
echo [1;31;40mFailed to load updated translations from transifex[0m
|
||||
|
@ -1,6 +1,6 @@
|
||||
[Version]
|
||||
PackageVersion=22.8.7.0
|
||||
DisplayVersion=220807
|
||||
PackageVersion=23.7.24.0
|
||||
DisplayVersion=230724
|
||||
|
||||
[Format]
|
||||
Type=PortableApps.comFormat
|
||||
|
@ -1475,6 +1475,8 @@
|
||||
"cbIntegralSize": {
|
||||
"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." ],
|
||||
"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"
|
||||
, "Opcja jest automatycznie wyłączana w trybach Quake i Inside oraz dla 100% szerokości lub wysokości okna." ],
|
||||
"ko": [ "선택하면 콘솔 셀에 비례하여 ConEmu 창 크기가 변경됩니다.\n"
|
||||
@ -3503,6 +3505,7 @@
|
||||
,
|
||||
"tFarHourglass": {
|
||||
"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",
|
||||
"ko": "마우스 커서를 AppStarting으로 변경하기 전 Far Manager가 응답하지 않는 밀리초 시간",
|
||||
"ko_KR": "마우스 커서를 AppStarting으로 변경하기 전 Far Manager가 응답하지 않는 밀리초 시간",
|
||||
@ -5608,6 +5611,7 @@
|
||||
"en": "Show Edit context menu",
|
||||
"ru": "Показать контекстное меню редактирования",
|
||||
"zh": "显示编辑右键菜单",
|
||||
"es": "Mostrar el menú contextual Editar",
|
||||
"pl": "Pokaż edycje menu kontekstowego",
|
||||
"it_IT": "Mostra menu Modifica",
|
||||
"ko": "상황에 맞는 메뉴 편집 표시",
|
||||
@ -5618,6 +5622,7 @@
|
||||
"en": "Show Edit context menu",
|
||||
"ru": "Показать контекстное меню редактирования",
|
||||
"zh": "显示编辑右键菜单",
|
||||
"es": "Mostrar el menú contextual Editar",
|
||||
"pl": "Pokaż edycje menu kontekstowego",
|
||||
"it_IT": "Mostra menu Modifica",
|
||||
"ko": "상황에 맞는 메뉴 편집 표시",
|
||||
@ -6290,6 +6295,7 @@
|
||||
,
|
||||
"vkSetFocusParent": {
|
||||
"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)",
|
||||
"ko": "ConEmu 부모 창에 포커스 설정 (ConEmu Inside 모드)",
|
||||
"ko_KR": "ConEmu 부모 창에 포커스 설정 (ConEmu Inside 모드)",
|
||||
@ -6555,7 +6561,7 @@
|
||||
"zh": "显示 ConEmu 系统菜单 (fires on key down)",
|
||||
"_de": "Zeige ConEmu-Systemmenü",
|
||||
"_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)",
|
||||
"ko": "ConEmu 시스템 메뉴 표시 (키를 누르면 실행 됨)",
|
||||
"ko_KR": "ConEmu 시스템 메뉴 표시 (키를 누르면 실행 됨)",
|
||||
@ -6567,7 +6573,7 @@
|
||||
"zh": "显示 ConEmu 系统菜单 (fires on key release)",
|
||||
"_de": "Zeige ConEmu-Systemmenü",
|
||||
"_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)",
|
||||
"ko": "ConEmu 시스템 메뉴 표시 (키를 놓으면 실행 됨)",
|
||||
"ko_KR": "ConEmu 시스템 메뉴 표시 (키를 놓으면 실행 됨)",
|
||||
@ -7098,6 +7104,7 @@
|
||||
"en": "Alternative mode is off",
|
||||
"ru": "Альтернативный режим выключен",
|
||||
"zh": "替代模式 关闭",
|
||||
"es": "El modo alternativo está desactivado",
|
||||
"pl": "Tryb alternatywny jest wyłączony",
|
||||
"it_IT": "La modalità alternativa è disattivata",
|
||||
"ko": "대체 모드가 꺼짐",
|
||||
@ -7108,6 +7115,7 @@
|
||||
"en": "Alternative mode is ON (console frozen)",
|
||||
"ru": "Альтернативный режим включен (консоль заморожена)",
|
||||
"zh": "替代模式 开启(控制台冻结)",
|
||||
"es": "El modo alternativo está activado (consola congelada)",
|
||||
"pl": "Tryb alternatywny jest włączony (konsola zawieszona)",
|
||||
"it_IT": "La modalità alternativa è ON (console bloccata)",
|
||||
"ko": "대체 모드가 켜짐 (콘솔 고정)",
|
||||
@ -7240,6 +7248,7 @@
|
||||
"en": "BufferHeight mode is off",
|
||||
"ru": "Режим BufferHeight выключен",
|
||||
"zh": "缓存高度模式 关闭",
|
||||
"es": "Modo AlturaBuffer está desactivado",
|
||||
"pl": "Tryb BufferHeight jest wyłączony",
|
||||
"it_IT": "AltezzaDinamica disattiva",
|
||||
"ko": "버퍼 높이 모드가 꺼짐",
|
||||
@ -7250,6 +7259,7 @@
|
||||
"en": "BufferHeight mode is ON (scrolling enabled)",
|
||||
"ru": "Режим BufferHeight включен (прокрутка включена)",
|
||||
"zh": "缓存高度模式 开启(滚动已启动)",
|
||||
"es": "Modo AlturaBuffer está activado (scroll habilitado)",
|
||||
"pl": "Tryb BufferHeight jest włączony (przewijanie włączone)",
|
||||
"it_IT": "AltezzaDinamica attiva (scorrimento abilitato)",
|
||||
"ko": "버퍼 높이 모드가 켜짐 (스크롤 사용 가능)",
|
||||
@ -7261,6 +7271,7 @@
|
||||
"ru": "Закрыть ВСЕ консоли",
|
||||
"zh": "关闭所有控制台",
|
||||
"de": "ALLE Konsolen schließen",
|
||||
"es": "Cerrar todas las consolas",
|
||||
"pl": "Zamknij WSZYSTKIE konsole",
|
||||
"it_IT": "Chiudi TUTTE le console",
|
||||
"ko": "모든 콘솔 닫기",
|
||||
@ -7272,6 +7283,7 @@
|
||||
"ru": "Закрыть только активную консоль",
|
||||
"zh": "只关闭活动的控制台",
|
||||
"de": "Nur aktive Konsole schließen",
|
||||
"es": "Cerrar sólo consola activa",
|
||||
"pl": "Zamknij tylko aktywną konsolę",
|
||||
"it_IT": "Chiudi solo le console attive",
|
||||
"ko": "활성 콘솔만 닫기",
|
||||
@ -7283,6 +7295,7 @@
|
||||
"ru": "Закрыть",
|
||||
"zh": "关闭",
|
||||
"de": "Schließen",
|
||||
"es": "Cerrar",
|
||||
"pl": "Zamknij",
|
||||
"it_IT": "Chiudi",
|
||||
"ko": "닫기",
|
||||
@ -7294,6 +7307,7 @@
|
||||
"ru": "Закрыть все",
|
||||
"zh": "全部关闭",
|
||||
"de": "Alle schließen",
|
||||
"es": "Cerrar todo",
|
||||
"pl": "Zamknij wszystko",
|
||||
"it_IT": "Chiudi tutto",
|
||||
"ko": "모두 닫기",
|
||||
@ -7305,6 +7319,7 @@
|
||||
"ru": "Закрыть 1 консоль",
|
||||
"zh": "关闭一个控制台",
|
||||
"de": "1 Konsole schließen",
|
||||
"es": "Cerrar una consola",
|
||||
"pl": "Zamknij 1 konsole",
|
||||
"it_IT": "Chiudi 1 console",
|
||||
"ko": "1 콘솔 닫기",
|
||||
@ -7316,6 +7331,7 @@
|
||||
"ru": "консоли",
|
||||
"zh": "控制台",
|
||||
"de": "Konsolen",
|
||||
"es": "consolas",
|
||||
"pl": "konsole",
|
||||
"it_IT": "console",
|
||||
"ko": "콘솔",
|
||||
@ -7325,6 +7341,7 @@
|
||||
"lng_ConfirmCloseBtnGroup": {
|
||||
"en": "Close group of",
|
||||
"zh": "关闭",
|
||||
"es": "Cerrar grupo de",
|
||||
"pl": "Zamknij grupe",
|
||||
"it_IT": "Chiudi gruppo di",
|
||||
"ko": "그룹 닫기",
|
||||
@ -7336,6 +7353,7 @@
|
||||
"ru": "Подтвердить закрытие активного дочернего окна?",
|
||||
"zh": "同意关闭活动的窗口?",
|
||||
"de": "Das Schließen des aktiven Unterfensters bestätigen?",
|
||||
"es": "¿Cerrar la consola hijo activa?",
|
||||
"pl": "Czy potwierdzić zamknięcie aktywnego okna podrzędnego?",
|
||||
"it_IT": "Conferma chiusura della finestra attiva?",
|
||||
"ko": "활성 자식 창을 닫으시겠습니까?",
|
||||
@ -7347,6 +7365,7 @@
|
||||
"ru": "Подтвердить закрытие консоли?",
|
||||
"zh": "同意关闭控制台?",
|
||||
"de": "Wollen Sie die Konsole wirklich schließen?",
|
||||
"es": "¿Cerrar consola?",
|
||||
"pl": "Potwierdź zamknięcie konsoli?",
|
||||
"it_IT": "Conferma chiusura console?",
|
||||
"ko": "콘솔을 닫으시겠습니까?",
|
||||
@ -7358,6 +7377,7 @@
|
||||
"ru": "Подтвердить закрытие редактора Far?",
|
||||
"zh": "同意关闭 Far 编辑器?",
|
||||
"de": "Soll der FAR-Editor geschlossen werden?",
|
||||
"es": "¿Cerrar editor Far?",
|
||||
"pl": "Potwierdź zamknięcie edytora Far?",
|
||||
"it_IT": "Conferma chiusura di editor Far?",
|
||||
"ko": "Far 편집기를 닫으시겠습니까?",
|
||||
@ -7369,6 +7389,7 @@
|
||||
"ru": "Подтвердить закрытие группы?",
|
||||
"zh": "同意关闭?",
|
||||
"de": "Soll die Gruppe geschlossen werden?",
|
||||
"es": "¿Cerrar grupo?",
|
||||
"pl": "Potwierdzić zamykającą grupę?",
|
||||
"it_IT": "Conferma chiusura gruppo?",
|
||||
"ko": "그룹을 닫으시겠습니까?",
|
||||
@ -7380,6 +7401,7 @@
|
||||
"ru": "Подтвердить закрытие Far viewer?",
|
||||
"zh": "同意关闭 Far 浏览器?",
|
||||
"de": "Soll der FAR-Viewer geschlossen werden?",
|
||||
"es": "¿Cerrar visor Far?",
|
||||
"pl": "Potwierdzić zamknięcie przeglądarki Far?",
|
||||
"it_IT": "Conferma chiusura di visualizzatore Far?",
|
||||
"ko": "Far 뷰어를 닫으시겠습니까?",
|
||||
@ -7391,6 +7413,7 @@
|
||||
"ru": "Подтвердить закрытие?",
|
||||
"zh": "同意关闭?",
|
||||
"de": "Soll ConEmu geschlossen werden?",
|
||||
"es": "¿Cerrar?",
|
||||
"pl": "Potwierdzasz zamknięcie?",
|
||||
"it_IT": "Conferma chiusura?",
|
||||
"ko": "닫으시겠습니까?",
|
||||
@ -7402,6 +7425,7 @@
|
||||
"ru": "Ничего не закрывать",
|
||||
"zh": "不关闭任何东西",
|
||||
"de": "Nichts schließen",
|
||||
"es": "No cerrar nada",
|
||||
"pl": "Nie zamykaj niczego",
|
||||
"it_IT": "Non chiudere nulla",
|
||||
"ko": "아무것도 닫지 않음",
|
||||
@ -7413,6 +7437,7 @@
|
||||
"ru": "Незавершенные операции",
|
||||
"zh": "不完整的操作",
|
||||
"de": "Noch nicht beendete Prozesse",
|
||||
"es": "Operaciones sin completar",
|
||||
"pl": "Niekompletne operacje",
|
||||
"it_IT": "Operazioni non complete",
|
||||
"ko": "불완전한 작업",
|
||||
@ -7423,6 +7448,7 @@
|
||||
"en": "Terminate all but shell processes?",
|
||||
"ru": "Завершить все процессы, кроме оболочки?",
|
||||
"zh": "终止除 shell 之外的所有进程?",
|
||||
"es": "¿Terminar todo excepto los procesos del intérprete de comandos?",
|
||||
"pl": "Zakończyć wszystkie procesy oprócz procesów powłoki?",
|
||||
"it_IT": "Chiudi tutti i processi non shell?",
|
||||
"ko": "쉘 프로세스를 제외한 모든 프로세스를 종료하시겠습니까?",
|
||||
@ -7432,6 +7458,7 @@
|
||||
"lng_ConfirmKillingQ": {
|
||||
"en": "Confirm killing?",
|
||||
"zh": "同意杀死?",
|
||||
"es": "¿Matar?",
|
||||
"pl": "Potwierdzasz zabijanie?",
|
||||
"it_IT": "Conferma chiusura forzata?",
|
||||
"ko": "죽이시겠습니까?",
|
||||
@ -7443,6 +7470,7 @@
|
||||
"ru": "Несохраненные окна редактора",
|
||||
"zh": "编辑窗口没有保存",
|
||||
"de": "Editor-Fenster mit nicht gespeicherten Änderungen",
|
||||
"es": "Ventanas de editor sin salvar",
|
||||
"pl": "Niezapisane okna edytora",
|
||||
"it_IT": "Finestre editor non salvate",
|
||||
"ko": "저장되지 않은 편집기 창",
|
||||
@ -7454,6 +7482,7 @@
|
||||
"ru": "Создать новую консоль",
|
||||
"zh": "创建新控制台",
|
||||
"de": "Neue Konsole erstellen",
|
||||
"es": "Crear nueva consola",
|
||||
"pl": "Utwórz nową konsolę",
|
||||
"it_IT": "Crea nuova console",
|
||||
"ko": "새 콘솔 만들기",
|
||||
@ -7763,6 +7792,7 @@
|
||||
"ru": "Развернуть окно",
|
||||
"zh": "最大化窗口",
|
||||
"de": "Fenster maximieren",
|
||||
"es": "Maximizar ventana",
|
||||
"pl": "Maksymalizuj okno",
|
||||
"it_IT": "Massimizza finestra",
|
||||
"ko": "창 최대화",
|
||||
@ -7774,6 +7804,7 @@
|
||||
"ru": "О программе / Помощь",
|
||||
"zh": "关于(&a)/ 帮助",
|
||||
"de": "Ü&ber / Hilfe",
|
||||
"es": "&Acerca de / Ayuda",
|
||||
"pl": "& Informacje / Pomoc",
|
||||
"it_IT": "Informazioni / &Aiuto",
|
||||
"ko": "정보/도움말(&A)",
|
||||
@ -7784,6 +7815,7 @@
|
||||
"en": "All task tabs",
|
||||
"ru": "Все вкладки задач",
|
||||
"zh": "所有任务标签",
|
||||
"es": "Todas las pestañas de tareas",
|
||||
"pl": "Wszystkie zakładki zadań",
|
||||
"ko": "모든 작업 탭",
|
||||
"ko_KR": "모든 작업 탭",
|
||||
@ -7794,6 +7826,7 @@
|
||||
"ru": "Всегда сверху",
|
||||
"zh": "置顶(%w)",
|
||||
"de": "Immer im &Vordergrund",
|
||||
"es": "Siempre encima",
|
||||
"pl": "Za&wsze na górze",
|
||||
"it_IT": "Sempre in primo piano",
|
||||
"ko": "항상 맨 위에(&W)",
|
||||
@ -7805,6 +7838,7 @@
|
||||
"ru": "Прикрепить к...",
|
||||
"zh": "附上...",
|
||||
"de": "Anderes Fenster ankoppeln...",
|
||||
"es": "Fijar a...",
|
||||
"pl": "Dołączyć do...",
|
||||
"it_IT": "Collegati a...",
|
||||
"ko": "첨부...",
|
||||
@ -7815,6 +7849,7 @@
|
||||
"en": "Auto scro&ll",
|
||||
"ru": "Автопрокрутка",
|
||||
"zh": "自动滚动(&l)",
|
||||
"es": "Desplazamiento automático",
|
||||
"pl": "Auto Scro&ll",
|
||||
"it_IT": "Scorrimento automatico",
|
||||
"ko": "자동 스크롤(&L)",
|
||||
@ -7825,6 +7860,7 @@
|
||||
"en": "Bring &here",
|
||||
"zh": "移动到这里(&H)",
|
||||
"de": "Auf aktiven Bildschirm verschieben",
|
||||
"es": "Traer aquí",
|
||||
"pl": "Przynieś &tutaj",
|
||||
"ko": "여기로 가져오기(&H)",
|
||||
"ko_KR": "여기로 가져오기(&H)",
|
||||
@ -7835,6 +7871,7 @@
|
||||
"ru": "Сходство / приоритет...",
|
||||
"zh": "关系和优先级(&F)...",
|
||||
"de": "Prozessor-&Zuordnung/Priorität",
|
||||
"es": "Afinidad/prioridad",
|
||||
"pl": "A&ffinity/ priorytet ...",
|
||||
"it_IT": "A&ffinità/priorità...",
|
||||
"ko": "선호도/우선 순위(&F)...",
|
||||
@ -7846,6 +7883,7 @@
|
||||
"ru": "Проверить обновления",
|
||||
"zh": "更新(&c)",
|
||||
"de": "Auf neue &Version prüfen",
|
||||
"es": "&Comprobar actualizaciones",
|
||||
"pl": "&Sprawdź aktualizacje",
|
||||
"it_IT": "Controlla &aggiornamenti",
|
||||
"ko": "업데이트 확인(&C)",
|
||||
@ -7857,6 +7895,7 @@
|
||||
"ru": "Дочернее системное меню...",
|
||||
"zh": "系统子菜单...",
|
||||
"de": "Systemmenü des eingebetteten Fensters...",
|
||||
"es": "Menú del sistema hijo...",
|
||||
"pl": "Menu systemowe dla dzieci ...",
|
||||
"ko": "자식 시스템 메뉴...",
|
||||
"ko_KR": "자식 시스템 메뉴...",
|
||||
@ -7867,6 +7906,7 @@
|
||||
"ru": "Очистить историю...",
|
||||
"zh": "清除日志...",
|
||||
"de": "Verlauf leeren...",
|
||||
"es": "Borrar historial...",
|
||||
"pl": "Czysta historia...",
|
||||
"it_IT": "Pulisci cronologia...",
|
||||
"ko": "사용 내역 지우기...",
|
||||
@ -7878,6 +7918,7 @@
|
||||
"ru": "Закрыть консоль",
|
||||
"zh": "关闭控制台(&c)...",
|
||||
"de": "Konsole s&chließen",
|
||||
"es": "&Cerrar consola",
|
||||
"pl": "&Zamknij konsolę",
|
||||
"it_IT": "&Chiudi console",
|
||||
"ko": "콘솔 닫기(&C)",
|
||||
@ -7889,6 +7930,7 @@
|
||||
"ru": "Закрыть группу вкладок",
|
||||
"zh": "关闭标签组(&c)",
|
||||
"de": "Reiter-Gruppe s&chließen",
|
||||
"es": "&Cerrar grupo de pestañas",
|
||||
"pl": "&Zamknij grupę kart",
|
||||
"it_IT": "&Chiudi gruppo di schede",
|
||||
"ko": "탭 그룹 닫기(&C)",
|
||||
@ -7900,6 +7942,7 @@
|
||||
"ru": "Закрыть вкладку",
|
||||
"zh": "关闭标签(&c)",
|
||||
"de": "Reiter s&chließen",
|
||||
"es": "&Cerrar pestaña",
|
||||
"pl": "&Zamknij karte",
|
||||
"it_IT": "&Chiudi scheda",
|
||||
"ko": "탭 닫기(&C)",
|
||||
@ -7911,6 +7954,7 @@
|
||||
"ru": "Копировать",
|
||||
"zh": "复制(&y)",
|
||||
"de": "&Kopieren",
|
||||
"es": "Copiar",
|
||||
"pl": "Kopiu&j",
|
||||
"it_IT": "Cop&ia",
|
||||
"ko": "복사(&Y)",
|
||||
@ -7922,6 +7966,7 @@
|
||||
"ru": "Копировать все",
|
||||
"zh": "复制全部(&a)",
|
||||
"de": "&Alles kopieren",
|
||||
"es": "Copiar todo",
|
||||
"pl": "Kopiuj &wszystko",
|
||||
"it_IT": "Copi&a tutto",
|
||||
"ko": "모두 복사(&A)",
|
||||
@ -7933,6 +7978,7 @@
|
||||
"ru": "Только обычный текст",
|
||||
"zh": "纯文字(&t)",
|
||||
"de": "Nur &Text kopieren",
|
||||
"es": "Sólo texto plano",
|
||||
"pl": "Zwykły &tylko tekst",
|
||||
"it_IT": "Solo &testo semplice",
|
||||
"ko": "일반 텍스트만(&T)",
|
||||
@ -7944,6 +7990,7 @@
|
||||
"ru": "Копировать в HTML-формате",
|
||||
"zh": "复制 &HTML 格式",
|
||||
"de": "Im &HTML-Format kopieren",
|
||||
"es": "Copiar formato HTML",
|
||||
"pl": "Kopiuj &Format HTML",
|
||||
"it_IT": "Copia formato &HTML",
|
||||
"ko": "HTML 형식 복사(&H)",
|
||||
@ -7955,6 +8002,7 @@
|
||||
"ru": "Копировать как HTML",
|
||||
"zh": "复制成 HTML(&s)",
|
||||
"de": "Al&s HTML-Quelltext kopieren",
|
||||
"es": "Copiar como HTML",
|
||||
"pl": "Kopiuj plik& HTML",
|
||||
"it_IT": "Copia co&me HTML",
|
||||
"ko": "HTML로 복사(&S)",
|
||||
@ -7966,6 +8014,7 @@
|
||||
"ru": "Последовательности ANSI",
|
||||
"zh": "A&NSI 序列",
|
||||
"de": "Text mit A&NSI-Sequenzen kopieren",
|
||||
"es": "Secuencias ANSI",
|
||||
"pl": "A&NSI sekwencje",
|
||||
"it_IT": "Sequenze A&NSI",
|
||||
"ko": "ANSI 시퀀스(&N)",
|
||||
@ -7977,6 +8026,7 @@
|
||||
"ru": "Найти текст...",
|
||||
"zh": "搜索(&f)",
|
||||
"de": "Text s&uchen...",
|
||||
"es": "Buscar texto",
|
||||
"pl": "&Znajdź tekst...",
|
||||
"it_IT": "&Trova testo...",
|
||||
"ko": "텍스트 찾기(&F)...",
|
||||
@ -7988,6 +8038,7 @@
|
||||
"ru": "Отметить блок",
|
||||
"zh": "标记块(&b)",
|
||||
"de": "&Bereich markieren",
|
||||
"es": "Marcar bloque",
|
||||
"pl": "Zaznacz &zablokuj",
|
||||
"ko": "블록 표시(&B)",
|
||||
"ko_KR": "블록 표시(&B)",
|
||||
@ -7998,6 +8049,7 @@
|
||||
"ru": "Отметить текст",
|
||||
"zh": "标记文字(&k)",
|
||||
"de": "Text mar&kieren",
|
||||
"es": "Marcar texto",
|
||||
"pl": "Zaznacz tekst",
|
||||
"ko": "텍스트 표시(&K)",
|
||||
"ko_KR": "텍스트 표시(&K)",
|
||||
@ -8008,6 +8060,7 @@
|
||||
"ru": "Вставить",
|
||||
"zh": "粘贴(&p)",
|
||||
"de": "&Einfügen",
|
||||
"es": "&Pegar",
|
||||
"pl": "&Wklej",
|
||||
"it_IT": "&Incolla",
|
||||
"ko": "붙여넣기(&P)",
|
||||
@ -8019,6 +8072,7 @@
|
||||
"ru": "Свойства...",
|
||||
"zh": "属性(&p)",
|
||||
"de": "&Fenster-Eigenschaften...",
|
||||
"es": "&Propiedades...",
|
||||
"pl": "&Posiadłość",
|
||||
"it_IT": "&Proprietà...",
|
||||
"ko": "속성(&P)...",
|
||||
@ -8030,6 +8084,7 @@
|
||||
"ru": "Настоящая консоль",
|
||||
"zh": "真实控制台(&R)",
|
||||
"de": "&Echtes Konsolenfenster anzeigen",
|
||||
"es": "Consola real",
|
||||
"pl": "&Prawdziwa konsola",
|
||||
"it_IT": "Console &reale",
|
||||
"ko": "실제 콘솔(&R)",
|
||||
@ -8041,6 +8096,7 @@
|
||||
"ru": "Отладка активного процесса...",
|
||||
"zh": "调试活动的进程...(&a)",
|
||||
"de": "&Aktiven Prozess untersuchen...",
|
||||
"es": "Depurar proceso activo...",
|
||||
"pl": "Debugowanie &aktywny proces.",
|
||||
"it_IT": "Debug processi &attivi...",
|
||||
"ko": "활성 프로세스 디버그(&A)...",
|
||||
@ -8052,6 +8108,7 @@
|
||||
"ru": "Показать утверждение",
|
||||
"zh": "显示断言",
|
||||
"de": "Fehlermeldung anzeigen",
|
||||
"es": "Mostrar sentencia",
|
||||
"pl": "Pokaż potwierdzenie",
|
||||
"it_IT": "Mostra asserzione",
|
||||
"ko": "주장 표시",
|
||||
@ -8063,6 +8120,7 @@
|
||||
"ru": "Журнал отладки",
|
||||
"zh": "调试日志(GUI)",
|
||||
"de": "Protokoll für Feh&lersuche (GUI)",
|
||||
"es": "Depurar traza (GUI)",
|
||||
"pl": "Debug &log (GUI)",
|
||||
"it_IT": "&Log debug (GUI)",
|
||||
"ko": "디버그 로그 (GUI)(&L) ",
|
||||
|
@ -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'.
|
||||
* l10n: translations were updated
|
||||
* New binaries are signed with new certificate issued by Sectigo.
|
||||
|
5
SECURITY.md
Normal file
5
SECURITY.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please report security issues to `ConEmu.Maximus5@gmail.com`
|
@ -8,6 +8,13 @@ trigger:
|
||||
include:
|
||||
- master
|
||||
- daily
|
||||
paths:
|
||||
exclude:
|
||||
- '**/*.md'
|
||||
- '*.md'
|
||||
- '**/*.txt'
|
||||
- '*.txt'
|
||||
- .github/workflows/codeql-analysis.yml
|
||||
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
|
@ -3,7 +3,7 @@
|
||||
<metadata>
|
||||
|
||||
<id>ConEmu.Core</id>
|
||||
<version>22.8.7.0</version>
|
||||
<version>23.7.24.0</version>
|
||||
<title>ConEmu.Core</title>
|
||||
<authors>Maximus5</authors>
|
||||
<owners>Maximus5</owners>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<metadata>
|
||||
|
||||
<id>ConEmu</id>
|
||||
<version>22.8.7.0</version>
|
||||
<version>23.7.24.0</version>
|
||||
<title>ConEmu</title>
|
||||
<authors>Maximus5</authors>
|
||||
<owners>Maximus5</owners>
|
||||
|
@ -1,6 +1,6 @@
|
||||
$package = 'ConEmu'
|
||||
$version = '22.08.07'
|
||||
$sha256 = 'E0ADFD2FFBEB44C9125A626AD600CCFBDEACBBA0624DF37D2DDD6C6D27D8D578'
|
||||
$version = '23.07.24'
|
||||
$sha256 = '2A56EDD5515DDD916410DE3D84E00069CE07566B2F81C612A4241A8B109D7F4C'
|
||||
|
||||
$isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and `
|
||||
($Env:PROCESSOR_ARCHITEW6432 -eq $null))
|
||||
|
@ -1,5 +1,5 @@
|
||||
$package = 'ConEmu'
|
||||
$version = '22.08.07'
|
||||
$version = '23.07.24'
|
||||
|
||||
|
||||
$isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and `
|
||||
|
@ -157,7 +157,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//#define CONEMU_ANIMATE_DURATION_MAX 5000
|
||||
|
||||
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* gsReportBug = CEREPORTBUG; //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
|
||||
|
||||
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()
|
||||
{
|
||||
CVConGuard VCon;
|
||||
|
@ -597,6 +597,7 @@ class CConEmuMain
|
||||
int ActiveConNum(); // 0-based
|
||||
int GetConCount(); // количество открытых консолей
|
||||
void AskChangeBufferHeight();
|
||||
void AskChangeTermMode();
|
||||
void AskChangeAlternative();
|
||||
void AttachToDialog();
|
||||
void CheckFocus(LPCWSTR asFrom);
|
||||
|
@ -525,6 +525,14 @@ bool CConEmuCtrl::key_MultiBuffer(const ConEmuChord& VkState, bool TestOnly, con
|
||||
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
|
||||
bool CConEmuCtrl::key_DuplicateRoot(const ConEmuChord& VkState, bool TestOnly, const ConEmuHotKey* hk, CRealConsole* pRCon)
|
||||
{
|
||||
|
@ -106,6 +106,7 @@ public:
|
||||
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_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_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);
|
||||
|
@ -539,7 +539,7 @@ bool CheckLockFrequentExecute(DWORD& Tick, DWORD 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* 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* gsReportBug; // = L"https://conemu.github.io/en/Issues.html";
|
||||
extern const wchar_t* gsReportCrash; // = L"https://conemu.github.io/en/Issues.html";
|
||||
|
@ -311,6 +311,8 @@ int ConEmuHotKeyList::AllocateHotkeys()
|
||||
.SetHotKey(VK_PAUSE);
|
||||
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)")
|
||||
.SetHotKey('G', VK_APPS);
|
||||
Add(vkMultiGroupAll, chk_User, L"Multi.GroupInputAll" ).SetMacro(L"GroupInput(3)")
|
||||
|
@ -408,6 +408,7 @@ static LngPredefined gsDataHints[] = {
|
||||
{ vkMoveTabRight, L"Move active tab rightward" },
|
||||
{ vkMultiAltCon, L"Show alternative console buffer (last command output)" },
|
||||
{ vkMultiBuffer, L"Switch bufferheight mode" },
|
||||
{ vkSwitchTermMode, L"Switch Terminal Input Mode" },
|
||||
{ vkMultiClose, L"Close active console" },
|
||||
{ vkMultiCmd, L"Create new %s console" },
|
||||
{ vkMultiGroup, L"Group keyboard input for visible splits" },
|
||||
|
@ -44,11 +44,11 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#define szRetryVersionIniCheck \
|
||||
L"ConEmu is unable to load current version information from servers.\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"
|
||||
|
||||
#define szRetryPackageDownload \
|
||||
L"ConEmu is unable to download update package.\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"
|
||||
|
@ -431,8 +431,6 @@ bool CVConLine::ParseLine(bool abForce, unsigned anTextWidth, unsigned anFontWid
|
||||
const bool bEnhanceGraphics = gpSet->isEnhanceGraphics;
|
||||
const bool bUseAlternativeFont = _bool(gpSet->isFixFarBorders);
|
||||
|
||||
int cjkShift = 0;
|
||||
|
||||
for (unsigned j = 0; j < TextWidth;)
|
||||
{
|
||||
bool bPair = ((j+1) < TextWidth);
|
||||
@ -444,7 +442,7 @@ bool CVConLine::ParseLine(bool abForce, unsigned anTextWidth, unsigned anFontWid
|
||||
VConTextPart* p = TextParts+(PartsCount++);
|
||||
|
||||
//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
|
||||
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]))
|
||||
j2++;
|
||||
}
|
||||
if (!bPair)
|
||||
cjkShift += (j2 - j);
|
||||
}
|
||||
else if (bUseAlternativeFont && isCharAltFont(wc))
|
||||
{
|
||||
@ -593,26 +589,6 @@ bool CVConLine::ParseLine(bool abForce, unsigned anTextWidth, unsigned anFontWid
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -162,6 +162,7 @@ protected:
|
||||
protected:
|
||||
friend struct VConTextPart;
|
||||
// Members
|
||||
CRealConsole* mp_RCon;
|
||||
|
||||
// This corresponds to "dialogs" - regions framed with preudographics
|
||||
int mn_DialogsCount;
|
||||
|
@ -1352,6 +1352,7 @@
|
||||
#define stStartupShellGeneral 3110
|
||||
#define tFarHourglass 3111
|
||||
#define vkSetFocusParent 3212
|
||||
#define vkSwitchTermMode 3220
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
|
@ -1,7 +1,7 @@
|
||||
// 220807
|
||||
#define MVV_1 22
|
||||
#define MVV_2 8
|
||||
#define MVV_3 7
|
||||
// 230724
|
||||
#define MVV_1 23
|
||||
#define MVV_2 7
|
||||
#define MVV_3 24
|
||||
#define MVV_4 0
|
||||
#define MVV_4a ""
|
||||
#undef MVV_git
|
||||
|
@ -4,4 +4,4 @@
|
||||
#define CEVS_PREVIEW 1
|
||||
#define CEVS_ALPHA 2
|
||||
|
||||
#define ConEmuVersionStage CEVS_ALPHA
|
||||
#define ConEmuVersionStage CEVS_STABLE
|
||||
|
@ -985,10 +985,11 @@ bool SrvAnsiImpl::ReportString(LPCWSTR asRet)
|
||||
LPCWSTR pc = asRet;
|
||||
for (int i = 0; i < nLen; i++, p++, pc++)
|
||||
{
|
||||
const char ch = (*pc == 0x1B || *pc >= 0x20) ? *pc : L' ';
|
||||
p->EventType = KEY_EVENT;
|
||||
p->Event.KeyEvent.bKeyDown = TRUE;
|
||||
p->Event.KeyEvent.wRepeatCount = 1;
|
||||
p->Event.KeyEvent.uChar.UnicodeChar = *pc;
|
||||
p->Event.KeyEvent.uChar.UnicodeChar = ch;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
case L's':
|
||||
// Save cursor position (can not be nested)
|
||||
XTermSaveRestoreCursor(true);
|
||||
if (Code.PvtLen == 0)
|
||||
// Save cursor position (can not be nested)
|
||||
XTermSaveRestoreCursor(true);
|
||||
break;
|
||||
|
||||
case L'u':
|
||||
// Restore cursor position
|
||||
XTermSaveRestoreCursor(false);
|
||||
if (Code.PvtLen == 0)
|
||||
// Restore cursor position
|
||||
XTermSaveRestoreCursor(false);
|
||||
break;
|
||||
|
||||
case L'H': // Set cursor position (1-based)
|
||||
@ -2473,4 +2476,3 @@ void SrvAnsiImpl::XTermAltBuffer(bool bSetAltBuffer/*, condata::TablePtr& table*
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1032,12 +1032,7 @@ BOOL WINAPI ReadOutput(FAR_CHAR_INFO* Buffer, COORD BufferSize, COORD BufferCoor
|
||||
break;
|
||||
}
|
||||
|
||||
FAR_CHAR_INFO chr{};
|
||||
if (lbRead)
|
||||
{
|
||||
chr.Char = pc->Char.UnicodeChar;
|
||||
chr.Attributes.Flags = pc->Attributes & 0xFF00;
|
||||
}
|
||||
FAR_CHAR_INFO chr = {lbRead ? pc->Char.UnicodeChar : L' '};
|
||||
|
||||
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;
|
||||
|
||||
if (pTrueColor)
|
||||
|
@ -2505,10 +2505,11 @@ BOOL CEAnsi::ReportString(LPCWSTR asRet)
|
||||
LPCWSTR pc = asRet;
|
||||
for (size_t i = 0; i < nLen; i++, p++, pc++)
|
||||
{
|
||||
const char ch = (*pc == 0x1B || *pc >= 0x20) ? *pc : L' ';
|
||||
p->EventType = KEY_EVENT;
|
||||
p->Event.KeyEvent.bKeyDown = TRUE;
|
||||
p->Event.KeyEvent.wRepeatCount = 1;
|
||||
p->Event.KeyEvent.uChar.UnicodeChar = *pc;
|
||||
p->Event.KeyEvent.uChar.UnicodeChar = ch;
|
||||
}
|
||||
|
||||
DumpKnownEscape(asRet, nLen, de_Report);
|
||||
|
@ -1,5 +1,5 @@
|
||||
#define CONEMUVERN 22,8,7,0
|
||||
#define CONEMUVERS "220807"
|
||||
#define CONEMUVERL L"220807"
|
||||
#define MSI86 "../ConEmu.220807.x86.msi"
|
||||
#define MSI64 "../ConEmu.220807.x64.msi"
|
||||
#define CONEMUVERN 23,7,24,0
|
||||
#define CONEMUVERS "230724"
|
||||
#define CONEMUVERL L"230724"
|
||||
#define MSI86 "../ConEmu.230724.x86.msi"
|
||||
#define MSI64 "../ConEmu.230724.x64.msi"
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Include>
|
||||
|
||||
<?define Version = '$(var.MajorVersion).220.8070' ?>
|
||||
<?define ConEmuVerS = '220807.$(var.Platform)' ?>
|
||||
<?define Version = '$(var.MajorVersion).230.7240' ?>
|
||||
<?define ConEmuVerS = '230724.$(var.Platform)' ?>
|
||||
|
||||
</Include>
|
@ -125,7 +125,7 @@ typedef struct _CONSOLE_SELECTION_INFO
|
||||
|
||||
#define CEHOMEPAGE_A "https://conemu.github.io/"
|
||||
#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 CEDONATEPAGE L"https://conemu.github.io/donate.html"
|
||||
#define CEWIKIBASE L"https://conemu.github.io/en/"
|
||||
|
@ -101,9 +101,6 @@ bool SearchAppPaths(LPCWSTR asFilePath, CEStr& rsFound, const bool abSetPath, CE
|
||||
rsFound.Set(pszPath);
|
||||
bFound = true;
|
||||
|
||||
if (pszCheck != szVal)
|
||||
free(pszCheck);
|
||||
|
||||
// The program may require additional "%PATH%". So, if allowed...
|
||||
if (abSetPath)
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user