---
name: "pswrap"
section: "1x"
platform: "linux"
package: "xutils"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/pswrap/1x"
---

# pswrap(1x)

creates C procedures from segments of PostScript language code

## NAME

pswrap - creates C procedures from segments of PostScript language code

## SYNOPSIS

**pswrap** \[ **-apr** \] \[ **-o** *outputCfile* \] \[ **-h** *outputHfile* \] \[ **-s** *maxstring* \]  *inputfile*

## DESCRIPTION

**pswrap** reads input from  *inputfile* and creates C-callable procedures, known as wraps, that send PostScript  language code to the PostScript interpreter.  *inputfile* contains segments of PostScript language code wrapped with a C-like procedure syntax.

Wraps are the most efficient way for an application to communicate with the  PostScript interpreter. For complete documentation of  **pswrap** and the language it accepts, see "pswrap Reference Manual" in *Programming the Display PostScript System with X.*

## OPTIONS

- *inputfile*

  A file that contains one or more wrap definitions.  **pswrap** transforms the definitions in  *inputfile* into C procedures. If no input file is specified, the standard  input (which can be redirected from a file or pipe) is used. The input file  can include text other than wrap definitions.  **pswrap** converts wrap definitions to C procedures and passes the other text  through unchanged. Therefore, it is possible to intersperse C-language  source code with wrap definitions in the input file.

  *Note:* Although C code is allowed in a pswrap input file, it is not allowed  within a wrap body. In particular, no CPP macros (for example, #define) are  allowed inside a wrap.

- **-a**

  Generates ANSI C procedure prototypes for procedure definitions in  *outputCfile* and, optionally, *outputHfile.* The  **-a** option allows compilers that recognize the  ANSI C standard to do more complete type checking of parameters. The  **-a** option also causes  **pswrap** to generate const declarations.

  *Note:* ANSI C procedure prototype syntax is not recognized by most non-ANSI C  compilers, including many compilers based on the Portable C Compiler. Use the  **-a** option only in conjunction with a compiler that conforms to the ANSI C Standard.

- **-h** *outputHFile*

  Generates a header file that contains extern declarations for non-static  wraps. This file can be used in #include statements in modules that use  wraps. If the  **-a** option is specified, the declarations in the header file  are ANSI C procedure prototypes. If the  **-h** option is omitted, a header file is not produced.

- **-o** *outputCFile*

  Specifies the file to which the generated wraps and passed-through text are  written. If omitted, the standard output is used. If the  **-a** option is also specified, the procedure definitions generated by  **pswrap** are in ANSI C procedure prototype syntax.

- **-p**

  Specifies that strings passed by wraps are padded so that each data object  begins on a long-word (4-byte) boundary. This option allows wraps to run on  architectures that restrict data alignment to 4-byte boundaries and  improves performance on some other architectures.

- **-r**

  Generates reentrant code for wraps shared by more than one process (as in  shared libraries). Reentrant code can be called recursively or by more than  one thread. The  **-r** option causes  **pswrap** to generate extra code, so use it only when necessary.

- **-s** *maxstring*

  Sets the maximum allowable length of a PostScript string object or  hexadecimal string object in the wrap body input. A syntax error is reported if a  string is not terminated with ) or \> within  *maxstring* characters.  *maxstring* cannot be set lower than 80; the default is 200.

## SEE ALSO

*Programming the Display PostScript System with X* (Addison-Wesley Publishing Company, Inc., 1993).

## AUTHOR

Adobe Systems Incorporated

## NOTES

PostScript and Display PostScript are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions.

Copyright (c) 1988-1994 Adobe Systems Incorporated.  All rights reserved.
