Annotation of 43BSD/bin/csh/sh.print.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1980 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley Software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  */
        !             6: 
        !             7: #ifndef lint
        !             8: static char *sccsid = "@(#)sh.print.c  5.2 (Berkeley) 6/6/85";
        !             9: #endif
        !            10: 
        !            11: #include "sh.h"
        !            12: #include <sys/ioctl.h>
        !            13: 
        !            14: /*
        !            15:  * C Shell
        !            16:  */
        !            17: 
        !            18: psecs(l)
        !            19:        long l;
        !            20: {
        !            21:        register int i;
        !            22: 
        !            23:        i = l / 3600;
        !            24:        if (i) {
        !            25:                printf("%d:", i);
        !            26:                i = l % 3600;
        !            27:                p2dig(i / 60);
        !            28:                goto minsec;
        !            29:        }
        !            30:        i = l;
        !            31:        printf("%d", i / 60);
        !            32: minsec:
        !            33:        i %= 60;
        !            34:        printf(":");
        !            35:        p2dig(i);
        !            36: }
        !            37: 
        !            38: p2dig(i)
        !            39:        register int i;
        !            40: {
        !            41: 
        !            42:        printf("%d%d", i / 10, i % 10);
        !            43: }
        !            44: 
        !            45: char   linbuf[128];
        !            46: char   *linp = linbuf;
        !            47: 
        !            48: putchar(c)
        !            49:        register int c;
        !            50: {
        !            51: 
        !            52:        if ((c & QUOTE) == 0 && (c == 0177 || c < ' ' && c != '\t' && c != '\n')) {
        !            53:                putchar('^');
        !            54:                if (c == 0177)
        !            55:                        c = '?';
        !            56:                else
        !            57:                        c |= 'A' - 1;
        !            58:        }
        !            59:        c &= TRIM;
        !            60:        *linp++ = c;
        !            61:        if (c == '\n' || linp >= &linbuf[sizeof linbuf - 2])
        !            62:                flush();
        !            63: }
        !            64: 
        !            65: draino()
        !            66: {
        !            67: 
        !            68:        linp = linbuf;
        !            69: }
        !            70: 
        !            71: flush()
        !            72: {
        !            73:        register int unit;
        !            74:        int lmode;
        !            75: 
        !            76:        if (linp == linbuf)
        !            77:                return;
        !            78:        if (haderr)
        !            79:                unit = didfds ? 2 : SHDIAG;
        !            80:        else
        !            81:                unit = didfds ? 1 : SHOUT;
        !            82: #ifdef TIOCLGET
        !            83:        if (didfds == 0 && ioctl(unit, TIOCLGET, (char *)&lmode) == 0 &&
        !            84:            lmode&LFLUSHO) {
        !            85:                lmode = LFLUSHO;
        !            86:                (void) ioctl(unit, TIOCLBIC, (char *)&lmode);
        !            87:                (void) write(unit, "\n", 1);
        !            88:        }
        !            89: #endif
        !            90:        (void) write(unit, linbuf, linp - linbuf);
        !            91:        linp = linbuf;
        !            92: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.