summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2003-11-14 15:54:52 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2003-11-14 15:54:52 +0000
commitf51be8ca0daef86a6f0b10383ca84f42fc1b9a74 (patch)
tree562debe574a31f0318d863d78f3eab2f56290f0d
R6.6 is the Xorg base-lineXORG-MAINXORG-STABLE
-rw-r--r--bdftopcf.c190
-rw-r--r--bdftopcf.man112
2 files changed, 302 insertions, 0 deletions
diff --git a/bdftopcf.c b/bdftopcf.c
new file mode 100644
index 0000000..4e1d6d6
--- /dev/null
+++ b/bdftopcf.c
@@ -0,0 +1,190 @@
+/* $Xorg: bdftopcf.c,v 1.4 2001/02/09 02:05:28 xorgcvs Exp $ */
+/*
+
+Copyright 1991, 1993, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+
+#include <X11/X.h>
+#include <X11/Xproto.h>
+#include "fontmisc.h"
+#include "fontstruct.h"
+#include "fntfilio.h"
+#include <stdio.h>
+#include <X11/Xos.h>
+
+main (argc, argv)
+ char **argv;
+{
+ FontRec font;
+ FontFilePtr input, output;
+ char *input_name = 0, *output_name = 0;
+ char *program_name;
+ int bit, byte, glyph, scan;
+
+ bzero(&font, sizeof(FontRec));
+
+ FontDefaultFormat (&bit, &byte, &glyph, &scan);
+ program_name = argv[0];
+ argc--, argv++;
+ while (argc-- > 0) {
+ if (argv[0][0] == '-') {
+ switch (argv[0][1]) {
+ case 'p':
+ switch (argv[0][2]) {
+ case '1':
+ case '2':
+ case '4':
+ case '8':
+ if (argv[0][3] != '\0')
+ goto usage;
+ glyph = argv[0][2] - '0';
+ break;
+ default:
+ goto usage;
+ }
+ break;
+
+ case 'u':
+ switch (argv[0][2]) {
+ case '1':
+ case '2':
+ case '4':
+ if (argv[0][3] != '\0')
+ goto usage;
+ scan = argv[0][2] - '0';
+ break;
+ default:
+ goto usage;
+ }
+ break;
+
+ case 'm':
+ if (argv[0][2] != '\0')
+ goto usage;
+ bit = MSBFirst;
+ break;
+
+ case 'l':
+ if (argv[0][2] != '\0')
+ goto usage;
+ bit = LSBFirst;
+ break;
+
+ case 'M':
+ if (argv[0][2] != '\0')
+ goto usage;
+ byte = MSBFirst;
+ break;
+
+ case 'L':
+ if (argv[0][2] != '\0')
+ goto usage;
+ byte = LSBFirst;
+ break;
+
+ case 't': /* attempt to make terminal fonts if possible */
+ if (argv[0][2] != '\0')
+ goto usage;
+ break;
+
+ case 'i': /* inhibit ink metric computation */
+ if (argv[0][2] != '\0')
+ goto usage;
+ break;
+ case 'o':
+ if (argv[0][2])
+ output_name = argv[0] + 2;
+ else
+ {
+ if (!argv[1])
+ goto usage;
+ argv++;
+ argc--;
+ output_name = argv[0];
+ }
+ break;
+ default:
+ goto usage;
+ }
+ } else {
+ if (input_name)
+ {
+ usage:
+ fprintf(stderr,
+ "usage: %s [-p#] [-u#] [-m] [-l] [-M] [-L] [-t] [-i] [-o pcf file] [bdf file]\n",
+ program_name);
+ fprintf(stderr,
+ " where # for -p is 1, 2, 4, or 8\n");
+ fprintf(stderr,
+ " and # for -s is 1, 2, or 4\n");
+ exit(1);
+ }
+ input_name = argv[0];
+ }
+ argv++;
+ }
+ if (input_name)
+ {
+ input = FontFileOpen (input_name);
+ if (!input)
+ {
+ fprintf (stderr, "%s: can't open bdf source file %s\n",
+ program_name, input_name);
+ exit (1);
+ }
+ }
+ else
+ input = FontFileOpenFd (0);
+ if (bdfReadFont (&font, input, bit, byte, glyph, scan) != Successful)
+ {
+ fprintf (stderr, "%s: bdf input, %s, corrupt\n",
+ program_name, input_name);
+ exit (1);
+ }
+ if (output_name)
+ {
+ output = FontFileOpenWrite (output_name);
+ if (!output)
+ {
+ fprintf (stderr, "%s: can't open pcf sink file %s\n",
+ program_name, output_name);
+ exit (1);
+ }
+ }
+ else
+ output = FontFileOpenWriteFd (1);
+ if (pcfWriteFont (&font, output) != Successful)
+ {
+ fprintf (stderr, "%s: can't write pcf file %s\n",
+ program_name, output_name ? output_name : "<stdout>");
+ if (output_name)
+ unlink (output_name);
+ exit (1);
+ }
+ else
+ FontFileClose (output);
+ exit (0);
+}
diff --git a/bdftopcf.man b/bdftopcf.man
new file mode 100644
index 0000000..428cbd1
--- /dev/null
+++ b/bdftopcf.man
@@ -0,0 +1,112 @@
+.\" $Xorg: bdftopcf.man,v 1.4 2001/02/09 02:05:28 xorgcvs Exp $
+.\" Copyright 1993, 1994, 1998 The Open Group
+.\"
+.\" Permission to use, copy, modify, distribute, and sell this software and its
+.\" documentation for any purpose is hereby granted without fee, provided that
+.\" the above copyright notice appear in all copies and that both that
+.\" copyright notice and this permission notice appear in supporting
+.\" documentation.
+.\"
+.\" The above copyright notice and this permission notice shall be included
+.\" in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+.\" OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of The Open Group shall
+.\" not be used in advertising or otherwise to promote the sale, use or
+.\" other dealings in this Software without prior written authorization
+.\" from The Open Group.
+.TH BDFTOPCF 1 "Release 6.4" "X Version 11"
+.SH NAME
+bdftopcf \- convert X font from Bitmap Distribution Format to Portable
+Compiled Format
+.SH SYNOPSIS
+.B bdftopcf
+[
+.BI \-p n
+] [
+.BI \-u n
+] [
+.B \-m
+] [
+.B \-l
+] [
+.B \-M
+] [
+.B \-L
+] [
+.B \-t
+] [
+.B \-i
+] [
+.B \-o
+.I outputfile
+] fontfile.bdf
+.SH DESCRIPTION
+.I Bdftopcf
+is a font compiler for the X server and font server.
+Fonts in Portable Compiled Format can be
+read by any architecture, although the file is structured to allow one
+particular architecture to read them directly without reformatting. This
+allows fast reading on the appropriate machine, but the files are still
+portable (but read more slowly) on other machines.
+.SH OPTIONS
+.TP 8
+.B \-p\fIn\fP
+Sets the font glyph padding. Each glyph in the font will have each scanline
+padded in to a multiple of \fIn\fP bytes, where \fIn\fP is 1, 2, 4 or 8.
+.TP 8
+.B \-u\fIn\fP
+Sets the font scanline unit. When the font bit order is different from the
+font byte order, the scanline unit \fIn\fP describes what unit of data (in
+bytes) are to be swapped; the unit \fIi\fP can be 1, 2 or 4 bytes.
+.TP 8
+.B \-m
+Sets the font bit order to MSB (most significant bit) first. Bits for each
+glyph will be placed in this order; i.e., the left most bit on the screen
+will be in the highest valued bit in each unit.
+.TP 8
+.B \-l
+Sets the font bit order to LSB (least significant bit) first. The left most
+bit on the screen will be in the lowest valued bit in each unit.
+.TP 8
+.B \-M
+Sets the font byte order to MSB first. All multi-byte data in the file
+(metrics, bitmaps and everything else) will be written most significant byte
+first.
+.TP 8
+.B \-L
+Sets the font byte order to LSB first. All multi-byte data in the file
+(metrics, bitmaps and everything else) will be written least significant
+byte first.
+.TP 8
+.B \-t
+When this option is specified,
+.I bdftopcf
+will convert fonts into "terminal" fonts when possible. A terminal font has
+each glyph image padded to the same size; the X server can usually render
+these types of fonts more quickly.
+.TP 8
+.B \-i
+This option inhibits the normal computation of ink metrics. When a font has
+glyph images which do not fill the bitmap image (i.e., the "on" pixels don't
+extend to the edges of the metrics)
+.I bdftopcf
+computes the actual ink metrics and places them in the .pcf file; the \-t
+option inhibits this behaviour.
+.TP 8
+.BI "\-o " output-file-name
+By default
+.I bdftopcf
+writes the pcf file to standard output; this option gives the name of a file
+to be used instead.
+.SH "SEE ALSO"
+X(1)
+.SH AUTHOR
+Keith Packard, MIT X Consortium