Jay Berkenbilt
59834db472
Add documentation for code formatting and contribution guidelines
2022-04-09 12:25:08 -04:00
Jay Berkenbilt
e4484fd94c
Update ChangeLog and release notes
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
e316e90d1f
Add installed package smoke tests in pkg-test directory
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
acdf5b2e7a
Update process for ABI testing
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
f58d2a60d5
Update build-related documentation and comments
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
70d0d0889b
Remove old build files
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
b8aff90997
Add cmake configuration files
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
b1ede4c0bf
Add remimder to update list of files in CMakeLists.txt
2022-03-18 19:53:18 -04:00
Jay Berkenbilt
ff481b590b
Let cmake replace the project version in manual pages
...
Also update to cmake variable rather than autoconf variable
2022-03-18 19:53:18 -04:00
m-holger
b8ec4395e7
Minor manual fixes
2022-03-12 14:10:43 -05:00
Jay Berkenbilt
584793ea1e
Spell check, update release notes for 10.6.3
2022-03-07 18:22:34 -05:00
Jay Berkenbilt
78ad4ad180
Bump version to 10.6.3
2022-02-26 07:15:14 -05:00
Jay Berkenbilt
dca0c7eae6
Simplify confusing terminology in the README and manual ( fixes #660 )
...
Some people don't know what CI is, so remove use of that abbreviation
when it doesn't add any value.
2022-02-25 18:21:50 -05:00
Jay Berkenbilt
f7ac591590
Recognize explicit UTF-8 strings ( fixes #654 )
2022-02-22 08:10:05 -05:00
Jay Berkenbilt
07a2bb332d
Add documentation and release notes around 0 Tf issue
2022-02-22 08:10:05 -05:00
Jay Berkenbilt
38d8362c09
Prepare 10.6.2 release
2022-02-15 19:36:39 -05:00
Jay Berkenbilt
e35abe2fb7
Add release notes for 10.6.2 changes so far
2022-02-15 16:15:57 -05:00
Jay Berkenbilt
2b8d0f385b
Prepare 10.6.1 release
2022-02-11 09:36:17 -05:00
Jay Berkenbilt
235c89e037
Fix one more PDF doc encoding error for 10.6 release ( fixes #637 )
2022-02-09 05:47:58 -05:00
Jay Berkenbilt
15248592c9
Prepare 10.6.0 release (take 2)
2022-02-08 17:37:12 -05:00
Jay Berkenbilt
d6fe473029
Prepare 10.6.0 release
2022-02-08 16:54:03 -05:00
Jay Berkenbilt
ec778ef98b
Add additional comments about new accessor methods
2022-02-08 16:49:43 -05:00
Jay Berkenbilt
acc24ba494
Only install docs if they exist
...
Sometimes someone may build only a subset of the documentation. The
logic has to be conditional upon whether it exists, not whether it is
built, since we pull pre-built docs in for CI installation.
2022-02-08 13:52:01 -05:00
Dirk Müller
043c44556a
Use DOC_DEST variable for installing documentation
2022-02-08 13:47:50 -05:00
Jay Berkenbilt
f91b21c7d4
Preserve input PDF version on pages/split-pages ( fixes #610 )
2022-02-08 12:34:14 -05:00
m-holger
716381f65a
Fix doc typos
2022-02-08 11:50:58 -05:00
Jay Berkenbilt
dd4f30226f
Rework PointerHolder transition to make it smoother
...
* Don't surprise people with deprecation warnings
* Provide detailed instructions and support for the transition
2022-02-07 17:38:20 -05:00
Jay Berkenbilt
4fd619818c
Fix doc typo
2022-02-06 11:27:02 -05:00
Jay Berkenbilt
6a2456f732
Comment, ChangeLog, release note for new contribution
2022-02-06 11:27:02 -05:00
Jay Berkenbilt
eb481eb698
Prepare release notes for 10.6 (so far)
2022-02-05 15:41:22 -05:00
Jay Berkenbilt
c95f02115c
Doc updates from m-holger
2022-02-05 12:37:15 -05:00
Jay Berkenbilt
cfaa2de804
Update copyright for 2022
2022-02-04 16:36:22 -05:00
Jay Berkenbilt
bc4e2320e7
Add qpdfjob-c.h -- simple C API around parts of QPDFJob
2022-02-01 09:04:55 -05:00
Jay Berkenbilt
cc5485dac1
QPDFJob: documentation
2022-02-01 09:04:55 -05:00
Jay Berkenbilt
5953116634
Clean up documentation and help around json options
2022-01-31 18:40:11 -05:00
Jay Berkenbilt
606420ab54
Tweak short text for job schema help
2022-01-31 18:26:03 -05:00
Jay Berkenbilt
e3506253f1
Add optional version to --json
2022-01-31 15:57:45 -05:00
Jay Berkenbilt
7eeaf58bb7
More doc tweaks
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
7097f29019
More editorial changes from m-holger + spell check
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
0e909bab8e
Improve top-level help information
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
f3d68aa5a0
Incorporate editorial changes from m-holger
2022-01-30 13:11:03 -05:00
m-holger
7dd5f31230
Fix typos in manual
...
Fix typos in cli.rst
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
e091b6c9d0
Allow --x[=y] in option help short text
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
2a2ec1c066
Manual: correct statement about empty owner passwords
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
1d099ab743
QPDFJob: placeholder for initializeFromJson
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
67f9d0b7d5
cli.rst: remove () from end of short help
...
This is used to generate a schema for the job json, which can't
contain `)"` because it breaks the R"(...)" syntax in C++. While C++
accepts R"anything(...)anything" to avoid this, as of this writing,
MSVC 2019 doesn't understand that. For now, just avoid it by removing
parentheses from the end of short help.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
ec85e56c3f
Add missing help topic for inspection
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
acf8d18b6e
Editorial changes to cli.rst
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
a6df6fdaf7
CLI doc: use tables where helpful
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
c529c28df6
Manual: use proper character for >=
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
211f1fdfe1
Allow real <= and >= in LateX
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
195ddf6f5a
Manual: convert more lists to tables
2022-01-30 13:11:03 -05:00
m-holger
ee632237f4
Manual: reformat P information as table
2022-01-30 13:11:03 -05:00
m-holger
1efcda1657
Manual: enable line wrapping in table cells
2022-01-30 13:11:03 -05:00
m-holger
f2a3b9cbfc
Fix manual typo
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
5c5e5ca29b
Document how to add a command-line argument
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
c8729398dd
Generate help content from manual
...
This is a massive rewrite of the help text and cli.rst section of the
manual. All command-line flags now have their own help and are
specifically index. qpdf --help is completely redone.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
36916619f0
Stop adding pre-built documentation to the source distribution
2021-12-21 09:52:41 -05:00
Jay Berkenbilt
fdf4d96ea2
Update manual pages
2021-12-20 20:07:33 -05:00
Jay Berkenbilt
db7bd6feef
Reference latest docs on readthedocs
2021-12-20 17:16:39 -05:00
Jay Berkenbilt
04745320d6
Prepare 10.5.0 release
2021-12-20 14:51:46 -05:00
Jay Berkenbilt
5d26f29eeb
Fix typo
2021-12-20 07:10:08 -05:00
Jay Berkenbilt
765373174f
Link to wiki
2021-12-19 17:35:15 -05:00
Jay Berkenbilt
04a602aa50
Add download section to docs
2021-12-19 16:52:06 -05:00
Jay Berkenbilt
ea73bf72e0
Further improvements to handling binary strings
2021-12-19 14:30:45 -05:00
Jay Berkenbilt
92613a1eec
doc: switch html theme to sphinx_rtd_theme
2021-12-19 13:57:47 -05:00
Jay Berkenbilt
c3dc03c713
Update configuration for correct building of epub
2021-12-18 15:59:04 -05:00
Jay Berkenbilt
e8a15204f5
Integration with readthedocs
2021-12-18 15:44:54 -05:00
Jay Berkenbilt
d70fb568a3
Specify highlight language instead of using text codeblocks
2021-12-18 13:43:58 -05:00
Jay Berkenbilt
0e6b6a240b
Change html theme again, fix code blocks
...
The agogo theme doesn't do very well on narrow screens. The code
blocks were used for shell commands but were using Python syntax
highlighting.
2021-12-18 13:37:11 -05:00
Jay Berkenbilt
c9d54fda51
Remove ref. from documentation references
2021-12-18 12:30:00 -05:00
Jay Berkenbilt
426b4ce856
Update documentation build/installation
2021-12-18 12:20:56 -05:00
Jay Berkenbilt
c809f87706
Fix Acknowledgments section
2021-12-18 11:05:51 -05:00
Jay Berkenbilt
10fb619d3e
Split documentation into multiple pages, change theme
2021-12-18 11:05:51 -05:00
Jay Berkenbilt
f3d1138b8a
Add comment
2021-12-18 11:05:51 -05:00
Jay Berkenbilt
408e900fe4
Fix qpdf-manual build dependencies
2021-12-18 11:05:51 -05:00
Jay Berkenbilt
ddbe59179e
C API: simplify new error handling and improve documentation
2021-12-17 15:59:47 -05:00
Jay Berkenbilt
59a64115a6
ChangeLog/doc for previous commit
2021-12-17 14:28:20 -05:00
Jay Berkenbilt
feafcc4e88
C API: add several stream functions ( fixes #596 )
2021-12-17 13:28:11 -05:00
Jay Berkenbilt
fee7489ee4
Add Pl_Buffer::getMallocBuffer
2021-12-17 12:38:52 -05:00
Jay Berkenbilt
9bb6f570ec
C API: add functions for working with pages ( fixes #594 )
2021-12-16 15:07:48 -05:00
m-holger
6187c8086e
Fix minor typos
2021-12-14 12:06:03 -05:00
Jay Berkenbilt
43740ea733
ChangeLog/release note on doc change
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
2f938d4f13
Work old "upgrading" sections into the release notes
...
These are for ancient versions.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
003b4c9670
Remove superfluous "Upgrading to 4.0" chapter
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
cfaaea6f05
Doc: reorganize front section
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
ed6fe01238
Remove docbook manual and associated files
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
948c4546c8
Doc: update requirements for building the documentation
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
aaea245a8d
Remove "Indices and tables"
...
This was inserted by sphinx-quickstart, but it doesn't do anything for us.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
e10e787413
Explicitly mark perl codeblock as such
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
cac844e07a
Replace xref links to :ref:
...
Pandoc doesn't convert <xref> correctly, but it does so consistently,
so this commit just changes all xref links to :ref:.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
1b55906a04
Replace <firstterm> with emphasis
...
At one time, it seems that I was starting to use the <firstterm>
feature of docbook, but I forgot about it long ago, and there is
nothing consistent. In the absence of an actual glossary, just use
emphasis for terminology and don't tag it in any special way. This
could be fixed later if we wanted to.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
e5a7d9323f
Convert the original xml comment to an rst comment
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
d13a6032e6
Replace <replaceable> with {...}
...
All occurrences are in :file: or :samp: now.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
0fdbb957a0
Wrap remaining replaceables in :samp:
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
f4531e8a47
Relabel replaceable in samp or file
...
Replace @1@replaceable@1@...@2@replaceable@2@ with
@3@replaceable@3@...@3@replaceable@3@ inside of :samp: and :file: so
that all remaining @1@replaceable@1@...@2@replaceable@2@ are outside.
Since the {...} syntax for replaceable only works in :samp: and
:file:, we will have to enclose the remaining ones in :samp: for them
to work.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
bf4d107853
Convert <option> to :samp: and clean up literal blocks
...
:option: is stronger and assumes a reference to a list of options.
Since we don't have that yet, just use :samp: for options. Inside
literal code blocks, there is no expansion, so just remove markup.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
b764ba95ed
Replace things previously marked with <filename> with :file:...
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
15b87d769e
Replace command|application with :command:...
...
Replace @1@...@2@ stuff from prior to the conversion with new
representation.
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
cf3b9a7783
doc: fix whitespace and indentation in pandoc output
...
Pandoc indented lists with two spaces after the dash, which is ugly
and messes up emacs fill-paragraph. I transformed the spacing using a
combination of this perl script and manual edits. I verified that the
HTML generated by sphinx was identical before and after the edits and
that this commit contains only whitespace changes. The perl script as
it stands does not do indentation quite right for variable lists, but
there were only about 8 cases that it missed, so I just fixed them
manually.
```perl
#!/usr/bin/env perl
require 5.008;
use warnings;
use strict;
use File::Basename;
my $whoami = basename($0);
my @liststack = ();
while (<>)
{
if (m/^( *- )\S/)
{
my $pre = $1;
while ((scalar(@liststack) > 0) &&
($liststack[-1] >= length($pre)))
{
pop(@liststack);
}
if ((scalar(@liststack) == 0) && ($pre =~ m/^ /))
{
push(@liststack, 1);
}
push(@liststack, length($pre));
my $n = scalar(@liststack);
#print "** $n\n";
my $newpre = (' ' x ($n - 1)) . '- ';
s/^$pre/$newpre/;
}
elsif (scalar(@liststack) > 0)
{
if ($_ ne "\n")
{
while (scalar(@liststack) > 0)
{
my $pre = m/^( *)/;
if (length($1) < $liststack[-1])
{
#print "XXX pop\n";
pop(@liststack);
}
else
{
last;
}
}
my $n = scalar(@liststack);
#print "** $n\n";
my $indent = ' ' x $n;
s/^ +/$indent/;
}
}
print;
}
```
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
3d5d42efaf
Fix errors introduced by pandoc
...
These showed up as warnings from sphinx-build
2021-12-13 11:20:14 -05:00
Jay Berkenbilt
a372a988fd
Switch build from docbook manual to sphinx
...
Also remove linearization from qpdf-manual.pdf. It's a small file, and
removing the dependency on the qpdf executable significantly shortens
build times.
2021-12-13 11:16:21 -05:00
Jay Berkenbilt
abb6a16ed1
Insert output of pandoc as is
...
pandoc -f docbook -t rst qpdf-manual.xml >| /tmp/a.rst
Insert /tmp/a.rst into existing index.rst
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
22d53f928f
Sphinx docs: tweak output of sphinx-quickstart
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
f8787d9fd8
Create initial sphinx document sources
...
Run sphinx-quickstart. Throw everything away except conf.py and
index.rst. We will incorporate this into our own build system.
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
9a5d16a403
Prepare for docbook -> rst: replace SGML entitles
...
We were using SGML entities for various non-ASCII characters so they
could convert properly for both HTML and print, but this is no longer
necessary as we move from docbook to RST, so just replace them. Note
that the conversions done by sphinx automatically handle "smart
quotes", so it works to just use regular quotes in place of &LDQUO;
and &RDQUO;.
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
f80a0da3e3
Prepare for docbook -> rst: protect a comment so it survives pandoc
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
78206a4651
Prepare for docbook -> rst: protect some XML elements
...
Pandoc docbook -> rst fails to convert the following elements, so
change them to @1@tag@1@ ... @2@tag@2@ for later processing. This way,
they will survive the conversion, and we can deal with them later.
<application>
<command>
<filename>
<firstterm>
<option>
<replaceable>
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
f721fed9d6
doc: Replace Gajic with Gajić (finally)
...
With docbook, this was not converted properly in the PDF version, but
since we are moving out of docbook, we can just put the Unicode
character in the source.
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
8aa9a66e63
doc: remove unneeded footnote
...
Footnotes are yucky in online documentation, and the one footnote in
the doc is no longer needed, so remove it.
2021-12-12 16:29:13 -05:00
Jay Berkenbilt
08bcf6449c
Clarify docs around @filename and leading/trailing space
2021-12-10 15:52:28 -05:00
Jay Berkenbilt
1c62c2a342
C API: expose functions for indirect objects ( fixes #588 )
2021-12-10 14:57:35 -05:00
Jay Berkenbilt
72c10d8617
C API: overhaul error handling
...
* Handle error conditions that occur when using the object handle
interfaces. In the past, some exceptions were not correctly
converted to errors or warnings.
* Add more detailed information to qpdf-c.h
* Make it possible to work more explicitly with uninitialized objects
2021-12-10 12:16:02 -05:00
Jay Berkenbilt
3340dbe976
Use a specific error code for type warnings and clarify docs
2021-12-10 11:15:49 -05:00
Jay Berkenbilt
a144363653
Add changelog and release note for #587
2021-12-09 10:33:31 -05:00
Jay Berkenbilt
e3cc171d02
C API: qpdf_oh_is_initialized
2021-12-09 10:33:31 -05:00
Jay Berkenbilt
bef2c2222a
C API: qpdf_get_last_string_length
2021-12-09 10:33:31 -05:00
m-holger
0c705a882b
Minor documentation updates
2021-12-09 10:24:14 -05:00
Jay Berkenbilt
ce7db05d22
Prepare 10.4.0 release
2021-11-16 15:44:09 -05:00
Jay Berkenbilt
750aca5b94
First increment of improving handling of weak crypto ( fixes #358 )
2021-11-11 12:24:15 -05:00
Sven Neuhaus
37916f3925
Fix typo in manual
...
Fix typo in --rotate example
2021-11-08 10:28:14 -05:00
Jay Berkenbilt
8c32f91149
Mention OpenSSL 3 for Windows
2021-11-05 12:58:57 -04:00
Jay Berkenbilt
ecfb3a8606
Fix typo in documentation ( fixes #572 )
...
Thanks @neuhaus!
2021-11-05 11:22:25 -04:00
Jay Berkenbilt
4a648b9a00
Fix bug in merging resources /DR from foreign AcroForm ( fixes #548 )
...
When making resources indirect in from_dr, the code was using the
wrong owning QPDF, forgetting that from_dr had already been copied
using CopyForeignObject.
2021-11-04 12:29:42 -04:00
Jay Berkenbilt
9b28933647
Check object ownership when adding
...
When adding a QPDFObjectHandle to an array or dictionary, if possible,
check if the new object belongs to the same QPDF. This makes it much
easier to find incorrect code than waiting for the situation to be
detected when the file is written.
2021-11-04 12:29:42 -04:00
Jay Berkenbilt
73752683c9
Fix overlay/underlay on page with no resources ( fixes #527 )
2021-11-03 16:00:05 -04:00
Jay Berkenbilt
a3a3203f41
Start release notes for 10.4.0
2021-11-03 09:43:17 -04:00
Jay Berkenbilt
42ca1f007a
Document that --check > /dev/null is safe ( fixes #522 )
2021-11-03 09:43:17 -04:00
Jay Berkenbilt
f545f8b076
Add a basic description of QPDF in README.md ( fixes #552 )
...
Also switch URLs for the qpdf and qtest websites to sourceforge.io
(https) instead of sourceforge.net (http).
2021-11-02 15:41:01 -04:00
Jay Berkenbilt
1b59872b36
Switch spelling checker to cspell
2021-09-13 11:10:09 -04:00
Jay Berkenbilt
193739494d
Add missing release note
2021-05-08 10:04:33 -04:00
Jay Berkenbilt
30ac51bc78
Exclude unreferenced objects in object streams ( fixes #520 )
2021-05-08 09:42:09 -04:00
Jay Berkenbilt
3f05429cc5
Prepare 10.3.1 release
2021-03-11 12:59:41 -05:00
Jay Berkenbilt
85884c363c
Allow /DR to be direct in /AcroForm
...
Also handle direct annotation, though this is much less likely.
2021-03-11 11:43:38 -05:00
Jay Berkenbilt
dc65b88457
Prepare 10.3.0 release
2021-03-05 06:15:48 -05:00
Jay Berkenbilt
0b77f2cf26
Revert non-binary-compatible handleWarning change -- see TODO (ABI)
2021-03-04 15:59:46 -05:00
Jay Berkenbilt
9fb174b9e9
Major rework of handling form fields when copying pages ( fixes #509 )
2021-03-04 15:08:37 -05:00
Jay Berkenbilt
fa2516df71
Fix behavior for finding /Q, /DA, and /DR for form fields
...
If not found in the field hierarchy, /Q and /DA are supposed to be
looked up in the document-level form dictionary. /DR is supposed to
only come from the document dictionary.
2021-03-03 17:05:19 -05:00
Jay Berkenbilt
a4d6589ff2
Have QPDFObjectHandle notice when replaceObject was called
...
This results in a performance penalty of 1% to 2% when replaceObject
and swapObjects are never called and a somewhat larger penalty if they
are called, but it's worth it to avoid very confusing behavior as
discussed in depth in qpdf#507.
2021-02-25 07:32:46 -05:00
Jay Berkenbilt
b5e937397c
Prepare 10.2.0 release
2021-02-23 10:41:58 -05:00
Jay Berkenbilt
fb86d2819e
Clean up 10.2 release notes
2021-02-23 10:41:58 -05:00
Jay Berkenbilt
f02aa74bf5
Update pdf-overlay-page example to copy annotations
2021-02-22 18:42:06 -05:00
Jay Berkenbilt
61d41e2e88
Add copyAnnotations, use with overlay/underlay ( fixes #395 )
2021-02-22 18:42:06 -05:00
Jay Berkenbilt
7b3cbacf5d
Change from QPDF{Array,Dict}Items to aitems() and ditems()
2021-02-22 11:05:39 -05:00
Jay Berkenbilt
a9ae8cadc6
Add transformAnnotations and fix flattenRotations to use it
2021-02-21 17:13:09 -05:00
Jay Berkenbilt
92fbc6fdf5
QPDFObjectHandle::copyStream
2021-02-21 06:36:30 -05:00
Jay Berkenbilt
35dd11f356
Allow --rotate=0
2021-02-20 16:29:34 -05:00
Jay Berkenbilt
de8929a41c
Add QPDFAcroFormDocumentHelper::addFormField
2021-02-18 12:25:48 -05:00
Jay Berkenbilt
5cec6b4c3d
Add QPDFPageObjectHelper::getMatrixForFormXObjectPlacement
2021-02-18 12:25:48 -05:00
Jay Berkenbilt
0b1623d07d
Add QUtil::path_basename
2021-02-18 09:59:03 -05:00