www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/12/15/19:33:02

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: Doug Kaufman <dkaufman AT rahul DOT net>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: col filter
Date: 16 Dec 2001 00:28:18 GMT
Organization: a2i network
Lines: 115
Message-ID: <9vgpr2$cqh$1@samba.rahul.net>
References: <9vahtk$bvg$1 AT netnews DOT upenn DOT edu>
NNTP-Posting-Host: yellow.rahul.net
NNTP-Posting-User: dkaufman
X-Newsreader: NN version 6.5.6 (NOV)
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

juhas AT blue DOT seas DOT upenn DOT edu (PAVOL  JUHAS) writes:

>I did my homework on GOOGLE, but I could not find it:
>Is there a col utility - reverse line-feeds filter for DJGPP?

I don't know of a published col for DJGPP, but I have been using it
for several years. It is an easy port from the BSD sources. You can
get the col source from:
"ftp://ftp.uu.net/archive/systems/unix/bsd-sources/usr.bin/col/col.c.Z".
The man page is in the same directory. Apply the following patch and
it should compile under DJGPP with "gcc -W -Wall -o col.exe col.c".
                      Doug

--- col_c.ori	Sat Dec 15 12:29:18 2001
+++ col.c	Sat Dec 15 13:04:06 2001
@@ -48,6 +48,18 @@
 #include <ctype.h>
 #include <string.h>
 #include <stdio.h>
+#ifdef __DJGPP__ 
+#include <unistd.h>
+#include <stdlib.h>
+void usage();
+void warn(int);
+void flush_lines(int);
+void wrerr();
+void flush_blanks();
+typedef struct line_str LINE;
+void flush_line(LINE *);
+void free_line(LINE *);
+#endif /* __DJGPP__ */
 
 #define	BS	'\b'		/* backspace */
 #define	TAB	'\t'		/* tab */
@@ -75,7 +87,9 @@
 	char		c_char;		/* character in question */
 } CHAR;
 
+#ifndef __DJGPP__
 typedef struct line_str LINE;
+#endif /* __DJGPP__ */
 struct line_str {
 	CHAR	*l_line;		/* characters on the line */
 	LINE	*l_prev;		/* previous line */
@@ -101,7 +115,7 @@
 	if (putchar(ch) == EOF) \
 		wrerr();
 
-main(argc, argv)
+int main(argc, argv)
 	int argc;
 	char **argv;
 {
@@ -307,7 +321,7 @@
 	exit(0);
 }
 
-flush_lines(nflush)
+void flush_lines(nflush)
 	int nflush;
 {
 	LINE *l;
@@ -333,7 +347,7 @@
  * is the number of half line feeds, otherwise it is the number of whole line
  * feeds.
  */
-flush_blanks()
+void flush_blanks()
 {
 	int half, i, nb;
 
@@ -361,7 +375,7 @@
  * Write a line to stdout taking care of space to tab conversion (-h flag)
  * and character set shifts.
  */
-flush_line(l)
+void flush_line(l)
 	LINE *l;
 {
 	CHAR *c, *endc;
@@ -478,7 +492,7 @@
 	return(l);
 }
 
-free_line(l)
+void free_line(l)
 	LINE *l;
 {
 	l->l_next = line_freelist;
@@ -497,19 +511,19 @@
 	return(p);
 }
 
-usage()
+void usage()
 {
 	(void)fprintf(stderr, "usage: col [-bfx] [-l nline]\n");
 	exit(1);
 }
 
-wrerr()
+void wrerr()
 {
 	(void)fprintf(stderr, "col: write error.\n");
 	exit(1);
 }
 
-warn(line)
+void warn(line)
 	int line;
 {
 	(void)fprintf(stderr,
-- 
Doug Kaufman
Internet: dkaufman AT rahul DOT net

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019