*** h2ps.c.ori Tue Mar 25 19:04:43 1997 --- h2ps.c Tue Mar 25 19:04:49 1997 *************** *** 219,230 **** /* * Default page dimensions */ #ifndef WIDTH ! #define WIDTH 8.27 #endif #ifndef HEIGHT ! #define HEIGHT 11.64 #endif #ifndef MARGIN --- 219,235 ---- /* * Default page dimensions */ + #define USA_WIDTH 8.5 + #define USA_HEIGHT 11.0 + #define A4_WIDTH 8.27 + #define A4_HEIGHT 11.64 + #ifndef WIDTH ! #define WIDTH A4_WIDTH #endif #ifndef HEIGHT ! #define HEIGHT A4_HEIGHT #endif #ifndef MARGIN *************** *** 426,431 **** --- 431,439 ---- /* * Sheet dimensions */ + double paper_height = HEIGHT; /* Paper height */ + double paper_width = WIDTH; /* Paper width */ + double page_height = HEIGHT; /* Paper height */ double page_width = WIDTH; /* Paper width */ *************** *** 446,451 **** --- 454,464 ---- fprintf(stderr,"pos. = -#num\t\tnumber of copies to print\n"); fprintf(stderr," -1\t\tone page per sheet\n"); fprintf(stderr," -2\t\tTWIN PAGES per sheet\n"); + #if A4_PAPERSIZE == 1 + fprintf(stderr," -a\t\tUse USA paper size (8.5\" x 11\")\n"); + #else + fprintf(stderr," -a\t\tUse A4 paper size (21cm x 29.56cm (8.27\" 11.64\"))\n"); + #endif fprintf(stderr," -d\t-nd\tprint (DON'T PRINT) current date at the bottom\n"); fprintf(stderr," -Fnum\t\tfont size, num is a float number\n"); fprintf(stderr," -Hstr\t\tuse str like header title for subsequent files\n"); *************** *** 528,533 **** --- 541,552 ---- usage(EXIT_FAILURE); interpret = TRUE; break; + case 'a': /* American paper sizes */ + #if defined(USA_HEIGHT) && defined(USA_WIDTH) + paper_height = USA_HEIGHT; + paper_width = USA_WIDTH; + #endif + break; case 'n': if (arg[2] == NUL) return; *************** *** 778,785 **** /* * This routine buffers a line of input, release one character at a time * or a whole sequence of characters with some meaning like bold sequences ! * produced by nroff (no others sequences are recognized by the moment): ! * <\b><\b><\b> */ int mygetc(statusp) --- 797,805 ---- /* * This routine buffers a line of input, release one character at a time * or a whole sequence of characters with some meaning like bold sequences ! * or underlining produced by nroff. ! * <\b> ! * <_><\b> */ int mygetc(statusp) *************** *** 807,822 **** if (buffer[curr+1] != '\b') /* this is not a special sequence */ return buffer[curr++]; ! /* Check if it is a bold sequence */ ! c = buffer[curr++]; ! if (c == buffer[curr+1] && ! buffer[curr] == buffer[curr+2] && ! c == buffer[curr+3] && ! buffer[curr] == buffer[curr+4] && ! c == buffer[curr+5]) { *statusp = IS_BOLD; ! curr += 6; } /* Return the first character of the sequence */ --- 827,841 ---- if (buffer[curr+1] != '\b') /* this is not a special sequence */ return buffer[curr++]; ! /* check if we're underlining */ ! if (buffer[curr] == '_') ! return buffer[curr++]; ! ! /* Check if it is a bold sequence */ ! if ((c = buffer[curr]) == buffer[curr+2]) { *statusp = IS_BOLD; ! curr += 3; } /* Return the first character of the sequence */ *************** *** 1590,1597 **** printf("\n%% Initialize page description variables.\n"); printf("/x0 0 def\n"); printf("/y0 0 def\n"); ! printf("/sh %g inch def\n", (double)HEIGHT); ! printf("/sw %g inch def\n", (double)WIDTH); printf("/margin %g inch def\n", (double)MARGIN); printf("/rm margin 3 div def\n"); printf("/lm margin 2 mul 3 div def\n"); --- 1609,1616 ---- printf("\n%% Initialize page description variables.\n"); printf("/x0 0 def\n"); printf("/y0 0 def\n"); ! printf("/sh %g inch def\n", (double)paper_height); ! printf("/sw %g inch def\n", (double)paper_width); printf("/margin %g inch def\n", (double)MARGIN); printf("/rm margin 3 div def\n"); printf("/lm margin 2 mul 3 div def\n"); *************** *** 1884,1891 **** /* Initialize variables not depending of positional options */ landscape = twinpages = -1; /* To force format switching */ fontsize = -1.0; /* To force fontsize switching */ ! page_height = (double)(HEIGHT - MARGIN) * PIXELS_INCH; ! page_width = (double)(WIDTH - MARGIN) * PIXELS_INCH; /* Postcript prologue printing */ print_prologue(); --- 1903,1910 ---- /* Initialize variables not depending of positional options */ landscape = twinpages = -1; /* To force format switching */ fontsize = -1.0; /* To force fontsize switching */ ! page_height = (double)(paper_height - MARGIN) * PIXELS_INCH; ! page_width = (double)(paper_width - MARGIN) * PIXELS_INCH; /* Postcript prologue printing */ print_prologue();