From 0a63de609f67f869c42af2ded2f7c424fdc14260 Mon Sep 17 00:00:00 2001 From: giraffedata Date: Wed, 25 Oct 2006 18:53:18 +0000 Subject: Make pbmtox10bm a compatibility frontend to pbmtoxbm git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@110 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- converter/pbm/Makefile | 4 +- converter/pbm/pbmtox10bm | 45 +++++++++++++++++ converter/pbm/pbmtox10bm.c | 120 --------------------------------------------- 3 files changed, 47 insertions(+), 122 deletions(-) create mode 100644 converter/pbm/pbmtox10bm delete mode 100644 converter/pbm/pbmtox10bm.c diff --git a/converter/pbm/Makefile b/converter/pbm/Makefile index 318b8e9e..f1533ab2 100644 --- a/converter/pbm/Makefile +++ b/converter/pbm/Makefile @@ -17,7 +17,7 @@ PORTBINARIES = atktopbm brushtopbm cmuwmtopbm ddbugtopbm g3topbm escp2topbm \ pbmtomacp pbmtomatrixorbital pbmtomda pbmtomgr pbmtomrf \ pbmtonokia \ pbmtopi3 pbmtoplot pbmtopsg3 pbmtoptx pbmtowbmp \ - pbmtox10bm pbmtoxbm pbmtoybm pbmtozinc \ + pbmtoxbm pbmtoybm pbmtozinc \ pi3topbm pktopbm \ wbmptopbm xbmtopbm ybmtopbm @@ -29,7 +29,7 @@ endif #in libm? MATHBINARIES = pbmtopk BINARIES = $(PORTBINARIES) $(MATHBINARIES) -SCRIPTS = +SCRIPTS = pbmtox10bm OBJECTS = $(BINARIES:%=%.o) diff --git a/converter/pbm/pbmtox10bm b/converter/pbm/pbmtox10bm new file mode 100644 index 00000000..9a1a7286 --- /dev/null +++ b/converter/pbm/pbmtox10bm @@ -0,0 +1,45 @@ +#! /usr/bin/perl + +#============================================================================ +# This is a compatibility interface to Pbmtoxbm. +# +# It exists so existing programs and procedures that rely on Pbmtox10bm +# syntax continue to work. You should not make new use of Pbmtox10bm and +# if you modify an old use, you should upgrade it to use Pbmtoxbm. +# +# Pbmtoxbm with the -x10 option is backward compatible with Pbmtox10bm. +#============================================================================ + +use strict; +use File::Basename; +use Cwd 'abs_path'; + +my $infile; + +foreach (@ARGV) { + if (/^-/) { + # It's an option. But Pbmtox10bm didn't have any options. + print(STDERR "Invalid option '$_'\n"); + exit(10); + } else { + # It's a parameter + if (defined($infile)) { + print(STDERR + "You may specify at most one non-option parameter.\n"); + exit(10); + } else { + $infile = $_; + } + } +} + +my $infileParm = defined($infile) ? $infile : "-"; + +# We want to get Pbmtoxbm from the same directory we came from if +# it's there. Frequently, the directory containing Netpbm programs is +# not in the PATH and we were invoked by absolute path. + +my $my_directory = abs_path(dirname($0)); +$ENV{"PATH"} = $my_directory . ":" . $ENV{"PATH"}; + +exec('pbmtoxbm', '-x10', $infileParm); diff --git a/converter/pbm/pbmtox10bm.c b/converter/pbm/pbmtox10bm.c deleted file mode 100644 index ef31fb9b..00000000 --- a/converter/pbm/pbmtox10bm.c +++ /dev/null @@ -1,120 +0,0 @@ -/* pbmtox10bm.c - read a portable bitmap and produce an X10 bitmap file -** -** Copyright (C) 1988 by Jef Poskanzer. -** -** Permission to use, copy, modify, and distribute this software and its -** documentation for any purpose and without fee is hereby granted, provided -** that the above copyright notice appear in all copies and that both that -** copyright notice and this permission notice appear in supporting -** documentation. This software is provided "as is" without express or -** implied warranty. -*/ - -#include - -#include "nstring.h" -#include "pbm.h" - -int -main(int argc, char * argv[]) { - - FILE* ifp; - bit* bitrow; - bit * bP; - int rows, cols, format, padright, row; - int col; - char name[100]; - char* cp; - int itemsperline; - int bitsperitem; - int item; - int firstitem; - const char* const hexchar = "0123456789abcdef"; - - - pbm_init( &argc, argv ); - - if ( argc > 2 ) - pm_usage( "[pbmfile]" ); - - if ( argc == 2 ) - { - ifp = pm_openr( argv[1] ); - strcpy( name, argv[1] ); - if (STREQ( name, "-" )) - strcpy( name, "noname" ); - - if ( ( cp = strchr( name, '.' ) ) != 0 ) - *cp = '\0'; - } - else - { - ifp = stdin; - strcpy( name, "noname" ); - } - - pbm_readpbminit( ifp, &cols, &rows, &format ); - bitrow = pbm_allocrow( cols ); - - /* Compute padding to round cols up to the nearest multiple of 16. */ - padright = ( ( cols + 15 ) / 16 ) * 16 - cols; - - printf( "#define %s_width %d\n", name, cols ); - printf( "#define %s_height %d\n", name, rows ); - printf( "static short %s_bits[] = {\n", name ); - - itemsperline = 0; - bitsperitem = 0; - item = 0; - firstitem = 1; - -#define PUTITEM \ - { \ - if ( firstitem ) \ - firstitem = 0; \ - else \ - putchar( ',' ); \ - if ( itemsperline == 11 ) \ - { \ - putchar( '\n' ); \ - itemsperline = 0; \ - } \ - if ( itemsperline == 0 ) \ - putchar( ' ' ); \ - ++itemsperline; \ - putchar('0'); \ - putchar('x'); \ - putchar(hexchar[item >> 12]); \ - putchar(hexchar[(item >> 8) & 15]); \ - putchar(hexchar[(item >> 4) & 15]); \ - putchar(hexchar[item & 15]); \ - bitsperitem = 0; \ - item = 0; \ - } - -#define PUTBIT(b) \ - { \ - if ( bitsperitem == 16 ) \ - PUTITEM; \ - if ( (b) == PBM_BLACK ) \ - item += 1 << bitsperitem; \ - ++bitsperitem; \ - } - - for ( row = 0; row < rows; ++row ) - { - pbm_readpbmrow( ifp, bitrow, cols, format ); - for ( col = 0, bP = bitrow; col < cols; ++col, ++bP ) - PUTBIT(*bP); - for ( col = 0; col < padright; ++col ) - PUTBIT(0); - } - - pm_close( ifp ); - - if ( bitsperitem > 0 ) - PUTITEM; - printf( "};\n" ); - - return 0; -} -- cgit 1.4.1