source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: No functionality changes: just restructuring.
@ 2010-06-08 13:22 kristaps
  0 siblings, 0 replies; only message in thread
From: kristaps @ 2010-06-08 13:22 UTC (permalink / raw)
  To: source

Log Message:
-----------
No functionality changes: just restructuring.  Deprecated
terminal_free() in favour of ps_free() and ascii_free().  Moved ps_*()
functions into term_ps.c so that they don't clutter up term.c.

Modified Files:
--------------
    mdocml:
        Makefile
        main.c
        main.h
        term.c
        term.h

Added Files:
-----------
    mdocml:
        term_ps.c

Revision Data
-------------
Index: term.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/term.c,v
retrieving revision 1.144
retrieving revision 1.145
diff -Lterm.c -Lterm.c -u -p -r1.144 -r1.145
--- term.c
+++ term.c
@@ -45,8 +45,6 @@
 #define	PS_CHAR_BOTMARG	  24
 #define	PS_CHAR_BOT	 (PS_CHAR_BOTMARG + 36)
 
-static	struct termp	 *alloc(char *, enum termenc, enum termtype);
-static	void		  term_free(struct termp *);
 static	void		  spec(struct termp *, const char *, size_t);
 static	void		  res(struct termp *, const char *, size_t);
 static	void		  buffera(struct termp *, const char *, size_t);
@@ -62,28 +60,44 @@ static	void		  pageopen(struct termp *);
 void *
 ascii_alloc(char *outopts)
 {
+	struct termp	*p;
+	const char	*toks[2];
+	char		*v;
 
-	return(alloc(outopts, TERMENC_ASCII, TERMTYPE_CHAR));
-}
+	if (NULL == (p = term_alloc(TERMENC_ASCII)))
+		return(NULL);
 
+	p->type = TERMTYPE_CHAR;
 
-void *
-ps_alloc(void)
-{
+	toks[0] = "width";
+	toks[1] = NULL;
+
+	while (outopts && *outopts)
+		switch (getsubopt(&outopts, UNCONST(toks), &v)) {
+		case (0):
+			p->defrmargin = (size_t)atoi(v);
+			break;
+		default:
+			break;
+		}
 
-	return(alloc(NULL, TERMENC_ASCII, TERMTYPE_PS));
+	/* Enforce a lower boundary. */
+	if (p->defrmargin < 58)
+		p->defrmargin = 58;
+
+	return(p);
 }
 
 
 void
-terminal_free(void *arg)
+ascii_free(void *arg)
 {
 
 	term_free((struct termp *)arg);
 }
 
 
-static void
+void
 term_free(struct termp *p)
 {
 
@@ -91,6 +105,7 @@ term_free(struct termp *p)
 		free(p->buf);
 	if (p->symtab)
 		chars_free(p->symtab);
+
 	free(p);
 }
 
@@ -290,16 +305,10 @@ advance(struct termp *p, size_t len)
 }
 
 
