lptest.c revision 135852
11553Srgrimes/* 21553Srgrimes * Copyright (c) 1983, 1993 31553Srgrimes * The Regents of the University of California. All rights reserved. 41553Srgrimes * 51553Srgrimes * 61553Srgrimes * Redistribution and use in source and binary forms, with or without 71553Srgrimes * modification, are permitted provided that the following conditions 81553Srgrimes * are met: 91553Srgrimes * 1. Redistributions of source code must retain the above copyright 101553Srgrimes * notice, this list of conditions and the following disclaimer. 111553Srgrimes * 2. Redistributions in binary form must reproduce the above copyright 121553Srgrimes * notice, this list of conditions and the following disclaimer in the 131553Srgrimes * documentation and/or other materials provided with the distribution. 141553Srgrimes * 3. All advertising materials mentioning features or use of this software 151553Srgrimes * must display the following acknowledgement: 161553Srgrimes * This product includes software developed by the University of 171553Srgrimes * California, Berkeley and its contributors. 181553Srgrimes * 4. Neither the name of the University nor the names of its contributors 191553Srgrimes * may be used to endorse or promote products derived from this software 201553Srgrimes * without specific prior written permission. 211553Srgrimes * 221553Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 231553Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 241553Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 251553Srgrimes * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 261553Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 271553Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 281553Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 291553Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 301553Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 311553Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 321553Srgrimes * SUCH DAMAGE. 331553Srgrimes */ 341553Srgrimes 351553Srgrimes#ifndef lint 3684692Sgadstatic const char copyright[] = 371553Srgrimes"@(#) Copyright (c) 1983, 1993\n\ 381553Srgrimes The Regents of the University of California. All rights reserved.\n"; 391553Srgrimes#endif /* not lint */ 401553Srgrimes 41117622Sgad#if 0 421553Srgrimes#ifndef lint 431553Srgrimesstatic char sccsid[] = "@(#)lptest.c 8.1 (Berkeley) 6/6/93"; 44117622Sgad#endif /* not lint */ 4578146Sgad#endif 461553Srgrimes 47117622Sgad#include "lp.cdefs.h" /* A cross-platform version of <sys/cdefs.h> */ 48117622Sgad__FBSDID("$FreeBSD: head/usr.sbin/lpr/lptest/lptest.c 135852 2004-09-27 08:24:05Z phk $"); 49117622Sgad 501553Srgrimes#include <stdlib.h> 511553Srgrimes#include <stdio.h> 52135852Sphk#include <err.h> 531553Srgrimes 541553Srgrimes/* 551553Srgrimes * lptest -- line printer test program (and other devices). 561553Srgrimes */ 5719202Simpint 5878146Sgadmain(int argc, char **argv) 591553Srgrimes{ 601553Srgrimes int len, count; 6178146Sgad register int i, j, fc, nc; 621553Srgrimes char outbuf[BUFSIZ]; 631553Srgrimes 641553Srgrimes setbuf(stdout, outbuf); 651553Srgrimes if (argc >= 2) 661553Srgrimes len = atoi(argv[1]); 671553Srgrimes else 681553Srgrimes len = 79; 691553Srgrimes if (argc >= 3) 701553Srgrimes count = atoi(argv[2]); 711553Srgrimes else 721553Srgrimes count = 200; 731553Srgrimes fc = ' '; 741553Srgrimes for (i = 0; i < count; i++) { 751553Srgrimes if (++fc == 0177) 761553Srgrimes fc = ' '; 771553Srgrimes nc = fc; 781553Srgrimes for (j = 0; j < len; j++) { 79135852Sphk if (putchar(nc) == EOF) 80135852Sphk err(1, "Write error"); 811553Srgrimes if (++nc == 0177) 821553Srgrimes nc = ' '; 831553Srgrimes } 84135852Sphk if (putchar('\n') == EOF) 85135852Sphk err(1, "Write error"); 861553Srgrimes } 871553Srgrimes (void) fflush(stdout); 881553Srgrimes exit(0); 891553Srgrimes} 90