summaryrefslogtreecommitdiff
path: root/base/gxiodev.h
Commit message (Collapse)AuthorAgeFilesLines
* Update postal address in file headersChris Liddell2023-04-041-3/+3
|
* Update copyright to 2021Chris Liddell2021-03-151-1/+1
|
* Tesseract based OCR devices.Robin Watts2020-06-031-0/+7
| | | | | | pdfocr8/24/32, ocr and hocr devices. Use OCRLanguage to set languages to use ("eng" by default).
* Update copyright to 2020Chris Liddell2020-04-101-1/+1
|
* Add use of new file access permissions to PS interpChris Liddell2019-05-291-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (this is a squash of several commits from filesec branch) Use errno to indicate invalidfileaccess Integrate fontconfig with file access controls fontconfig API has a call to retrieve all the directories about which fontconfig knows, so we can get those, and add them to the paths from which we're permitted to read. Add (most of) the Postscript "managed" paths.... ...to the access controls. GenericResourceDir, ICCProfilesDir (reading) and temporary file directories for read/write/control. Add paths/files from C to the file access controls The -I paths, environment variables and build time paths. The command line specified output file, permit writing. Lastly, the command line specified input file is added to the readable list, interpreted, and then removed from the list. Add the FONTPATH path list to permit read access control list. I opted to do this in Postscript because the list is (normally) a colon separated list of paths, which we split into an array of paths (in Postscript) - it seems sensible to do this only once, both for storage and permissions. Add a non-standard string 'reverse search" operator The search operator searches for the first occurrence of a character code in a string (i.e. searches forwards from the start of the string), 'rsearch' finds the last instance of a character code (i.e. search backwards from the end of the string). Fix gp_open_scratch_file_rm for access permissions i.e. the same as gp_open_scratch_file Handle clist file 'rewind' failures 'Rewinding' clist files may involved closing and recreating the temporary files, which conceivably can fail, but the clist procs rewind method was a void function, so couldn't return an error. It now can, and does return an error, and we handle the error. Add file permissions support for piped output. Paths from Fontmap to PermitReading list cidfmap paths, add to PermitReading list Add command line options for path access control addition --permit-file-read --permit-file-write --permit-file-control --permit-file-all They all take a separated list of paths (the usual platform specific ':' or ';' separator), and to the respective access control lists - the final 'all' option adds the paths to all the control lists. Add file access control to the 'gp_stat' method. This is complicated by the need to add the memory allocator context to the gp_stat parameters. To facilitate this, I've added a gs_memory_t pointer to the gx_io_device structure, which is set during the io device initialisation at startup. mkromfs: Add dummy gp_stat_impl for Windows - saves quite a bit of pointless build upheaval Add file access protection to file enumeration. The low level implementation of Postscript's filenameforall (*_enumerate_files) needs to also honour file access protection. This is has been complicated by requiring a gs_memory_t to be available where it wasn't previously (in order to access the gs_lib_ctx and the file permissions lists therein). Temp
* Move FILE * operations behind new gp_file * API.Robin Watts2019-05-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (squash of commits from filesec branch) Most of this commit is donkeywork conversions of calls from FILE * -> gp_file *, fwrite -> gp_fwrite etc. Pretty much every device is touched, along with the clist and parsing code. The more interesting changes are within gp.h (where the actual new API is defined), gpmisc.c (where the basic implementations live), and the platform specific levels (gp_mswin.c, gp_unifs.c etc where the platform specific implementations have been tweaked/renamed). File opening path validation All file opening routines now call a central routine for path validation. This then consults new entries in gs_lib_ctx to see if validation is enabled or not. If so, it validates the paths by seeing if they match. Simple C level functions for adding/removing/clearing paths, exposed through the gsapi level. Add 2 postscript operators for path control. <name> <string> .addcontrolpath - Add the given <string> (path) to the list of paths for controlset <name>, where <name> can be: /PermitFileReading /PermitFileWriting /PermitFileControl (Anything else -> rangecheck) - .activatepathcontrol - Enable path control. At this point PS cannot make any more changes, and all file access is checked.
* Fix problems with "typedef struct foo_s foo;" redefinitions.Robin Watts2019-04-031-4/+1
| | | | | | | | | | | | | In the header revamp, I'd left various places where we use the above formulation in more than one location. This is fine with all the C compilers I tested it on, but seems to update gcc 4.1.2. This effect can be seen on later gcc's by using "-std=gnu89 -pedantic". This commit tweaks the code to avoid redefinitions of this kind.
* Update source/header file copyright notice to 2019Chris Liddell2019-01-161-1/+1
|
* Remove some blah_DEFINED cruft.Robin Watts2019-01-071-19/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we properly "include what we use" let's sanitise the horrid blah_DEFINED ifdeffery (i.e. kill it where possible). Also, we update the .c dependencies in the base/psi makefiles to be correct. Unfortunately, this new correct set of dependencies causes nmake to soil itself and die with an out of memory error. After much experimentation, I've come to the conclusion that this is because it copes poorly with given the same file as a dependency multiple times. Sadly, our style of declaring dependencies in the following style: foo_h=$(BLAH)/foo.h $(std_h) bar_h=$(BLAH)/bar.h $(foo_h) $(std_h) baz_h=$(BLAH)/baz.h $(foo_h) $(std_h) means that a .obj file that depends on $(foo_h) $(bar_h) and $(baz_h) ends up depending on foo.h twice, and std.h three times. I have therefore changed the style of dependencies used to be more standard. We still define: foo_h=$(BLAH)/foo.h so each .obj file rule can depend on $(foo_h) etc as required, but the dependencies between each .h file are expressed in normal rules at the end of the file in a dedicated "# Dependencies" section that we can now autogenerate.
* Update copyright notice with new head office address.Ken Sharp2018-01-301-3/+3
| | | | | | | | | Also update copyright dates. Remove gs_cmdl.ps as we no longer use it, and remove its entry from psfiles.htm. Remove xfonts.htm as this feature (xfont support) is long, long gone.
* Bug 698842: cleanup the io_dev table and contentsChris Liddell2018-01-151-2/+17
| | | | | This is slightly complicated as (in the Ghostscript case) the table can be freed explicitly, or by the garbager.
* Commit of build_consolidation branchChris Liddell2015-07-201-0/+211
Squashed into one commit (see branch for details of the evolution of the branch). This brings gpcl6 and gxps into the Ghostscript build system, and a shared set of graphics library object files for all the interpreters. Also, brings the same configuration options to the pcl and xps products as we have for Ghostscript.