From 944c436be4b54e379278da4d267d6f2a21d23285 Mon Sep 17 00:00:00 2001 From: "METANEOCORTEX\\Kotti" Date: Sat, 4 Apr 2026 12:04:50 +0200 Subject: [PATCH] fix: PortableApps Platform build should use PA's grepWinPortable - do not bundle grepWin with Notepad3Portable. --- .gitignore | 8 - Build/Build_PortableApp.cmd | 8 - Build/Notepad3.ini | 2 +- Build/Notepad3_pap.ini | 198 +++++++++++ Build/make_portable_rel(.zip).cmd | 8 +- Build/scripts/BuildPortableApp.ps1 | 319 ------------------ minipath/src/Config.cpp | 10 - .../App/AppInfo/Launcher/Notepad3Portable.ini | 140 +++++++- .../Notepad3Portable/App/AppInfo/appinfo.ini | 11 +- .../App/AppInfo/appinfo_template.ini | 33 +- .../App/DefaultData/settings/Notepad3.ini | 2 +- .../App/Notepad3/Docs/Changes.txt | 4 +- .../App/Notepad3/x64/{np3 => }/Notepad3.ini | 0 .../App/Notepad3/x86/{np3 => }/Notepad3.ini | 0 np3portableapp/_buildname.txt | 2 +- np3portableapp/build_np3portableapp.cmd | 44 +-- src/Config/Config.cpp | 14 - 17 files changed, 399 insertions(+), 404 deletions(-) delete mode 100644 Build/Build_PortableApp.cmd create mode 100644 Build/Notepad3_pap.ini delete mode 100644 Build/scripts/BuildPortableApp.ps1 rename np3portableapp/Notepad3Portable/App/Notepad3/x64/{np3 => }/Notepad3.ini (100%) rename np3portableapp/Notepad3Portable/App/Notepad3/x86/{np3 => }/Notepad3.ini (100%) diff --git a/.gitignore b/.gitignore index a02b19769..9eb56c8f9 100644 --- a/.gitignore +++ b/.gitignore @@ -57,19 +57,11 @@ Thumbs.db /np3portableapp/Signing*.txt /np3portableapp/Notepad3Portable*.7z /np3portableapp/Notepad3Portable*.exe -#/np3portableapp/Notepad3Portable/Data -#/np3portableapp/Notepad3Portable/Data -#/np3portableapp/Notepad3Portable/App/AppInfo/appinfo.ini -#/np3portableapp/Notepad3Portable/App/AppInfo/installer.ini -#/np3portableapp/Notepad3Portable/App/DefaultData/settings -#/np3portableapp/Notepad3Portable/App/Notepad3/Docs /np3portableapp/Notepad3Portable*.exe /np3portableapp/Notepad3Portable/Notepad3Portable*.exe /np3portableapp/Notepad3Portable/App/Notepad3/x64/*.exe -/np3portableapp/Notepad3Portable/App/Notepad3/x64/grepWin /np3portableapp/Notepad3Portable/App/Notepad3/x64/lng /np3portableapp/Notepad3Portable/App/Notepad3/x86/*.exe -/np3portableapp/Notepad3Portable/App/Notepad3/x86/grepWin /np3portableapp/Notepad3Portable/App/Notepad3/x86/lng # diff --git a/Build/Build_PortableApp.cmd b/Build/Build_PortableApp.cmd deleted file mode 100644 index fbf8f8559..000000000 --- a/Build/Build_PortableApp.cmd +++ /dev/null @@ -1,8 +0,0 @@ -@echo off -REM Build PortableApps Package -REM Usage: Build_PortableApp.cmd [arguments passed to BuildPortableApp.ps1] - -setlocal -set PortAppsDir=D:\PortableApps - -powershell -ExecutionPolicy Bypass -File "%~dp0scripts\BuildPortableApp.ps1" -PortableAppsDir "%PortAppsDir%" %* diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini index e53bf1105..6aa76fd97 100644 --- a/Build/Notepad3.ini +++ b/Build/Notepad3.ini @@ -5,6 +5,7 @@ SettingsVersion=5 ;AnalyzeReliableConfidenceLevel=50 [Settings2] +;grepWin.exe=grepWinNP3.exe ;IMEInteraction=0 ;DateTimeFormat= ;(-> ) ;DateTimeLongFormat= ;(-> ) @@ -14,7 +15,6 @@ SettingsVersion=5 ;DefaultExtension=txt ;DenyVirtualSpaceAccess=0 ;filebrowser.exe=minipath.exe -;grepWin.exe=grepWinNP3.exe ;FileCheckInterval=2000 ;(min: 200[msec] - if equal or less, notify immediately) ;FileWatchingMethod=0 ;(0=both[default], 1=poll-only, 2=push-only) ;FileChangedIndicator=[@] diff --git a/Build/Notepad3_pap.ini b/Build/Notepad3_pap.ini new file mode 100644 index 000000000..564d1514a --- /dev/null +++ b/Build/Notepad3_pap.ini @@ -0,0 +1,198 @@ +[Notepad3] +;Notepad3.ini=%USERPROFILE%\Notepad3.ini +;Notepad3.ini=%APPDATA%\Rizonesoft\Notepad3\Notepad3.ini +[Settings] +SettingsVersion=5 +;AnalyzeReliableConfidenceLevel=50 +[Settings2] +grepWin.exe=%PORTABLEAPPS_DIR%\grepWinPortable\grepWinPortable.exe +;IMEInteraction=0 +;DateTimeFormat= ;(-> ) +;DateTimeLongFormat= ;(-> ) +;TimeStampRegEx= ;(-> \$Date:[^\$]+\$ ) (Find-Pattern to Update Stamps) +;TimeStampFormat= ;(-> $Date: %s $) {Print format should fit to TimeStampRegEx} +;DefaultDirectory= +;DefaultExtension=txt +;DenyVirtualSpaceAccess=0 +;filebrowser.exe=minipath.exe +;FileCheckInterval=2000 ;(min: 200[msec] - if equal or less, notify immediately) +;FileWatchingMethod=0 ;(0=both[default], 1=poll-only, 2=push-only) +;FileChangedIndicator=[@] +;FileDeletedIndicator=[X] +;FileDlgFilters= +;FileLoadWarningMB=4 +;MultiFileArg=0 +;NoCGIGuess=0 +;NoCopyLineOnEmptySelection=0 +;NoCutLineOnEmptySelection=0 +;CopyMultiSelectionSeparator= ;(-> ) {use empty value for no separator} +;NoFadeHidden=0 +;NoFileVariables=0 +;NoHTMLGuess=0 +;PortableMyDocs=1 +;OpacityLevel=75 +;FindReplaceOpacityLevel=50 +;RelativeFileMRU=1 +;ReuseWindow=0 +;SaveBlankNewFile=true +;SciFontQuality=3 +;SimpleIndentGuides=0 +;SingleFileInstance=1 +;ShellAppUserModelID=Rizonesoft.Notepad3 +;ShellUseSystemMRU=1 +;StickyWindowPosition=0 +;SubWrappedLineSelectOnMarginClick=false +;LaunchInstanceWndPosOffset=28 +;LaunchInstanceFullVisible=true +;UseOldStyleBraceMatching=0 +;WebTemplate1=https://google.com/search?q=%s +;WebTmpl1MenuName=Open Web Action 1 +;WebTemplate2=https://en.wikipedia.org/w/index.php?search=%s +;WebTmpl2MenuName=Open Web Action 2 +;ExtendedWhiteSpaceChars= +;AutoCompleteWordCharSet= +;AutoCompleteFillUpChars= +;LineCommentPostfixStrg= +;UpdateDelayMarkAllOccurrences=50 +;CurrentLineHorizontalSlop=40 +;CurrentLineVerticalSlop=5 +;UndoTransactionTimeout=0 ;in [msec] +;AdministrationTool.exe= +;DevDebugMode=0 +;LocaleAnsiCodePageAnalysisBonus=33 +;UchardetLanguageFilter=31 +; Bitmask controlling which CJK charset probers are active in uchardet: +; Bit 0 (0x01/1) = Chinese Simplified (GB18030) +; Bit 1 (0x02/2) = Chinese Traditional (Big5, EUC-TW) +; Bit 2 (0x04/4) = Japanese (Shift_JIS, EUC-JP) +; Bit 3 (0x08/8) = Korean (EUC-KR) +; Bit 4 (0x10/16) = Non-CJK (single-byte encodings) +; Common values: +; 31 = All probers (default) +; 27 = Exclude Japanese (fix GB18030 misdetected as EUC-JP) +; 17 = Chinese Simplified + Non-CJK only +; 3 = Chinese only (simplified + traditional) +;LexerSQLNumberSignAsComment=1 +;AtomicFileSave=true +;ExitOnESCSkipLevel=2 +;ZoomTooltipTimeout=3200 ;in [msec] +;WrapAroundTooltipTimeout=2000 ;in [msec] +;LargeIconScalePrecent=150 +;DarkModeBkgColor=0x1F1F1F +;DarkModeBtnFaceColor=0x333333 +;DarkModeTxtColor=0xEFEFEF +;HyperlinkShellExURLWithApp="" +;HyperlinkShellExURLCmdLnArgs="${URL}" ;(use ${URL} as place holder for clicked Hyperlink URL string) +;HyperlinkFileProtocolVerb="" ;(ShellExecuteEx()::lpVerb (""=default, "edit", "explore", "find", "open", "print", "properties", "runas") +;CodeFontPrefPrioList="Cascadia Code,Cascadia Mono,Cousine,Fira Code,Source Code Pro,Roboto Mono,DejaVu Sans Mono,Inconsolata,Consolas,Lucida Console" +;TextFontPrefPrioList="Cascadia Mono,Cousine,Roboto Mono,DejaVu Sans Mono,Inconsolata,Consolas,Lucida Console" +[Statusbar Settings] +;VisibleSections=0 1 15 14 2 4 5 6 7 8 9 10 11 +;SectionPrefixes=Ln ,Col ,Sel ,Sb ,SLn ,Occ ,,,,,,,Ch ,Repl ,Eval ,U+, +;SectionPostfixes=,,,,,,,,,,,,,,,, +;SectionWidthSpecs=30 20 20 20 20 20 20 0 0 0 0 0 0 0 20 24 +;ZeroBasedColumnIndex=0 +;ZeroBasedCharacterCount=0 +[Toolbar Images] +;BitmapDefault=<[:|relative_]\path_to>\Toolbar.bmp +;BitmapHot=<[:|relative_]\path_to>\ToolbarHot.bmp +;BitmapDisabled=<[:|relative_]\path_to>\ToolbarDisabled.bmp +[Toolbar Labels] +;01=New +;02=Open +;03=Browse +;04=Save +;05=Undo +;06=Redo +;07=Cut +;08=Copy +;09=Paste +;10=Find +;11=Replace +;12=Word Wrap +;13=Zoom In +;14=Zoom Out +;15=Scheme +;16=Customize Schemes +;17=Exit +;18=Save As +;19=Save Copy +;20=Delete +;21=Print +;22=Favorites +;23=Add to Favorites +;24=Toggle Folds +;25=Execute Document +;26=Focused View +;27=Monitoring Log +;28=History +;29=Always On Top +;30=Search in Files +;31=Reset Zoom +;32=New Empty Window +[Styles] +[Window] +;x DefaultWindowPosition= +[Suppressed Messages] +[Custom Colors] +[Common Base] +[2nd Common Base] +[Text Files] +[ANSI Art] +[Apache Config Files] +[Assembly Script] +[AutoHotkey Script] +[AutoIt3 Script] +[AviSynth Script] +[Awk Script] +[Batch Files] +[C# Source Code] +[C/C++ Source Code] +[Cmake Script] +[Coffeescript] +[Configuration Files] +[CSS Style Sheets] +[CSV Prism] +[D Source Code] +[Dart Source Code] +[Diff Files] +[Fortran Source Code] +[Go Source Code] +[Inno Setup Script] +[Java Source Code] +[JavaScript] +[JSON] +[Julia Script] +[KiXtart Script] +[Kotlin Source Code] +[LaTeX Files] +[Lua Script] +[Makefiles] +[Markdown] +[MATLAB] +[Nim Source Code] +[NSIS Script] +[Pascal Source Code] +[Perl Script] +[PowerShell Script] +[Python Script] +[Registry Files] +[Resource Script] +[R-S-SPlus Statistics Code] +[Ruby Script] +[Rust Source Code] +[Shell Script] +[SQL Query] +[SystemVerilog HDVL] +[Tcl Script] +[TOML Config] +[VBScript] +[Verilog HDL] +[VHDL] +[Visual Basic] +[Web Source Code] +[XML Document] +[YAML] +[Recent Files] +[Recent Find] +[Recent Replace] diff --git a/Build/make_portable_rel(.zip).cmd b/Build/make_portable_rel(.zip).cmd index 8d5382532..3eae84dfd 100644 --- a/Build/make_portable_rel(.zip).cmd +++ b/Build/make_portable_rel(.zip).cmd @@ -33,11 +33,11 @@ SET TEMP_NAME="make_portable_temp" IF NOT EXIST "..\%INPUTDIRx86%\Notepad3.exe" CALL :SUBMSG "ERROR" "Compile Notepad3 x86 first!" IF NOT EXIST "..\%INPUTDIRx86%\minipath.exe" CALL :SUBMSG "ERROR" "Compile MiniPath x86 first!" -IF NOT EXIST "..\%INPUTDIRx86%\grepWinNP3.exe" CALL :SUBMSG "ERROR" "Compile grepWinNP3 x86 first!" +::IF NOT EXIST "..\%INPUTDIRx86%\grepWinNP3.exe" CALL :SUBMSG "ERROR" "Compile grepWinNP3 x86 first!" IF NOT EXIST "..\%INPUTDIRx86%\np3encrypt.exe" CALL :SUBMSG "ERROR" "Compile np3encrypt x86 first!" IF NOT EXIST "..\%INPUTDIRx64%\Notepad3.exe" CALL :SUBMSG "ERROR" "Compile Notepad3 x64 first!" IF NOT EXIST "..\%INPUTDIRx64%\minipath.exe" CALL :SUBMSG "ERROR" "Compile MiniPath x64 first!" -IF NOT EXIST "..\%INPUTDIRx64%\grepWinNP3.exe" CALL :SUBMSG "ERROR" "Compile grepWinNP3 x64 first!" +::IF NOT EXIST "..\%INPUTDIRx64%\grepWinNP3.exe" CALL :SUBMSG "ERROR" "Compile grepWinNP3 x64 first!" IF NOT EXIST "..\%INPUTDIRx64%\np3encrypt.exe" CALL :SUBMSG "ERROR" "Compile np3encrypt x64 first!" CALL :SubGetVersion @@ -91,8 +91,8 @@ IF EXIST "%TEMP_NAME%" RD /S /Q "%TEMP_NAME%" IF NOT EXIST "%TEMP_NAME%" MD "%TEMP_NAME%" IF NOT EXIST "Packages" MD "Packages" -FOR %%A IN ("..\License.txt" "..\Readme.txt" "..\grepWinNP3\grepWinLicense.txt" "Notepad3.ini" "minipath.ini"^ - "..\%1\Notepad3.exe" "..\%1\minipath.exe" "..\%1\grepWinNP3.exe" "..\%1\np3encrypt.exe") DO COPY /Y /V "%%A" "%TEMP_NAME%\" +FOR %%A IN ("..\License.txt" "..\Readme.txt" "Notepad3.ini" "minipath.ini"^ + "..\%1\Notepad3.exe" "..\%1\minipath.exe" "..\%1\np3encrypt.exe") DO COPY /Y /V "%%A" "%TEMP_NAME%\" SET "LNG=%TEMP_NAME%\lng" SET "GRP=%TEMP_NAME%\lng\gwLng\" diff --git a/Build/scripts/BuildPortableApp.ps1 b/Build/scripts/BuildPortableApp.ps1 deleted file mode 100644 index 31acc142d..000000000 --- a/Build/scripts/BuildPortableApp.ps1 +++ /dev/null @@ -1,319 +0,0 @@ -# Build PortableApps Package for Notepad3 -# Usage: .\BuildPortableApp.ps1 [-SkipBuild] [-SkipVersionPatch] -# [-SkipLauncherGenerator] [-PortableAppsDir ] -# -# Steps: -# 1. Run Version.ps1 to generate VersionEx.h -# 2. Build x64 and Win32 Release -# 3. Copy binaries to PortableApp structure -# 4. Process appinfo_template.ini with version info -# 5. Generate Notepad3Portable.exe launcher -# 6. Package with PortableApps.comInstaller.exe - -[CmdletBinding()] -param( - [switch]$SkipBuild, - [switch]$SkipVersionPatch, - [switch]$SkipLauncherGenerator, - [string]$PortableAppsDir = "D:\PortableApps" -) - -$ErrorActionPreference = "Stop" -$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path -$RepoRoot = Split-Path -Parent (Split-Path -Parent $ScriptDir) - -$InstallerPath = Join-Path $PortableAppsDir "PortableApps.comInstaller\PortableApps.comInstaller.exe" - -$PortableAppRoot = Join-Path $RepoRoot "np3portableapp" -$PortableAppDir = Join-Path $PortableAppRoot "Notepad3Portable" -$AppInfoDir = Join-Path $PortableAppDir "App\AppInfo" -$Notepad3AppDir = Join-Path $PortableAppDir "App\Notepad3" - -# ============================================================ -# Helper: colored step banner -# ============================================================ -function Write-Step { - param([int]$Number, [string]$Text) - Write-Host "" - Write-Host "--- Step $Number : $Text ---" -ForegroundColor Cyan -} - -# ============================================================ -# Helper: detect PlatformToolset from installed Visual Studio -# ============================================================ -function Get-PlatformToolset { - $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" - if (-not (Test-Path $vswhere)) { - throw "vswhere.exe not found. Install Visual Studio." - } - $vsVersion = & $vswhere -latest -property installationVersion 2>$null - if (-not $vsVersion) { - throw "No Visual Studio installation found via vswhere." - } - $major = ([version]$vsVersion).Major - $toolsetMap = @{ 15 = 'v141'; 16 = 'v142'; 17 = 'v143'; 18 = 'v145' } - $toolset = $toolsetMap[$major] - if (-not $toolset) { - throw "Unknown Visual Studio major version $major - cannot determine PlatformToolset." - } - Write-Host "Visual Studio version: $vsVersion -> PlatformToolset: $toolset" -ForegroundColor Cyan - return $toolset -} - -# ============================================================ -# Helper: parse version defines from VersionEx.h -# ============================================================ -function Get-VersionFromHeader { - $headerPath = Join-Path $RepoRoot "src\VersionEx.h" - if (-not (Test-Path $headerPath)) { - throw "src\VersionEx.h not found. Run Version.ps1 first." - } - $content = Get-Content $headerPath -Raw - $defines = @{} - foreach ($name in @('VERSION_MAJOR', 'VERSION_MINOR', 'VERSION_REV', 'VERSION_BUILD')) { - if ($content -match "#define\s+$name\s+(\d+)") { - $defines[$name] = $Matches[1] - } - else { - throw "Could not parse $name from VersionEx.h" - } - } - $version = "$($defines['VERSION_MAJOR']).$($defines['VERSION_MINOR']).$($defines['VERSION_REV']).$($defines['VERSION_BUILD'])" - return $version -} - -# ============================================================ -# Helper: copy platform binaries to portable app target -# ============================================================ -function Copy-PlatformBinaries { - param( - [string]$SourceDir, - [string]$TargetDir - ) - - if (-not (Test-Path $SourceDir)) { - throw "Build output not found: $SourceDir" - } - - # Executables - foreach ($exe in @('Notepad3.exe', 'minipath.exe')) { - $src = Join-Path $SourceDir $exe - $dst = Join-Path $TargetDir $exe - if (-not (Test-Path $src)) { - throw "Missing binary: $src" - } - Copy-Item $src $dst -Force - Write-Host " Copied $exe" -ForegroundColor Gray - } - - # Language DLLs (np3lng.dll, mplng.dll) - $srcLng = Join-Path $SourceDir "lng" - $dstLng = Join-Path $TargetDir "lng" - foreach ($dll in @('np3lng.dll', 'mplng.dll')) { - $src = Join-Path $srcLng $dll - $dst = Join-Path $dstLng $dll - if (-not (Test-Path $src)) { - Write-Warning "Missing language DLL: $src (skipping)" - continue - } - Copy-Item $src $dst -Force - Write-Host " Copied lng\$dll" -ForegroundColor Gray - } - - # Locale MUI files - copy each locale subdirectory that exists in the target - $localeCount = 0 - Get-ChildItem $dstLng -Directory | Where-Object { $_.Name -match '^\w{2}-\w{2}$' } | ForEach-Object { - $locale = $_.Name - $srcLocale = Join-Path $srcLng $locale - if (Test-Path $srcLocale) { - Copy-Item "$srcLocale\*" $_.FullName -Force -Recurse - $localeCount++ - } - else { - Write-Warning " Locale $locale not found in build output (skipping)" - } - } - Write-Host " Copied $localeCount locale directories" -ForegroundColor Gray -} - -# ============================================================ -# Main -# ============================================================ -$stopwatch = [System.Diagnostics.Stopwatch]::StartNew() -Write-Host "=== Notepad3 PortableApps Package Builder ===" -ForegroundColor Green -Write-Host "Repository: $RepoRoot" -ForegroundColor Cyan - -# ---------------------------------------------------------- -# Step 1: Version patching -# ---------------------------------------------------------- -Write-Step 1 "Version Patching" -if ($SkipVersionPatch) { - Write-Host "Skipped (VersionEx.h assumed up-to-date)" -ForegroundColor Yellow -} -else { - Push-Location $RepoRoot - try { - & (Join-Path $RepoRoot "Version.ps1") - if ($LASTEXITCODE -ne 0) { - throw "Version.ps1 failed with exit code $LASTEXITCODE" - } - } - finally { - Pop-Location - } -} - -# ---------------------------------------------------------- -# Step 2: Parse version info -# ---------------------------------------------------------- -Write-Step 2 "Reading Version Info" -$Version = Get-VersionFromHeader -Write-Host "Version: $Version" -ForegroundColor Green - -# Read dev name from _buildname.txt -$buildNamePath = Join-Path $PortableAppRoot "_buildname.txt" -if (Test-Path $buildNamePath) { - $DevName = (Get-Content $buildNamePath -First 1).Trim().Trim('"').Trim("'") -} -else { - $DevName = "" -} -Write-Host "DevName: '$DevName'" -ForegroundColor Green - -# ---------------------------------------------------------- -# Step 3: Detect toolset and build -# ---------------------------------------------------------- -Write-Step 3 "Detecting Visual Studio Toolset" -$Toolset = Get-PlatformToolset - -$BinX64 = Join-Path $RepoRoot "Bin\Release_x64_$Toolset" -$BinX86 = Join-Path $RepoRoot "Bin\Release_x86_$Toolset" - -Write-Step 4 "Building x64 and Win32 Release" -if ($SkipBuild) { - Write-Host "Skipped (using existing binaries)" -ForegroundColor Yellow - if (-not (Test-Path $BinX64)) { throw "x64 build output not found: $BinX64" } - if (-not (Test-Path $BinX86)) { throw "x86 build output not found: $BinX86" } -} -else { - $buildScript = Join-Path $ScriptDir "Build.ps1" - - Write-Host "Building x64 Release..." -ForegroundColor Yellow - & $buildScript -Platform x64 -Configuration Release - if ($LASTEXITCODE -ne 0) { - throw "x64 build failed with exit code $LASTEXITCODE" - } - - Write-Host "" - Write-Host "Building Win32 Release..." -ForegroundColor Yellow - & $buildScript -Platform Win32 -Configuration Release - if ($LASTEXITCODE -ne 0) { - throw "Win32 build failed with exit code $LASTEXITCODE" - } -} - -# ---------------------------------------------------------- -# Step 5: Copy binaries to portable app structure -# ---------------------------------------------------------- -Write-Step 5 "Copying Binaries to Portable App" - -$targetX64 = Join-Path $Notepad3AppDir "x64" -$targetX86 = Join-Path $Notepad3AppDir "x86" - -Write-Host "x64: $BinX64 -> $targetX64" -ForegroundColor Yellow -Copy-PlatformBinaries -SourceDir $BinX64 -TargetDir $targetX64 - -Write-Host "x86: $BinX86 -> $targetX86" -ForegroundColor Yellow -Copy-PlatformBinaries -SourceDir $BinX86 -TargetDir $targetX86 - -# ---------------------------------------------------------- -# Step 6: Process appinfo_template.ini -# ---------------------------------------------------------- -Write-Step 6 "Generating appinfo.ini from Template" - -$templatePath = Join-Path $AppInfoDir "appinfo_template.ini" -$outputPath = Join-Path $AppInfoDir "appinfo.ini" - -if (-not (Test-Path $templatePath)) { - throw "Template not found: $templatePath" -} - -$content = Get-Content $templatePath -Raw -$content = $content -replace 'xxxVERSIONxxx', $Version -$content = $content -replace 'xxxDEVNAMExxx', $DevName -Set-Content -Path $outputPath -Value $content -NoNewline - -Write-Host "Generated: $outputPath" -ForegroundColor Green -Write-Host " PackageVersion = $Version" -ForegroundColor Gray -Write-Host " DisplayVersion = $Version$DevName" -ForegroundColor Gray -Write-Host " Name = Notepad3Portable$DevName" -ForegroundColor Gray - -# ---------------------------------------------------------- -# Step 7: Generate PortableApps Launcher -# ---------------------------------------------------------- -Write-Step 7 "Generating Notepad3Portable.exe Launcher" - -if ($SkipLauncherGenerator) { - Write-Host "Skipped (using existing Notepad3Portable.exe)" -ForegroundColor Yellow -} -else { - $LauncherGeneratorPath = Join-Path $PortableAppsDir "PortableApps.comLauncher\PortableApps.comLauncherGenerator.exe" - if (-not (Test-Path $LauncherGeneratorPath)) { - throw "PortableApps.comLauncherGenerator.exe not found: $LauncherGeneratorPath" - } - - Write-Host "Generator: $LauncherGeneratorPath" -ForegroundColor Cyan - Write-Host "App Dir: $PortableAppDir" -ForegroundColor Cyan - - # Passing the directory as a command-line argument triggers automatic compile mode. - $process = Start-Process -FilePath $LauncherGeneratorPath -ArgumentList "`"$PortableAppDir`"" ` - -Wait -PassThru - if ($process.ExitCode -ne 0) { - throw "PortableApps.comLauncherGenerator failed with exit code $($process.ExitCode)" - } - - $launcherExe = Join-Path $PortableAppDir "Notepad3Portable.exe" - if (-not (Test-Path $launcherExe)) { - throw "Launcher was not generated: $launcherExe" - } - Write-Host "Generated: $launcherExe" -ForegroundColor Green -} - -# ---------------------------------------------------------- -# Step 8: Build PortableApps package -# ---------------------------------------------------------- -Write-Step 8 "Building PortableApps Package" - -if (-not (Test-Path $InstallerPath)) { - throw "PortableApps.comInstaller.exe not found: $InstallerPath" -} - -Write-Host "Installer: $InstallerPath" -ForegroundColor Cyan -Write-Host "App Dir: $PortableAppDir" -ForegroundColor Cyan - -# Passing the directory as a command-line argument triggers automatic compile mode: -# welcome and options pages are skipped, finish page auto-closes on success. -$process = Start-Process -FilePath $InstallerPath -ArgumentList "`"$PortableAppDir`"" ` - -Wait -PassThru -if ($process.ExitCode -ne 0) { - throw "PortableApps.comInstaller failed with exit code $($process.ExitCode)" -} - -# Find the generated .paf.exe -$pafPattern = "Notepad3Portable_*.paf.exe" -$pafFiles = Get-ChildItem $PortableAppRoot -Filter $pafPattern | Sort-Object LastWriteTime -Descending -if ($pafFiles.Count -eq 0) { - throw "No .paf.exe output found matching $pafPattern in $PortableAppRoot" -} -$pafFile = $pafFiles[0] -$pafSize = [math]::Round($pafFile.Length / 1MB, 2) - -# ---------------------------------------------------------- -# Done -# ---------------------------------------------------------- -Write-Host "" -Write-Host "=== PortableApps Package Built Successfully! ===" -ForegroundColor Green -Write-Host " Output: $($pafFile.FullName)" -ForegroundColor Green -Write-Host " Size: $pafSize MB" -ForegroundColor Green -Write-Host " Time: $($stopwatch.Elapsed)" -ForegroundColor Cyan -exit 0 diff --git a/minipath/src/Config.cpp b/minipath/src/Config.cpp index 19405e62b..21bc6fbd0 100644 --- a/minipath/src/Config.cpp +++ b/minipath/src/Config.cpp @@ -731,16 +731,6 @@ int CheckIniFile(LPWSTR lpszFile, LPCWSTR lpszModule) StringCchCopy(lpszFile, MAX_PATH, tchBuild); return 1; } - // Sub directory (.\np3\) - StringCchCopy(tchBuild, COUNTOF(tchBuild), lpszModule); - if (SUCCEEDED(PathCchRemoveFileSpec(tchBuild, COUNTOF(tchBuild)))) { - StringCchCat(tchBuild, COUNTOF(tchBuild), L"\\np3\\"); - StringCchCat(tchBuild, COUNTOF(tchBuild), tchFileExpanded); - if (PathIsExistingFile(tchBuild)) { - StringCchCopy(lpszFile, MAX_PATH, tchBuild); - return 1; - } - } // Application Data (%APPDATA%) { PWSTR pszPath = nullptr; diff --git a/np3portableapp/Notepad3Portable/App/AppInfo/Launcher/Notepad3Portable.ini b/np3portableapp/Notepad3Portable/App/AppInfo/Launcher/Notepad3Portable.ini index 2dfaa0ddf..88165f1f3 100644 --- a/np3portableapp/Notepad3Portable/App/AppInfo/Launcher/Notepad3Portable.ini +++ b/np3portableapp/Notepad3Portable/App/AppInfo/Launcher/Notepad3Portable.ini @@ -1,23 +1,98 @@ -;Full details: https://portableapps.com/manuals/PortableApps.comLauncher/ +;This is an example launcher INI that is part of the PortableApps.com Template +;It uses a standard Windows INI format, so any line starting with a semi-colon is treated as a comment +;It is recommended that you use a coding text editor to edit this, preferably one with context highlighting +;If editing with Notepad++, be sure you have turned off the option to add a BOM as it will break the INI +;Full details: http://portableapps.com/manuals/PortableApps.comLauncher/ + [Launch] +;This section details how an app is started and where it works +;ProgramExecutable is the EXE to run to start the app relative to the AppNamePortable\App directory ProgramExecutable=Notepad3\x86\Notepad3.exe +;ProgramExecutable64 is an optional EXE to run if running on Windows 64-bit ProgramExecutable64=Notepad3\x64\Notepad3.exe +;CommandLineArguments is an optional setting that will cause the above EXE to be launched with this string passed +;CommandLineArguments=-settings=%PAL:DataDir%\ +;WorkingDirectory is the directory that will be used when launching which other items will be relative to. Use should be avoided when possible as it will prevent passing multiple relative file locations via command line +;WorkingDirectory=%PAL:AppDir%\AppName +;DirectoryMoveOK indicates whether a directory can be moved to a different path rather than just supporting drive letter changes DirectoryMoveOK=yes +;SupportsUNC indicates whether an app can run from a Windows UNC path, often referred to as a network path SupportsUNC=yes +;RunAsAdmin indicates whether an app requires admin rights to run. This should generally be avoided when possible +;Details: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/launch.html#runasadmin +;RunAsAdmin=try WaitForProgram=false CleanTemp=false SingleAppInstance=false [Activate] +;This section lets the launcher know what functionality needs to be included. +;IMPORTANT: Any changes to this section will require the launcher to be recompiled. +;Registry indicates whether we will be reading or writing to the registry. If not, setting to false will make the launcher slightly smaller and cause it to start slightly faster. Registry=false +;Java indicates whether the app needs Java to run +;Java=find +;XML indicates whether the launcher will need to read or write to XML paths within settings files of the app. If not, setting to false will make the launcher slightly smaller and cause it to start slightly faster. XML=false [Environment] +;This section lets the launcher know what environment variables need to be set. If not needed, this can be removed. +PORTABLEAPPS_DIR=%PAL:PortableAppsDir% +;NOTEPAD3_PORTABLE_PATH=%PAL:AppDir%\App\Notepad3 NOTEPAD3_PORTABLE_SETTINGS=%PAL:DataDir%\settings +[RegistryKeys] +;This section allows you to backup and restore a given key and the keys below it within the registry. Any existing data in the same location will be backed up before the app is run and restored on exit. The portable app's data will be stored in a .reg key with the name at the beginning of each line within the Data directory. It's best to take as little of the registry as possible. In our example, taking the whole ExamplePublisher section isn't necessary because all our app's data is stored within AppName. If we took ExamplePublisher, we might run into problems with other apps from the same publisher. +AppName=HKCU\Software\ExamplePublisher\AppName +;If there is some data in the registry that the app creates but does not need to be saved between sessions of the portable app, it can be handled using a - instead of a name for a .reg file as follows: +;-=HKCU\Software\ExamplePublisher\GarbageData + +[RegistryCleanupIfEmpty] +;This section allows you to remove sections of the registry if they are empty when the app exits. In this example, we're removing the app publisher's section if no local apps from the same publisher exit after our portable app exits so we don't leave behind an empty bit of registry. +;1=HKCU\Software\ExamplePublisher + +;ENVIRONMENT VARIABLES FOR USE WITH DIRECTORIES AND FILES +;These next sections deal with directory and file handling. For these, environment variable substitutions will apply +;Environment variables: http://portableapps.com/manuals/PortableApps.comLauncher/ref/envsub.html#ref-envsub + +[DirectoriesMove] +;This section allows you to configure directories that need to be moved from the Data directory to either the app's directory or to the local machine. Many standard environment variables are supported here including things like APPDATA. + +;This first entry will move the contents of AppNamePortable\Data\AppNameConfig to C:\Users\[user]\AppData\Roaming\ExamplePublisher\AppName while the app is running and back when complete. Any existing data will be backed up and restored. +;AppNameConfig=%APPDATA%\Rizonesoft\Notepad3 + +;This second entry will move the contents of AppNamePortable\Data\AppNamePortableConfig to AppNamePortable\App\AppName while the app is running and back when complete. +;AppNamePortableConfig=%PAL:AppDir%\Notepad3\Config + +;This entry indicates that the contents of C:\Users\[user]\AppData\Roaming\ExamplePublisher\GarbageData should be disposed of when the app is done running. Any existing data will be backed up and restored when complete. +;-=%APPDATA%\Rizonesoft\GarbageData + +[FilesMove] +;This section allows you to configure directories that need to be moved from the Data directory to either the app's directory or to the local machine. Many standard environment variables are supported here including things like APPDATA. + +;This first entry will move the file AppNamePortable\Data\appnameexample.config to C:\Users\[user]\AppData\Roaming\ExamplePublisher while the app is running and back when complete. Any existing data will be backed up and restored. +;appnameexample.config=%APPDATA%\ExamplePublisher + +;This second entry will move the file of AppNamePortable\Data\appnameportableexample.config to AppNamePortable\App\AppName while the app is running and back when complete. +;appnameportableexample.config=%PAL:AppDir%\AppName + +[DirectoriesCleanupIfEmpty] +;This section allows you to remove directories if they are empty when the app exits. In this example, we are removing the ExamplePublisher directory if it is empty so we don't leave a blank directory behind from the app. +;1=%APPDATA%\Rizonesoft + + +;FILEWRITE +;These entries allow you to update the paths within configuration and registry files +;The entries use the standard environment variables along with some additional modifiers +;Environment variables: http://portableapps.com/manuals/PortableApps.comLauncher/ref/envsub.html#ref-envsub + +;For these examples, we'll update the relative paths in both a standard config file and a .reg file + +;FileWrite1 to 3 will update the drive letter, relative path, and full path in a config file +;Note the order from most specific path to least, ensuring we don't change a drive letter alone before a full path [FileWrite1] Type=Replace -File=%PAL:DataDir%\settings\Notepad.ini +File=%PAL:DataDir%\settings\Notepad3.ini Find=%PAL:LastDrive%%PAL:LastPackagePartialDir% Replace=%PAL:Drive%%PAL:PackagePartialDir% @@ -32,3 +107,64 @@ Type=Replace File=%PAL:DataDir%\settings\Notepad3.ini Find=%PAL:LastDrive%\ Replace=%PAL:Drive%\ + +;FileWrite4 to 6 will update the drive letter, relative path, and full path in a registry file +;Note that we use double backslashes for the paths instead of singles because that is the way a .reg file stores them + +;[FileWrite4] +;Type=Replace +;File=%PAL:DataDir%\settings\AppName.reg +;Find=%PAL:LastDrive%%PAL:LastPackagePartialDir:DoubleBackslash%\\ +;Replace=%PAL:Drive%%PAL:PackagePartialDir:DoubleBackslash%\\ + +;[FileWrite5] +;Type=Replace +;File=%PAL:DataDir%\settings\AppName.reg +;Find=%PAL:LastPortableAppsBaseDir:DoubleBackslash%\\ +;Replace=%PAL:PortableAppsBaseDir:DoubleBackslash%\\ + +;[FileWrite6] +;Type=Replace +;File=%PAL:DataDir%\settings\AppName.reg +;Find=%PAL:LastDrive%\\ +;Replace=%PAL:Drive%\\ + +;FileWrite 7 is an example of writing a value directly to a file, to specify a path to plugins for example + +;[FileWrite7] +;Type=INI +;File=%PAL:DataDir%\settings\appnameportableexample.config +;Section=Paths +;Key=PluginsPath +;Value=%PAL:AppDir%\AppName\plugins + + + + + + +;Language switching is a bit beyond an example package such as this. The PortableApps.com Launcher does support automatic language switching with the platform but it is not required for portable apps. +;Details: http://portableapps.com/manuals/PortableApps.comLauncher/ref/launcher.ini/language.html + +;[Language] +;Base=%PortableApps.comLanguageCode% +;CheckIfExists=%PAL:AppDir%\Languages\%PAL:LanguageCustom%.locale +;DefaultIfNotExists=en + +;[LanguageStrings] +;ar-sa=ar + +;[LanguageFile] +;Type=INI +;File=%PAL:DataDir%\settings\appnameportableexample.config +;Section=Language +;Key=Language + +;Lastly, we'd need to save our changes to the language setting back to the configuration file + +;[FileWrite8] +;Type=INI +;File=%PAL:DataDir%\settings\appnameportableexample.config +;Section=Language +;Key=Language +;Value=%PAL:LanguageCustom% \ No newline at end of file diff --git a/np3portableapp/Notepad3Portable/App/AppInfo/appinfo.ini b/np3portableapp/Notepad3Portable/App/AppInfo/appinfo.ini index f821248b8..b687026b9 100644 --- a/np3portableapp/Notepad3Portable/App/AppInfo/appinfo.ini +++ b/np3portableapp/Notepad3Portable/App/AppInfo/appinfo.ini @@ -1,8 +1,8 @@ [Format] Type=PortableAppsFormat -Version=3.5 +Version=3.9 [Details] -Name=Notepad3Portable_beta +Name=Notepad3Portable AppId=Notepad3Portable BaseAppName=Notepad3 Publisher=Notepad3 Contibutors & Rizonesoft & PortableApps.com @@ -15,17 +15,16 @@ Shareable=true OpenSource=true Freeware=true CommercialUse=true -[Version] -PackageVersion=7.26.314.1 -DisplayVersion=7.26.314.1_beta [SpecialPaths] Plugins=NONE [Dependencies] UsesJava=false UsesDotNetVersion=false +[Version] +PackageVersion=7.26.404.1 +DisplayVersion=7.26.404.1 [Control] Icons=1 Start=Notepad3Portable.exe [Associations] FileTypes=txt,html,htm,xmp,php,asp,css,js,vb,vbs,c,cpp,h,rs,mak,java,pas,inc,bat,diff,ps1,ahk,au3,avs,cmake,iss,latex,lua,nsi,nsh,nfo,tcl,rb -[FileTypeIcons] diff --git a/np3portableapp/Notepad3Portable/App/AppInfo/appinfo_template.ini b/np3portableapp/Notepad3Portable/App/AppInfo/appinfo_template.ini index ffdd97344..92bc74135 100644 --- a/np3portableapp/Notepad3Portable/App/AppInfo/appinfo_template.ini +++ b/np3portableapp/Notepad3Portable/App/AppInfo/appinfo_template.ini @@ -1,7 +1,7 @@ ;Full details on this file: https://portableapps.com/development/portableapps.com_format#appinfo [Format] Type=PortableAppsFormat -Version=3.5 +Version=3.9 [Details] Name=Notepad3PortablexxxDEVNAMExxx @@ -16,31 +16,50 @@ Language=Multilingual ;InstallType= [License] +;This section includes licensing details on the bundled app. +;Shareable indicates whether an app may be shared from one user to another. Generally true except for commercial apps Shareable=true +;OpenSource indicates whether an app is open source under an OSI license OpenSource=true +;Freeware indicates whether an app is freeware and may be used with no charge to the user Freeware=true +;CommercialUse indicates whether this app may legally be used in a business setting. Some freeware prohibits this CommercialUse=true +;EULAVersion is the version of the license that comes with the app that the user must agree to before use. This is included as a file EULA.txt within the AppInfo directory. An EULA should *only* be used if the user is required to agree to it before installing. Each time a major change is made to the EULA (not just a formatting change) the version should be increased. Note that open source licenses (GPL, MIT, etc) do not need to be agreed to by the user and should not be included as an EULA.txt. ;EULAVersion=1 -[Version] -PackageVersion=xxxVERSIONxxx -DisplayVersion=xxxVERSIONxxxxxxDEVNAMExxx - [SpecialPaths] Plugins=NONE [Dependencies] +;This section indicates to the launcher and platform what this app needs to function +;See details at: https://portableapps.com/development/portableapps.com_format#appinfo +;UsesGhostscript=optional UsesJava=false UsesDotNetVersion=false +;Requires64bitOS=yes +;RequiresAdmin=no + +[Version] +;PackageVersion is used by the installer and the updater. It must be in dotted quad X.X.X.X format for use by Windows. You must ensure that each successive version has a higher package version than the previous or it will not be treated as a newer version by the platform's updater. Generally, the PackageVersion is based on the DisplayVersion. So an app with version 3.5 will have a package version of 3.5.0.0. +PackageVersion=xxxVERSIONxxx +;DisplayVersion is displayed to the user and used in naming the installer +DisplayVersion=xxxVERSIONxxxxxxDEVNAMExxx [Control] +;This indicates to the platform how many icons a given app should have and how the app should be started. All official apps should generally have a single icon. The only exception is for office suites that include multiple big apps. See LibreOffice Portable for an example. Icons=1 +;Start is the EXE that should be run to start the app Start=Notepad3Portable.exe ;ExtractIcon=App\Notepad3\x86\Notepad3.exe ;ExtractName=App\Notepad3\x86\Notepad3.exe +;BaseAppID is the app ID used by Windows for taskbar pinning ;BaseAppID=%BASELAUNCHERPATH%\App\Notepad3\x86\Notepad3.exe +;BaseAppID64=%BASELAUNCHERPATH%\App\Notepad3\x64\Notepad3.exe [Associations] +;This section indicates to the platform which extensions the app can handle and how to start the app +;See details at: https://portableapps.com/development/portableapps.com_format#appinfo FileTypes=txt,html,htm,xmp,php,asp,css,js,vb,vbs,c,cpp,h,rs,mak,java,pas,inc,bat,diff,ps1,ahk,au3,avs,cmake,iss,latex,lua,nsi,nsh,nfo,tcl,rb ;FileTypeCommandLine=/Open=%1 ;FileTypeCommandLine-extension=/OpenExtension=%1 @@ -52,7 +71,9 @@ FileTypes=txt,html,htm,xmp,php,asp,css,js,vb,vbs,c,cpp,h,rs,mak,java,pas,inc,bat ;Shell=true ;ShellCommand=/idlist,%I,%L -[FileTypeIcons] +;[FileTypeIcons] +;This section indicates which icons to associate with the file types listed in Associations +;See details at: https://portableapps.com/development/portableapps.com_format#appinfo ;swf=video ;ttp=custom ;qwe=app diff --git a/np3portableapp/Notepad3Portable/App/DefaultData/settings/Notepad3.ini b/np3portableapp/Notepad3Portable/App/DefaultData/settings/Notepad3.ini index e53bf1105..564d1514a 100644 --- a/np3portableapp/Notepad3Portable/App/DefaultData/settings/Notepad3.ini +++ b/np3portableapp/Notepad3Portable/App/DefaultData/settings/Notepad3.ini @@ -5,6 +5,7 @@ SettingsVersion=5 ;AnalyzeReliableConfidenceLevel=50 [Settings2] +grepWin.exe=%PORTABLEAPPS_DIR%\grepWinPortable\grepWinPortable.exe ;IMEInteraction=0 ;DateTimeFormat= ;(-> ) ;DateTimeLongFormat= ;(-> ) @@ -14,7 +15,6 @@ SettingsVersion=5 ;DefaultExtension=txt ;DenyVirtualSpaceAccess=0 ;filebrowser.exe=minipath.exe -;grepWin.exe=grepWinNP3.exe ;FileCheckInterval=2000 ;(min: 200[msec] - if equal or less, notify immediately) ;FileWatchingMethod=0 ;(0=both[default], 1=poll-only, 2=push-only) ;FileChangedIndicator=[@] diff --git a/np3portableapp/Notepad3Portable/App/Notepad3/Docs/Changes.txt b/np3portableapp/Notepad3Portable/App/Notepad3/Docs/Changes.txt index 4d92b3e50..d8ff4bea3 100644 --- a/np3portableapp/Notepad3Portable/App/Notepad3/Docs/Changes.txt +++ b/np3portableapp/Notepad3Portable/App/Notepad3/Docs/Changes.txt @@ -35,7 +35,7 @@ UCH - (UCH)ARDET is an Encoding Detector Library ======================================================== -Current BETA Version 7.26.4µµ.(build_#) (2026-04-µµ) +Current BETA Version 7.26.314.(build_#) (2026-03-14) ======================================================== -------------------------------------------------------- @@ -57,7 +57,6 @@ NEW: CHANGES: -------------------------------------------------------- [.xxx.x]- -[.04µµ.1]- Migration to original grepWin tooling (remove home brew project). [.306.1]- Synchronise with current scintilla mirror. [.306.1]- Update SimpleIni header only lib (to v4.25). [.306.1]- Major version 6 → 7 for Win10 minimum. @@ -122,7 +121,6 @@ FIXES: -------------------------------------------------------- REMOVED: [.xxx.x]- -[.4µµ.1]- Remove grepWinNP3 project from main. [.306.1]- Remove deprecated Win7 compatibility and UTF-32 detection. [.303.1]- Remove retired Oniguruma regex Engine (ONI). [.227.1]- Remove obsolete AppVeyor CI build. diff --git a/np3portableapp/Notepad3Portable/App/Notepad3/x64/np3/Notepad3.ini b/np3portableapp/Notepad3Portable/App/Notepad3/x64/Notepad3.ini similarity index 100% rename from np3portableapp/Notepad3Portable/App/Notepad3/x64/np3/Notepad3.ini rename to np3portableapp/Notepad3Portable/App/Notepad3/x64/Notepad3.ini diff --git a/np3portableapp/Notepad3Portable/App/Notepad3/x86/np3/Notepad3.ini b/np3portableapp/Notepad3Portable/App/Notepad3/x86/Notepad3.ini similarity index 100% rename from np3portableapp/Notepad3Portable/App/Notepad3/x86/np3/Notepad3.ini rename to np3portableapp/Notepad3Portable/App/Notepad3/x86/Notepad3.ini diff --git a/np3portableapp/_buildname.txt b/np3portableapp/_buildname.txt index 607e7f398..e16c76dff 100644 --- a/np3portableapp/_buildname.txt +++ b/np3portableapp/_buildname.txt @@ -1 +1 @@ -"_beta" +"" diff --git a/np3portableapp/build_np3portableapp.cmd b/np3portableapp/build_np3portableapp.cmd index cb416041d..dd9fc5ac3 100644 --- a/np3portableapp/build_np3portableapp.cmd +++ b/np3portableapp/build_np3portableapp.cmd @@ -12,7 +12,7 @@ chcp 65001 >nul 2>&1 :: :: --------------------------------------------------------------------------------------------------- :: Based on PortableApps.com's Application_Template: -:: (https://downloads.sourceforge.net/portableapps/PortableApps.com_Application_Template_3.4.1.zip) +:: (https://sourceforge.net/projects/portableapps/files/PortableApps.com%20Template/PortableApps.com_Application_Template_3.9.0.zip) :: --------------------------------------------------------------------------------------------------- :: :: Prerequisites: (portable) intallation of: @@ -35,6 +35,7 @@ if exist %~d0\PortableApps\PortableApps.comInstaller\ ( if exist %~d0\Rizonesoft\PortableApps\PortableApps\PortableApps.comInstaller\ ( set PORTAPP_ROOT_DIR=%~d0\Rizonesoft\PortableApps\PortableApps ) else ( + echo. "Can't find PortableApps Platform!" goto :END ) ) @@ -49,7 +50,8 @@ call :RESOLVEPATH NP3_BUILD_SCHEMES_DIR %SCRIPT_DIR%..\Build\Themes call :RESOLVEPATH NP3_WIN32_DIR %SCRIPT_DIR%..\Bin\Release_x86_v145 call :RESOLVEPATH NP3_X64_DIR %SCRIPT_DIR%..\Bin\Release_x64_v145 -call :RESOLVEPATH GREPWIN_DIR %SCRIPT_DIR%..\grepWin +rem - We will rely on PortableApps Platform installed grepWinPortable +rem ~ call :RESOLVEPATH GREPWIN_DIR %SCRIPT_DIR%..\grepWin call :RESOLVEPATH NP3_PORTAPP_DIR %SCRIPT_DIR%Notepad3Portable call :RESOLVEPATH NP3_PORTAPP_INFO %NP3_PORTAPP_DIR%\App\AppInfo\appinfo @@ -91,9 +93,9 @@ if exist "%NP3_PORTAPP_DIR%\App\Notepad3\x86\lng" rmdir "%NP3_PORTAPP_DIR%\App\N if exist "%NP3_PORTAPP_DIR%\App\Notepad3\x64\lng" rmdir "%NP3_PORTAPP_DIR%\App\Notepad3\x64\lng" /S /Q -if exist "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin" rmdir "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin" /S /Q - -if exist "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin" rmdir "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin" /S /Q +rem - We will rely on PortableApps Platform installed grepWinPortable +rem ~ if exist "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin" rmdir "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin" /S /Q +rem ~if exist "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin" rmdir "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin" /S /Q if not exist "%NP3_PORTAPP_DIR%\App\DefaultData\settings\" ( mkdir "%NP3_PORTAPP_DIR%\App\DefaultData\settings\" @@ -136,7 +138,7 @@ copy /B "%NP3_WIN32_DIR%\minipath.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x86\" copy /B "%NP3_X64_DIR%\minipath.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x64\" /Y /V :: Copy all current ".ini" files -copy "%NP3_DISTRIB_DIR%\Notepad3.ini" "%NP3_PORTAPP_DIR%\App\DefaultData\settings\Notepad3.ini" /Y /V +copy "%NP3_DISTRIB_DIR%\Notepad3_pap.ini" "%NP3_PORTAPP_DIR%\App\DefaultData\settings\Notepad3.ini" /Y /V copy "%NP3_DISTRIB_DIR%\minipath.ini" "%NP3_PORTAPP_DIR%\App\DefaultData\settings\minipath.ini" /Y /V :: Copy all current "Themes" files @@ -158,20 +160,20 @@ for /d %%d in (%NP3_LANGUAGE_SET%) do ( copy /B "%NP3_X64_DIR%\lng\np3lng.dll" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x64\lng\" /Y /V copy /B "%NP3_X64_DIR%\lng\mplng.dll" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x64\lng\" /Y /V -:: Copy all current "grepWin" and "np3encrypt" files -if not exist "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\" mkdir "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin" -copy "%GREPWIN_DIR%\portables\grepWin-x86_portable.exe" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\grepWin-x86_portable.exe" /Y /V -copy "%GREPWIN_DIR%\portables\LICENSE.txt" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\LICENSE.txt" /Y /V -copy "%GREPWIN_DIR%\portables\website.url" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\website.url" /Y /V -copy "%GREPWIN_DIR%\translations\*.lang" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\*.lang" /Y /V -copy /B "%NP3_WIN32_DIR%\np3encrypt.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x86\" /Y /V - -if not exist "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\" mkdir "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin" -copy "%GREPWIN_DIR%\portables\grepWin-x64_portable.exe" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\grepWin-64_portable.exe" /Y /V -copy "%GREPWIN_DIR%\portables\LICENSE.txt" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\LICENSE.txt" /Y /V -copy "%GREPWIN_DIR%\portables\website.url" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\website.url" /Y /V -copy "%GREPWIN_DIR%\translations\*.lang" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\*.lang" /Y /V -copy /B "%NP3_X64_DIR%\np3encrypt.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x64\" /Y /V +:: Don't copy np3encrypt or grepWin +rem ~if not exist "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\" mkdir "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin" +rem ~copy "%GREPWIN_DIR%\portables\grepWin-x86_portable.exe" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\grepWin-x86_portable.exe" /Y /V +rem ~copy "%GREPWIN_DIR%\portables\LICENSE.txt" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\LICENSE.txt" /Y /V +rem ~copy "%GREPWIN_DIR%\portables\website.url" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\website.url" /Y /V +rem ~copy "%GREPWIN_DIR%\translations\*.lang" "%NP3_PORTAPP_DIR%\App\Notepad3\x86\grepWin\*.lang" /Y /V +rem ~copy /B "%NP3_WIN32_DIR%\np3encrypt.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x86\" /Y /V +rem ~ +rem ~if not exist "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\" mkdir "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin" +rem ~copy "%GREPWIN_DIR%\portables\grepWin-x64_portable.exe" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\grepWin-64_portable.exe" /Y /V +rem ~copy "%GREPWIN_DIR%\portables\LICENSE.txt" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\LICENSE.txt" /Y /V +rem ~copy "%GREPWIN_DIR%\portables\website.url" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\website.url" /Y /V +rem ~copy "%GREPWIN_DIR%\translations\*.lang" "%NP3_PORTAPP_DIR%\App\Notepad3\x64\grepWin\*.lang" /Y /V +rem ~copy /B "%NP3_X64_DIR%\np3encrypt.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x64\" /Y /V :: --------------------------------------------------------------------------------------------------- @@ -203,7 +205,7 @@ set Notepad3Portable.paf.exe=%SCRIPT_DIR%Notepad3Portable_%VERSION%%DEVNAME%.paf if exist %Notepad3Portable.paf.exe% ( copy /B %Notepad3Portable.paf.exe% %Notepad3Portable.paf.exe%.7z /Y /V ) else ( - echo. "Notepad3Portable_x.xx.xxx.x_yyyy.paf.exe" does not exist + echo. "Notepad3Portable_x.xx.xxx.x_yyyy.paf.exe" does not exist! ) :: =================================================================================================== diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 31b5909bb..d89e24dca 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -922,20 +922,6 @@ static bool _CheckAndSetIniFile(HPATHL hpth_in_out) const wchar_t* const wchMore = Path_IsNotEmpty(hpth_in_out) ? Path_FindFileName(hpth_in_out) : SAPPNAME L".ini"; - if (!result) { - // sub directory (.\np3\) - HPATHL hmodpth = Path_Allocate(NULL); - Path_GetAppDirectory(hmodpth); - Path_Append(hmodpth, L"./np3/"); - Path_Append(hmodpth, wchMore); - result = Path_IsExistingFile(hmodpth); - if (result) { - Path_Swap(hPathEx, hmodpth); - result = true; - } - Path_Release(hmodpth); - } - if (!result) { // Application Data (%APPDATA%) HPATHL happdata = Path_Allocate(NULL);