diff options
Diffstat (limited to 'usr/src/cmd/paste')
-rw-r--r-- | usr/src/cmd/paste/Makefile | 46 | ||||
-rw-r--r-- | usr/src/cmd/paste/paste.c | 268 | ||||
-rw-r--r-- | usr/src/cmd/paste/paste.xcl | 24 |
3 files changed, 0 insertions, 338 deletions
diff --git a/usr/src/cmd/paste/Makefile b/usr/src/cmd/paste/Makefile deleted file mode 100644 index 13e884af1d..0000000000 --- a/usr/src/cmd/paste/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# -# CDDL HEADER START -# -# The contents of this file are subject to the terms of the -# Common Development and Distribution License, Version 1.0 only -# (the "License"). You may not use this file except in compliance -# with the License. -# -# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE -# or http://www.opensolaris.org/os/licensing. -# See the License for the specific language governing permissions -# and limitations under the License. -# -# When distributing Covered Code, include this CDDL HEADER in each -# file and include the License file at usr/src/OPENSOLARIS.LICENSE. -# If applicable, add the following below this CDDL HEADER, with the -# fields enclosed by brackets "[]" replaced with your own identifying -# information: Portions Copyright [yyyy] [name of copyright owner] -# -# CDDL HEADER END -# -# -#ident "%Z%%M% %I% %E% SMI" -# -# Copyright (c) 1989,1996 by Sun Microsystems, Inc. -# All rights reserved. -# - -PROG= paste - -include ../Makefile.cmd - -XGETFLAGS += -a -x $(PROG).xcl -CPPFLAGS += -D_FILE_OFFSET_BITS=64 - -.KEEP_STATE: - -all: $(PROG) - -install: all $(ROOTPROG) - -clean: - -lint: lint_PROG - -include ../Makefile.targ diff --git a/usr/src/cmd/paste/paste.c b/usr/src/cmd/paste/paste.c deleted file mode 100644 index 14fc096b0e..0000000000 --- a/usr/src/cmd/paste/paste.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 1994 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -/* - * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T - * All Rights Reserved - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -#include <stdio.h> -#include <locale.h> -#include <widec.h> -#include <stdlib.h> -#include <limits.h> - - -#define MAXOPNF 12 /* maximal no. of open files (not with -s option) */ -#define MAXOPNF_STR "12" -#define RUB '\177' - - -/* - * Function prototypes - */ -static void diag(char *, char *); -static int move(char *, wchar_t *); -static void usage(); - -int -main(int argc, char **argv) -{ - int i, j, k, eofcount, nfiles, maxline, glue; - int delcount = 1; - int onefile = 0; - register int c; - wchar_t del[LINE_MAX]; - wchar_t outbuf[LINE_MAX], l, t; - register wchar_t *p; - FILE *inptr[MAXOPNF]; - int arg_ind; - int file_ind; - int error = 0; - - - /* Get locale variables from environment */ - (void) setlocale(LC_ALL, ""); - -#if !defined(TEXT_DOMAIN) /* Should be defined by cc -D */ -#define TEXT_DOMAIN "SYS_TEST" /* Use this only if it weren't */ -#endif - (void) textdomain(TEXT_DOMAIN); - - del[0] = '\t'; - maxline = LINE_MAX -2; - - /* Get command arguments */ - while ((c = getopt(argc, argv, "d:s")) != EOF) { - switch (c) { - case 'd' : - delcount = move(optarg, del); - if (delcount < 1) - diag("paste: no delimiters\n", NULL); - break; - - case 's' : - onefile++; - break; - - case '?': - usage(); - - /* NOTREACHED */ - break; - } - } - - if (!onefile) { /* not -s option: parallel line merging */ - - /* Find explicit stdin and file names */ - for (file_ind = 0, arg_ind = optind; arg_ind < argc && - file_ind < MAXOPNF; arg_ind++) { - if (argv[arg_ind][0] == '-' && - argv[arg_ind][1] == '\0') { - inptr[file_ind++] = stdin; - } else if (arg_ind >= optind) { - inptr[file_ind++] = fopen(argv[arg_ind], "r"); - if (inptr[file_ind -1] == NULL) { - diag("paste: cannot open %s\n", - argv[arg_ind]); - } - } - } - if (arg_ind < argc) { - char maxopnf_buf[LINE_MAX]; - (void) sprintf(maxopnf_buf, "%d", MAXOPNF); - diag("paste: too many files- limit %s\n", maxopnf_buf); - } - nfiles = file_ind; - - do { - p = &outbuf[0]; - eofcount = 0; - j = k = 0; - for (i = 0; i < nfiles; i++) { - while ((c = fgetwc(inptr[i])) != '\n' && - c != EOF) { - if (++j <= maxline) - *p++ = c; - else { - diag( - "paste: line too long\n", - NULL); - } - } - if ((l = del[k]) != RUB) - *p++ = l; - - k = (k + 1) % delcount; - - if (c == EOF) - eofcount++; - } - if (l != RUB) - *--p = '\n'; - else - *p = '\n'; - *++p = 0; - if (eofcount < nfiles) - (void) printf("%ws", outbuf); - } while (eofcount < nfiles); - - } else { /* -s option: serial file pasting (old 127 paste command) */ - - for (i = optind; i < argc; i++) { - p = &outbuf[0]; - glue = 0; - j = 0; - k = 0; - t = 0; - if (argv[i][0] == '-' && - argv[i][1] == '\0') { - inptr[0] = stdin; - } else if (i >= optind) { - inptr[0] = fopen(argv[i], "r"); - if (inptr[0] == NULL) { - (void) fprintf(stderr, gettext( - "paste: cannot open %s\n"), argv[i]); - error = 1; - } - } - - /* Argument not a file name */ - if (inptr[0] == NULL) { - continue; - } - - while ((c = fgetwc(inptr[0])) != EOF) { - if (j >= maxline) { - t = *--p; - *++p = 0; - (void) printf("%ws", outbuf); - p = &outbuf[0]; - j = 0; - } - if (glue) { - glue = 0; - l = del[k]; - if (l != RUB) { - *p++ = l; - t = l; - j++; - } - k = (k + 1) % delcount; - } - if (c != '\n') { - *p++ = c; - t = c; - j++; - } else glue++; - } - if (t != '\n') { - *p++ = '\n'; - j++; - } - if (j > 0) { - *p = 0; - (void) printf("%ws", outbuf); - } - } - } - return (error); -} - - -static void -diag(char *s, char *arg) -{ - (void) fprintf(stderr, gettext(s), arg); - exit(1); -} - - -static int -move(char *from, wchar_t *to) -{ - int i, n; - wchar_t wc; - - i = 0; - while (*from) { - n = mbtowc(&wc, from, MB_CUR_MAX); - if (n <= 0) - return (0); /* invalid character as a delimiter */ - from += n; - if (wc != L'\\') *to++ = wc; - else { - n = mbtowc(&wc, from, MB_CUR_MAX); - if (n <= 0) - return (0); - from += n; - switch (wc) { - case L'0' : *to++ = RUB; - break; - case L't' : *to++ = L'\t'; - break; - case L'n' : *to++ = L'\n'; - break; - default : *to++ = wc; - break; - } - } - i++; - } - return (i); -} - - -static void -usage() -{ - (void) fprintf(stderr, gettext( - "usage: paste [-s] [-d list] file \n\n")); - exit(1); -} diff --git a/usr/src/cmd/paste/paste.xcl b/usr/src/cmd/paste/paste.xcl deleted file mode 100644 index b2c15d5201..0000000000 --- a/usr/src/cmd/paste/paste.xcl +++ /dev/null @@ -1,24 +0,0 @@ -# -# CDDL HEADER START -# -# The contents of this file are subject to the terms of the -# Common Development and Distribution License, Version 1.0 only -# (the "License"). You may not use this file except in compliance -# with the License. -# -# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE -# or http://www.opensolaris.org/os/licensing. -# See the License for the specific language governing permissions -# and limitations under the License. -# -# When distributing Covered Code, include this CDDL HEADER in each -# file and include the License file at usr/src/OPENSOLARIS.LICENSE. -# If applicable, add the following below this CDDL HEADER, with the -# fields enclosed by brackets "[]" replaced with your own identifying -# information: Portions Copyright [yyyy] [name of copyright owner] -# -# CDDL HEADER END -# -msgid "" -msgid "%ws" -msgid "r" |