Commit Graph

966 Commits

Author SHA1 Message Date
Jay Berkenbilt a6f206ad01 Tweak spacing and wording 2018-02-24 22:48:37 -05:00
Jay Berkenbilt 7f29a9d7cc Revert README.md update
This change was obviously not supposed to merge.
2018-02-24 22:43:31 -05:00
Kurt Pfeifle 315c3e7dbc Enhancements to AppImage
Enhance 'build-appimage' script:

- add initial comment block and comments for all major steps in the
  script for the benefit of casual users of the script
- 'configure' to build HTML + PDF documentation
- do not remove the man pages from the AppDir (will be used by custom
  AppRun script)
- use a bigger icon
- use '-g' for appimagetool so it can figure out the 'updateinfo' string
  on Travis CI
- output big fat warning to users who build AppImage in non-"Trusty"
  environments

Add 'AppStream' metadata file

This serves to satisfy desktop environments who want to automatically
create menu entries, show screenshots and display software descriptions.

Note, this file (qpdf.appdata.xml) may need more tweaking since the
Freedesktop folks aren't exactly sure themselves how their 'standard'
should exactly look like, and they changed their validation tools
quite a bit over the recent years in incompatible ways...

Extended and enhanced customized AppRun script

- Add a '--ai-usage' invokation param to the AppImage which serves as
  a starting point to explore the other embedded options
- Support displaying of manual pages by running AppImage with added
  parameter '--man ...'
- Also include HTML/PDF documentation, READMEs and licenses into AppImage
- Support for more parameters: '--list-man', '--list-pdf', '--list-readme',
  '--list-license', '--list-html', '--list-exe', '--pdf', '--readme',
  '--license', '--html' and '--show-apprun'
