DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦e5645e903⟧ TextFile

    Length: 795 (0x31b)
    Types: TextFile
    Notes: UNIX file
    Names: »rev.c«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦f4b8d8c84⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »cmd/rev.c« 

TextFile

/*
 * Reverse the order of the characters
 * in every line of every file (or the
 * standard input if no files are given).
 */

#include <stdio.h>

#define	MAXLINE	1000

main(argc, argv)
char *argv[];
{
	FILE *fp;
	register int i;

	if (argc < 2)
		rev(stdin);
	else for (i=1; i<argc; i++)
		if ((fp = fopen(argv[i], "r")) == NULL)
			fprintf(stderr, "Cannot open `%s'\n", argv[i]);
		else {
			rev(fp);
			fclose(fp);
		}
	exit(0);
}

/*
 * Reverse the characters in every
 * line of the file described by
 * the given I/O stream.
 */
rev(stream)
FILE *stream;
{
	register char *ep;
	register c;
	static char line[MAXLINE];

	do {
		ep = line;
		while ((c=getc(stream))!='\n' && c!=EOF)
			*ep++=c;
		while (ep > line)
			putchar(*--ep);
		if (c=='\n')
			putchar('\n');
	} while (c != EOF);
}