-static struct termp *
-alloc(char *outopts, enum termenc enc, enum termtype type)
+struct termp *
+term_alloc(enum termenc enc)
 {
 	struct termp	*p;
-	const char	*toks[2];
-	char		*v;
-	size_t		 width;
-
-	toks[0] = "width";
-	toks[1] = NULL;
 
 	p = calloc(1, sizeof(struct termp));
 	if (NULL == p) {
@@ -307,25 +316,9 @@ alloc(char *outopts, enum termenc enc, e
 		exit(EXIT_FAILURE);
 	}
 
-	p->type = type;
 	p->tabwidth = 5;
 	p->enc = enc;
-
-	width = 80;
-
-	while (outopts && *outopts)
-		switch (getsubopt(&outopts, UNCONST(toks), &v)) {
-		case (0):
-			width = (size_t)atoi(v);
-			break;
-		default:
-			break;
-		}
-
-	/* Enforce some lower boundary. */
-	if (width < 60)
-		width = 60;
-	p->defrmargin = width - 2;
+	p->defrmargin = 78;
 	return(p);
 }
 
Index: term.h
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/term.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -Lterm.h -Lterm.h -u -p -r1.58 -r1.59
--- term.h
+++ term.h
@@ -81,6 +81,8 @@ struct	termp {
 	size_t		  pspage;	/* -Tps: current page */
 };
 
+struct termp	 *term_alloc(enum termenc);
+void		  term_free(struct termp *);
 void		  term_newln(struct termp *);
 void		  term_vspace(struct termp *);
 void		  term_word(struct termp *, const char *);
--- /dev/null
+++ term_ps.c
@@ -0,0 +1,45 @@
+/*	$Id: term_ps.c,v 1.1 2010/06/08 13:22:37 kristaps Exp $ */
+/*
+ * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+
+#include "out.h"
+#include "main.h"
+#include "term.h"
+
+void *
+ps_alloc(void)
+{
+	struct termp	*p;
+
+	if (NULL == (p = term_alloc(TERMENC_ASCII)))
+		return(NULL);
+
+	p->type = TERMTYPE_PS;
+	return(p);
+}
+
+
+void
+ps_free(void *arg)
+{
+
+	term_free((struct termp *)arg);
+}
Index: main.h
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/main.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -Lmain.h -Lmain.h -u -p -r1.5 -r1.6
--- main.h
+++ main.h
@@ -42,10 +42,13 @@ void		  tree_mdoc(void *, const struct m
 void		  tree_man(void *, const struct man *);
 
 void		 *ascii_alloc(char *);
+void		  ascii_free(void *);
+
 void		 *ps_alloc(void);
+void		  ps_free(void *);
+
 void		  terminal_mdoc(void *, const struct mdoc *);
 void		  terminal_man(void *, const struct man *);
-void		  terminal_free(void *);
 
 __END_DECLS
 
Index: Makefile
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/Makefile,v
retrieving revision 1.277
retrieving revision 1.278
diff -LMakefile -LMakefile -u -p -r1.277 -r1.278
--- Makefile
+++ Makefile
@@ -69,13 +69,15 @@ MANSRCS	   = man_macro.c man.c man_hash.
 
 MAINLNS	   = main.ln mdoc_term.ln chars.ln term.ln tree.ln \
 	     compat.ln man_term.ln html.ln mdoc_html.ln \
-	     man_html.ln out.ln
+	     man_html.ln out.ln term_ps.ln
 
 MAINOBJS   = main.o mdoc_term.o chars.o term.o tree.o compat.o \
-	     man_term.o html.o mdoc_html.o man_html.o out.o
+	     man_term.o html.o mdoc_html.o man_html.o out.o \
+	     term_ps.o
 
 MAINSRCS   = main.c mdoc_term.c chars.c term.c tree.c compat.c \
-	     man_term.c html.c mdoc_html.c man_html.c out.c
+	     man_term.c html.c mdoc_html.c man_html.c out.c \
+	     term_ps.c
 
 LLNS	   = llib-llibmdoc.ln llib-llibman.ln llib-lmandoc.ln \
 	     llib-llibmandoc.ln llib-llibroff.ln
@@ -222,6 +224,8 @@ main.ln main.o: main.c mdoc.h man.h roff
 compat.ln compat.o: compat.c 
 
 term.ln term.o: term.c term.h man.h mdoc.h chars.h
+
+term_ps.ln term_ps.o: term_ps.c term.h main.h
 
 html.ln html.o: html.c html.h chars.h
 
Index: main.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/main.c,v
retrieving revision 1.85
retrieving revision 1.86
diff -Lmain.c -Lmain.c -u -p -r1.85 -r1.86
--- main.c
+++ main.c
@@ -591,9 +591,11 @@ fdesc(struct curparse *curp)
 			break;
 		case (OUTT_ASCII):
 			curp->outdata = ascii_alloc(curp->outopts);
+			curp->outfree = ascii_free;
 			break;
 		case (OUTT_PS):
 			curp->outdata = ps_alloc();
+			curp->outfree = ps_free;
 			break;
 		default:
 			break;
@@ -616,7 +618,6 @@ fdesc(struct curparse *curp)
 		case (OUTT_PS):
 			curp->outman = terminal_man;
 			curp->outmdoc = terminal_mdoc;
-			curp->outfree = terminal_free;
 			break;
 		default:
 			break;
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-06-08 13:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-08 13:22 mdocml: No functionality changes: just restructuring kristaps

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).