1
1
/*
2
2
* NEATPOST: NEATROFF'S POSTSCRIPT/PDF POSTPROCESSOR
3
3
*
4
- * Copyright (C) 2013-2020 Ali Gholami Rudi <ali at rudi dot ir>
4
+ * Copyright (C) 2013-2025 Ali Gholami Rudi <ali at rudi dot ir>
5
5
*
6
6
* Permission to use, copy, modify, and/or distribute this software for any
7
7
* purpose with or without fee is hereby granted, provided that the above
@@ -612,6 +612,15 @@ char *pdftext_static(char *s)
612
612
return buf ;
613
613
}
614
614
615
+ static void cmdset (char * arg )
616
+ {
617
+ char * eq = strchr (arg , '=' );
618
+ if (eq != NULL ) {
619
+ * eq = '\0' ;
620
+ outset (arg , eq + 1 );
621
+ }
622
+ }
623
+
615
624
static char * usage =
616
625
"Usage: neatpost [options] <input >output\n"
617
626
"Options:\n"
@@ -620,28 +629,39 @@ static char *usage =
620
629
" -t title\tspecify document title\n"
621
630
" -w lwid \tdrawing line thickness in thousandths of an em (40)\n"
622
631
" -l \tlandscape mode\n"
623
- " -n \talways draw glyphs by name (ps glyphshow)\n" ;
632
+ " -n \talways draw glyphs by name (ps glyphshow)\n"
633
+ " -d x=v \tset device-specific variables\n" ;
624
634
625
635
int main (int argc , char * argv [])
626
636
{
627
637
int i ;
628
638
int landscape = 0 ;
629
639
if (getenv ("NEATROFF_F" ) != NULL )
630
640
snprintf (postdir , sizeof (postdir ), "%s" , getenv ("NEATROFF_F" ));
631
- for (i = 1 ; i < argc ; i ++ ) {
632
- if (argv [i ][0 ] == '-' && argv [i ][1 ] == 'F' ) {
641
+ for (i = 1 ; i < argc && argv [i ][0 ] == '-' ; i ++ ) {
642
+ switch (argv [i ][1 ]) {
643
+ case 'F' :
633
644
strcpy (postdir , argv [i ][2 ] ? argv [i ] + 2 : argv [++ i ]);
634
- } else if (argv [i ][0 ] == '-' && argv [i ][1 ] == 'p' ) {
645
+ break ;
646
+ case 'p' :
635
647
setpagesize (argv [i ][2 ] ? argv [i ] + 2 : argv [++ i ]);
636
- } else if (argv [i ][0 ] == '-' && argv [i ][1 ] == 'w' ) {
648
+ break ;
649
+ case 'w' :
637
650
ps_linewidth = atoi (argv [i ][2 ] ? argv [i ] + 2 : argv [++ i ]);
638
- } else if (argv [i ][0 ] == '-' && argv [i ][1 ] == 'n' ) {
651
+ break ;
652
+ case 'n' :
639
653
outgname (1 );
640
- } else if (argv [i ][0 ] == '-' && argv [i ][1 ] == 't' ) {
654
+ break ;
655
+ case 't' :
641
656
ps_title = argv [i ][2 ] ? argv [i ] + 2 : argv [++ i ];
642
- } else if (argv [i ][0 ] == '-' && argv [i ][1 ] == 'l' ) {
657
+ break ;
658
+ case 'l' :
643
659
landscape = 1 ;
644
- } else {
660
+ break ;
661
+ case 'd' :
662
+ cmdset (argv [i ][2 ] ? argv [i ] + 2 : argv [++ i ]);
663
+ break ;
664
+ default :
645
665
fprintf (stderr , "%s" , usage );
646
666
return 1 ;
647
667
}
0 commit comments