From dcdec010a67a6fb7d1c3ede1cbd31b5b8df4f4e2 Mon Sep 17 00:00:00 2001 From: "Charlton, Scott R." Date: Thu, 11 Apr 2024 15:14:55 -0600 Subject: [PATCH 1/6] Changed sprintf to snprintf --- src/mainsubs.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/mainsubs.cpp b/src/mainsubs.cpp index c57ee5fc0..e57c6389c 100644 --- a/src/mainsubs.cpp +++ b/src/mainsubs.cpp @@ -381,7 +381,7 @@ initial_solutions(int print) } if (print == TRUE) { - sprintf(token, "Initial solution %d.\t%.350s", + snprintf(token, sizeof(token), "Initial solution %d.\t%.350s", solution_ref.Get_n_user(), solution_ref.Get_description().c_str()); dup_print(token, FALSE); } @@ -521,7 +521,7 @@ initial_exchangers(int print) } if (print == TRUE) { - sprintf(token, "Exchange %d.\t%.350s", + snprintf(token, sizeof(token), "Exchange %d.\t%.350s", exchange_ptr->Get_n_user(), exchange_ptr->Get_description().c_str()); dup_print(token, FALSE); } @@ -613,7 +613,7 @@ initial_gas_phases(int print) } if (print == TRUE) { - sprintf(token, "Gas_Phase %d.\t%.350s", + snprintf(token, sizeof(token), "Gas_Phase %d.\t%.350s", gas_phase_ptr->Get_n_user(), gas_phase_ptr->Get_description().c_str()); dup_print(token, FALSE); } @@ -664,7 +664,7 @@ initial_gas_phases(int print) } if (fabs(gas_phase_ptr->Get_total_p() - use.Get_solution_ptr()->Get_patm()) > 5) { - sprintf(token, + snprintf(token, sizeof(token), "WARNING: While initializing gas phase composition by equilibrating:\n%s (%.2f atm) %s (%.2f atm).\n%s.", " Gas phase pressure", (double) gas_phase_ptr->Get_total_p(), @@ -835,7 +835,7 @@ reactions(void) for (reaction_step = 1; reaction_step <= count_steps; reaction_step++) { overall_iterations = 0; - sprintf(token, "Reaction step %d.", reaction_step); + snprintf(token, sizeof(token), "Reaction step %d.", reaction_step); if (reaction_step > 1 && incremental_reactions == FALSE) { copy_use(-2); @@ -941,7 +941,7 @@ saver(void) if (save.solution == TRUE) { - sprintf(token, "Solution after simulation %d.", simulation); + snprintf(token, sizeof(token), "Solution after simulation %d.", simulation); description_x = token; n = save.n_solution_user; xsolution_save(n); @@ -1032,7 +1032,7 @@ xexchange_save(int n_user) temp_exchange.Set_n_user(n_user); temp_exchange.Set_n_user_end(n_user); temp_exchange.Set_new_def(false); - sprintf(token, "Exchange assemblage after simulation %d.", simulation); + snprintf(token, sizeof(token), "Exchange assemblage after simulation %d.", simulation); temp_exchange.Set_description(token); temp_exchange.Set_solution_equilibria(false); temp_exchange.Set_n_solution(-999); @@ -1115,7 +1115,7 @@ xgas_save(int n_user) */ temp_gas_phase.Set_n_user(n_user); temp_gas_phase.Set_n_user_end(n_user); - sprintf(token, "Gas phase after simulation %d.", simulation); + snprintf(token, sizeof(token), "Gas phase after simulation %d.", simulation); temp_gas_phase.Set_description(token); temp_gas_phase.Set_new_def(false); temp_gas_phase.Set_solution_equilibria(false); @@ -2102,10 +2102,10 @@ run_simulations(void) #endif #if defined PHREEQCI_GUI - sprintf(token, "\nSimulation %d\n", simulation); + snprintf(token, sizeof(token), "\nSimulation %d\n", simulation); screen_msg(token); #endif - sprintf(token, "Reading input data for simulation %d.", simulation); + snprintf(token, sizeof(token), "Reading input data for simulation %d.", simulation); dup_print(token, TRUE); if (read_input() == EOF) @@ -2113,7 +2113,7 @@ run_simulations(void) if (title_x.size() > 0) { - sprintf(token, "TITLE"); + snprintf(token, sizeof(token), "TITLE"); dup_print(token, TRUE); if (pr.headings == TRUE) { From f40b51c551a082d2f88085cc5e635f7267f3040d Mon Sep 17 00:00:00 2001 From: "Charlton, Scott R." Date: Mon, 15 Apr 2024 14:16:16 -0600 Subject: [PATCH 2/6] Starting chm build --- .github/workflows/chm.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/chm.yml diff --git a/.github/workflows/chm.yml b/.github/workflows/chm.yml new file mode 100644 index 000000000..0456d72d7 --- /dev/null +++ b/.github/workflows/chm.yml @@ -0,0 +1,30 @@ +name: chm + +on: + push: + branches: + - master + - develop + paths-ignore: + - 'doc/**' + - 'Version3/**' + - 'README.md' + pull_request: + branches: + - master + - develop + paths-ignore: + - 'doc/**' + - 'Version3/**' + - 'README.md' + schedule: + - cron: '1 2 2/7 * *' + workflow_dispatch: + +jobs: + build-chm: + runs-on: windows-latest + steps: + + - name: '🧰 Checkout' + uses: actions/checkout@v4 From 90b9d1f7c97f802b5ec0f88685e4b9d16c9314f3 Mon Sep 17 00:00:00 2001 From: "Charlton, Scott R." Date: Mon, 15 Apr 2024 14:28:49 -0600 Subject: [PATCH 3/6] Added fixup_html step --- .github/workflows/chm.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/chm.yml b/.github/workflows/chm.yml index 0456d72d7..e98d9cdf9 100644 --- a/.github/workflows/chm.yml +++ b/.github/workflows/chm.yml @@ -28,3 +28,8 @@ jobs: - name: '🧰 Checkout' uses: actions/checkout@v4 + + - name: 'fixup_html' + shell: bash + working-directory: ./HTMLversion/HTML + run: ./fixup_html.bash From 73ee5e160ac160c32f5103b9391d984fd7f23f50 Mon Sep 17 00:00:00 2001 From: "Charlton, Scott R." Date: Mon, 15 Apr 2024 14:50:00 -0600 Subject: [PATCH 4/6] Added htmlhelp steps --- .github/workflows/chm.yml | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/.github/workflows/chm.yml b/.github/workflows/chm.yml index e98d9cdf9..de6e092d8 100644 --- a/.github/workflows/chm.yml +++ b/.github/workflows/chm.yml @@ -31,5 +31,37 @@ jobs: - name: 'fixup_html' shell: bash - working-directory: ./HTMLversion/HTML + working-directory: ${{ github.workspace }}/HTMLversion/HTML run: ./fixup_html.bash + + - name: cache htmlhelp + id: cache-htmlhelp + uses: actions/cache@v4 + with: + path: "C:/Program Files (x86)/HTML Help Workshop" + key: ${{ runner.os }}-htmlhelp + + - name: install htmlhelp + if: steps.cache-htmlhelp.outputs.cache-hit != 'true' + timeout-minutes: 5 + run: | + curl -L -O --max-time 120 http://web.archive.org/web/20160201063255/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe + cmd /c start /wait .\htmlhelp.exe /q /c /t:$(Get-Location)\tmp + $file = "$(Get-Location)\tmp\htmlhelp.inf" + (Get-Content $file) | Foreach-Object { $_ ` + -replace '^BeginPrompt', ';;BeginPrompt' ` + -replace '^EndPrompt', ';;EndPrompt' ` + -replace '^49000=CustomLDID49000, 1', '49000=CustomLDID49000, 5' ` + -replace '^"hhupd.exe', ';;hhupd.exe' ` + -replace '^DefaultInstallDir="C:\\Program Files\\HTML Help Workshop"', 'DefaultInstallDir="%ProgramFiles%\\HTML Help Workshop"' + } | Set-Content $file + cmd /c start /wait .\tmp\setup.exe + Remove-Item -Recurse -Force .\tmp + Remove-Item -Recurse -Force .\htmlhelp.exe + # the next line doesn't seem to work (supposed to set the path) + # echo 'C:\Program Files (x86)\HTML Help Workshop' >> $GITHUB_PATH + Write-Output 'C:\Program Files (x86)\HTML Help Workshop' | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + + - name: 'hhc' + working-directory: ${{ github.workspace }}/HTMLversion + run: Get-Command hhc From 1bd1a8b15d3e44e8f55adb06712f8d4d44793263 Mon Sep 17 00:00:00 2001 From: "Charlton, Scott R." Date: Mon, 15 Apr 2024 15:12:46 -0600 Subject: [PATCH 5/6] Added compile and upload step --- .github/workflows/chm.yml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/chm.yml b/.github/workflows/chm.yml index de6e092d8..d15352dbb 100644 --- a/.github/workflows/chm.yml +++ b/.github/workflows/chm.yml @@ -58,10 +58,27 @@ jobs: cmd /c start /wait .\tmp\setup.exe Remove-Item -Recurse -Force .\tmp Remove-Item -Recurse -Force .\htmlhelp.exe - # the next line doesn't seem to work (supposed to set the path) - # echo 'C:\Program Files (x86)\HTML Help Workshop' >> $GITHUB_PATH + # set path Write-Output 'C:\Program Files (x86)\HTML Help Workshop' | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - name: 'hhc' + - name: compile chm + shell: bash working-directory: ${{ github.workspace }}/HTMLversion - run: Get-Command hhc + run: | + # hhc returns 1 on success + set +e + hhc phreeqc3.hhp | tee hhc.out + status=${PIPESTATUS[0]} + set -e + if [ "$status" -eq 1 ]; then + echo "[OK]" + exit 0 + else + echo "[FAILED]" + exit 1 + fi + + - uses: actions/upload-artifact@v4 + with: + name: chm + path: ${{github.workspace}}/HTMLversion/phreeqc3.chm From 4969164a94524f59a7b4c041831ac3f12a19ea69 Mon Sep 17 00:00:00 2001 From: "Charlton, Scott R." Date: Mon, 15 Apr 2024 15:20:36 -0600 Subject: [PATCH 6/6] Moved htmlhelp path to new step --- .github/workflows/chm.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/chm.yml b/.github/workflows/chm.yml index d15352dbb..2255c4d8f 100644 --- a/.github/workflows/chm.yml +++ b/.github/workflows/chm.yml @@ -58,8 +58,9 @@ jobs: cmd /c start /wait .\tmp\setup.exe Remove-Item -Recurse -Force .\tmp Remove-Item -Recurse -Force .\htmlhelp.exe - # set path - Write-Output 'C:\Program Files (x86)\HTML Help Workshop' | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + + - name: add htmlhelp to path + run: Write-Output 'C:\Program Files (x86)\HTML Help Workshop' | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: compile chm shell: bash