- Support 'fix-pdf' and 'zlib-' as sub-commands (not just as symlinks)
2018-02-24 21:03:52 -05:00
Jay Berkenbilt 079711a479 Add release notes for qpdf 8.0.0 2018-02-21 20:07:16 -05:00
Jay Berkenbilt f5265924da Reorganize README-maintainer
Update this to be a more accurate reflection of what I actually do and
to make it a better and more usable checklist.
2018-02-21 11:43:04 -05:00
Jay Berkenbilt 6a0fb71e10 Move README-maintainer back to regular text
This is how I work with the file, so this format is most convenient
for me.
2018-02-21 09:11:15 -05:00
Jay Berkenbilt 3092366936 make_windows_releases: build 32 bit first, build msvc first
Build in the order that is most likely to detect failures earlier.
2018-02-21 09:05:34 -05:00
Jay Berkenbilt ca0d190812 Have make_dist infer the version 2018-02-21 07:03:17 -05:00
Jay Berkenbilt 82cae01a76 Bump version number and soname
Bump to an alpha release. This version is not being widely released
but is being used to push the new shared library version through the
debian packaging system and to test out github releases.
2018-02-20 21:31:38 -05:00
Jay Berkenbilt b3dfbe3cd7 Document new command-line flags 2018-02-20 21:31:38 -05:00
Jay Berkenbilt e429a2e170 Describe content normalization edge cases in manual 2018-02-20 21:13:08 -05:00
Jay Berkenbilt 30380b64e3 Add docker file for building app image
The official, signed AppImage will be build locally for now for
security of my key, but I still want it to be built in a clean,
controlled environment based off a suitably old Linux distribution for
maximal portability in the AppImage.
2018-02-20 20:54:31 -05:00
Jay Berkenbilt ac4cca7c26 Change AppImage name back from QPDF to qpdf
Hopefully this is it.
2018-02-19 11:08:16 -05:00
Jay Berkenbilt 7a457f7edf Change AppImage name back from qpdf to QPDF 2018-02-19 09:36:47 -05:00
Jay Berkenbilt 00bd6a271d Streamline Windows release process 2018-02-18 22:39:00 -05:00
Jay Berkenbilt 4bb3046f0b Properly handle strings with PDF Doc Encoding (fixes #179)
The QPDF_String::getUTF8Val() method was not treating strings that
weren't explicitly Unicode as PDF Doc Encoded. This only affects
characters in the range 0x80 through 0xa0.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt 2780a1871d Add C API for checking PDF files 2018-02-18 21:06:27 -05:00
Jay Berkenbilt b72a38bf5f Reorganize some test cases
Too many test cases were "miscellaneous".
2018-02-18 21:06:27 -05:00
Jay Berkenbilt d0e99f195a More robust handling of type errors
Give objects descriptions and context so it is possible to issue
warnings instead of fatal errors for attempts to access objects of the
wrong type.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt c2e16827b6 Replace "file position" with "offset" in error messages
Sometimes it's an offset in an object stream or a content stream, so
file position is confusing in some cases.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt 52e024f701 Include omitted object description in error message 2018-02-18 21:06:27 -05:00
Jay Berkenbilt cb3b705cf9 Include filename in object stream parse error 2018-02-18 21:06:27 -05:00
Jay Berkenbilt 21b7481b0e Push members of QPDFObjectHandle into a Members object
As in other cases, this is to enable adding new member variables in
the future without breaking ABI compatibility.
2018-02-18 21:06:27 -05:00
Jay Berkenbilt e410b0fe0d Simplify TokenFilter interface
Expose Pl_QPDFTokenizer, and have it do more of the work of managing
the token filter's pipeline.
2018-02-18 21:05:47 -05:00
Jay Berkenbilt 1fdd86a049 Move Pl_QPDFTokenizer to public interface 2018-02-18 21:05:47 -05:00
Jay Berkenbilt 5708b5d0aa Add additional interface for filtering page contents 2018-02-18 21:05:47 -05:00
Jay Berkenbilt fd02944e19 Clean up comment 2018-02-18 21:05:47 -05:00
Jay Berkenbilt 510d45d00d General comment in ChangeLog 2018-02-18 21:05:47 -05:00
Jay Berkenbilt 5136238f2a Detect and report bad tokens in content normalization 2018-02-18 21:05:47 -05:00
Jay Berkenbilt 30709935af Filter tokens example 2018-02-18 21:05:47 -05:00
Jay Berkenbilt 9910104442 Implement TokenFilter and refactor Pl_QPDFTokenizer
Implement a TokenFilter class and refactor Pl_QPDFTokenizer to use a
TokenFilter class called ContentNormalizer. Pl_QPDFTokenizer is now a
general filter that passes data through a TokenFilter.
2018-02-18 21:05:46 -05:00
Jay Berkenbilt b8723e97f4 Add coalesce contents capability 2018-02-18 21:05:46 -05:00
Jay Berkenbilt 25988e8d10 Bug fix: content normalizer should not add trailing newline
Adding a trailing newline in content normalization damages files whose
contents are split across streams in the middle of tokens. Let
QPDFWriter add the newline with the indicator to ignore the newline,
which it already does. This changes the way some qdf files look.
2018-02-18 21:05:46 -05:00
Jay Berkenbilt cc108a7f1b Use pipePageContents in tokenizer test 2018-02-18 21:05:46 -05:00
Jay Berkenbilt 6afe83978f Switch from parseContentStream to parsePageContents 2018-02-18 21:05:46 -05:00
Jay Berkenbilt fcd611b61e Refactor parseContentStream 2018-02-18 21:05:46 -05:00
Jay Berkenbilt 05ff619b09 Remove redundant method
Remove a redundant method that was equal to another one with
additional arguments. This breaks binary compatibility, but there are
other ABI breaking changes in the upcoming release, so now is the time
to do it.
2018-02-18 21:05:46 -05:00
Jay Berkenbilt 55ee55394c Use inline image token in content parser 2018-02-18 21:05:46 -05:00
Jay Berkenbilt ba453ba4ff Use space tokens in tokenizer filter 2018-02-18 21:05:46 -05:00
Jay Berkenbilt ec538792fa Use inline image token type in tokenizer filter 2018-02-18 21:05:46 -05:00
Jay Berkenbilt 5b5f45e9dd Remove lexer rewrite notes from TODO 2018-02-18 21:05:46 -05:00
Jay Berkenbilt fefe25030e Inline image token type 2018-02-18 21:05:46 -05:00
Jay Berkenbilt 2699ecf13e Push QPDFTokenizer members into a nested structure
This is for protection against future ABI breaking changes.
2018-02-18 21:05:46 -05:00
Jay Berkenbilt d97474868d Lexer enhancements: EOF, comment, space
Significant enhancements to the lexer to improve EOF handling and to
support comments and spaces as tokens. Various other minor issues were
fixed as well.
2018-02-18 20:18:40 -05:00
Jay Berkenbilt bb9e91adbd Create isolated tokenizer tests
This tokenizes outer parts of the file, page content streams, and
object streams. It is for exercising the tokenizer in isolation and is
being introduced before reworking the lexical layer of qpdf.
2018-02-18 20:18:40 -05:00
Jay Berkenbilt ebd5ed63de Add option to save pass 1 of lineariziation
This is useful only for debugging the linearization code.
2018-02-18 20:18:40 -05:00
Jay Berkenbilt a0fd8875aa Fix typo in travis file 2018-02-18 20:17:08 -05:00
Jay Berkenbilt cef637d8e1 Fix typo in manual page (fixes #181) 2018-02-18 20:09:18 -05:00
Jay Berkenbilt c8dc484fdf Tweak release instructions, support signed AppImage 2018-02-18 20:09:18 -05:00
Jay Berkenbilt 894fc8ef2f Remove junk from logo ps file 2018-02-18 00:17:48 -05:00