Example #1
0
void main( int argc, char **argv ) {
    int         rxflag, ch;
    int         fh;

    argv = ExpandEnv( &argc, argv );

    rxflag = 0;
    for( ;; ) {
        ch = GetOpt( &argc, argv, "X", usageMsg );
        if( ch == -1 ) {
            break;
        } else if( ch == 'X' ) {
            rxflag = 1;
        }
    }

    argv = ExpandArgv( &argc, argv, rxflag );
    argv++;
    setmode( STDOUT_FILENO, O_BINARY );
    if( argc == 1 ) {
        setmode( STDIN_FILENO, O_BINARY );
        DoCAT( STDIN_FILENO );
    } else {
        while( *argv != NULL ) {
            fh = open( *argv, O_RDONLY | O_BINARY );
            if( fh == -1 ) {
                fprintf( stderr, "cat: cannot open input file \"%s\"\n", *argv );
            } else {
                DoCAT( fh );
                close( fh );
            }
            argv++;
        }
    }
    exit( EXIT_SUCCESS );
}
Example #2
0
int main( int argc, char *argv[] )
{
    int         i;
    FILE        *f;
    int         rxflag;
    int         buff_stdin;
    int         ch;

    screenHeight = GetConsoleHeight();
    screenWidth = GetConsoleWidth();

    workBuff = MemAlloc( BUFF_SIZE );
    buff_stdin = 1;
    rxflag = 0;

    for( ;; ) {
        ch = GetOpt( &argc, argv, "#cftXp:n:", usageMsg );
        if( ch == -1 ) {
            break;
        }
        switch( ch ) {
        case 'c':
            clearScreen = 1;
            break;
        case 'f':
            foldLines = 0;
            break;
        case 't':
            buff_stdin = 0;
            break;
        case 'n':
            screenHeight = atoi( OptArg )+1;
            break;
        case 'p':
            promptString = strdup( OptArg );
            break;
        case '#':
            startLine = atol( OptArg )-1;
            break;
        case 'X':
            rxflag = 1;
            break;
        }
    }

    argv = ExpandArgv( &argc, argv, rxflag );

    lineCount = screenHeight-1;

    if( argc == 1 ) {
        if( buff_stdin ) {
            f = tmpfile();
            if( f == NULL ) {
                exit( 1 );
            }
            setmode( fileno( f ), O_BINARY );
            for( ;; ) {
                i = fread( workBuff, 1, BUFF_SIZE, stdin );
                if( fwrite( workBuff, 1, i, f ) != i ) {
                    exit( 1 );
                }
                if( feof( stdin ) ) {
                    break;
                }
            }
            fflush( f );
            doMore( "*stdin*", f );
        } else {
            doMore( "*stdin*", stdin );
        }
    } else {
        for( i=1;i<argc;i++ ) {
            f = fopen( argv[i],"rb" );
            if( f == NULL ) {
                printf( "Error opening \"%s\"\n", argv[i] );
            } else {
                if( argc > 2 ) {
                    printf( "\n%s:\n", FNameLower( argv[i] ) );
                }
                doMore( argv[i], f );
            }
        }
    }
    return( 0 );
}
Example #3
0
void main( int argc, char **argv )
{
    FILE       *fp;
    int         ch;

    int         width  = DEF_LINE_LEN;
    int         offset = 0;
    int         regexp = 0;

    argv = ExpandEnv( &argc, argv );

    while( 1 ) {
        ch = GetOpt( &argc, argv, "Xcjnl:p:", usageMsg );
        if( ch == -1 ) {
            break;
        }
        switch( ch ) {
            case 'c':
                f_mode |= FMT_CENTRE;
                break;
            case 'j':
                f_mode |= FMT_JUSTIFY;
                break;
            case 'n':
                f_mode |= FMT_NOSPACE;
                break;
            case 'l':
                width = atoi( OptArg );
                break;
            case 'p':
                offset = atoi( OptArg );
                break;
            case 'X':
                regexp = 1;
                break;
        }
    }

    if( width <= 0 ) {
        Die( "fmt: invalid line length\n" );
    }
    if( offset < 0 ) {
        Die( "fmt: invalid page offset\n" );
    }

    argv = ExpandArgv( &argc, argv, regexp );
    argv++;

    if( *argv == NULL ) {
        formatFile( stdin, width, offset );
    } else {
        while( *argv != NULL ) {
            fp = fopen( *argv, "r" );
            if( fp == NULL ) {
                fprintf( stderr, "fmt: cannot open input file \"%s\"\n", *argv );
            } else {
                if( argc > 2 ) {
                    fprintf( stdout, "%s:\n", *argv );
                }
                formatFile( fp, width, offset );
                fclose( fp );
            }
            argv++;
        }
    }
    free( w_buff );                     // free the word space
    exit( EXIT_SUCCESS );
}