فهرست منبع

remove abandoned modules: d.mapgraph, d.text, d.text.freetype. rename d.paint.labels dir

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@31293 15284696-431f-4ddb-bdfa-cd5b030d7da7
Hamish Bowman 17 سال پیش
والد
کامیت
19b2e1f181

+ 1 - 2
display/Makefile

@@ -19,14 +19,13 @@ SUBDIRS = \
 	d.his \
 	d.histogram \
 	d.info \
+	d.labels \
 	d.legend \
 	d.linegraph \
-	d.mapgraph \
 	d.measure \
 	d.menu \
 	d.mon \
 	d.nviz \
-	d.paint.labels \
 	d.path \
 	d.profile \
 	d.rast \

display/d.paint.labels/Makefile → display/d.labels/Makefile


display/d.paint.labels/color.c → display/d.labels/color.c


display/d.paint.labels/description.html → display/d.labels/description.html


display/d.paint.labels/do_labels.c → display/d.labels/do_labels.c


display/d.paint.labels/local_proto.h → display/d.labels/local_proto.h


display/d.paint.labels/main.c → display/d.labels/main.c


+ 0 - 10
display/d.mapgraph/Makefile

@@ -1,10 +0,0 @@
-MODULE_TOPDIR = ../..
-
-PGM = d.mapgraph
-
-LIBES     = $(DISPLAYLIB) $(RASTERLIB) $(GISLIB)
-DEPENDENCIES= $(DISPLAYDEP) $(RASTERDEP) $(GISDEP)
-
-include $(MODULE_TOPDIR)/include/Make/Module.make
-
-default: cmd

+ 0 - 191
display/d.mapgraph/description.html

@@ -1,191 +0,0 @@
-<H3>
-This module is superseded and scheduled for demolition.
-<BR>Please use "<em><a href="d.graph.html">d.graph</a>
-<b>-m</b></em>" instead.</H3>
-
-<H2>DESCRIPTION</H2>
-
-<EM>d.mapgraph</EM> draws graphics that are described in
-standard input (default) or the UNIX input file
-<EM>name</EM>. If commands are entered via standard
-input, a <EM>ctrl-d</EM> is used to signal the end of input
-to <EM>d.mapgraph</EM>. This program performs
-essentially the same function as 
-<EM><A HREF="d.graph.html">d.graph</A></EM>; however,
-point locations are specified to <EM>d.mapgraph</EM> in the
-geographic coordinate system of the user's current mapset
-and location (i.e., in map coordinates), rather than in
-graphics display screen coordinates.
-
-<P>
-
-The program can be run interactively or non-interactively.
-The user can run the program completely non-interactively
-by specifying the name of a file containing
-<EM>d.mapgraph</EM> graphics commands and the values of all
-needed parameters on the command line.  The user can
-instead elect to run the program partially interactively,
-by specifying any/all of the parameters <EM>except</EM> the
-graphics <B>input=</B><EM>name</EM> parameter on the
-command line.  In this case, <EM>d.mapgraph</EM> will
-expect the user to input <EM>d.mapgraph</EM> graphics
-commands from standard input (i.e., the keyboard) and will
-(silently) prompt the user for these graphics commands.
-Alternately, the user can simply type <B>d.mapgraph</B> on
-the command line, and be prompted for the values of all
-parameters (the user can still input graphics commands from
-an input file using this form.) In this case, the user is
-presented with the standard GRASS 
-<EM><A HREF="parser.html">parser</A></EM> interface.
-
-<P>
-<EM>d.mapgraph</EM> is used for drawing simple graphics on
-top of map layers.  The coordinate system used by
-<EM>d.mapgraph</EM> is the same as that of the map layer
-displayed in the active display frame on the graphics
-monitor (or that of the user's current region, if no map is
-displayed).
-
-<P>
-The graphics language is simple and uses the following commands: 
-
-<DL>
-
-<DT><B>#</B> <EM>comment</EM> 
-
-<DD>A line of comment which is ignored in the processing. 
-
-<DT><B>move</B> <EM>xpos ypos</EM> 
-
-<DD>The current location is updated to <EM>xpos ypos</EM>
-(where these, respectively, are the easting and northing of
-geographic coordinates stated in the map coordinate system
-of the user's current GRASS location, falling within the
-current region and active frame).  If unspecified by the
-user, the current location becomes (0,0).  If, as most
-likely, the point (0,0) falls outside of the user's current
-region, graphics drawn there will not appear in the
-graphics frame.
-
-<P>
-
-Note: use <EM><A HREF="g.region.html">g.region</A></EM>
-to obtain the coordinates of current location.  Use <EM>
-<A HREF="d.where.html">d.where</A></EM> to obtain specific
-map coordinates of various points on the raster map
-displayed in the active frame.
-
-<BR>
-
-Note: there must be a space between <EM>xpos</EM> and <EM>ypos</EM>.
-
-<DT><B>draw</B> <EM>xpos ypos</EM> 
-
-<DD>A line is drawn in the current color from the current
-location to the new location <EM>xpos ypos</EM>, which then
-becomes the current location.  <EM>xpos</EM> and
-<EM>ypos</EM> are (respectively) an easting and northing
-stated in the map coordinate system of the user's current
-GRASS location, and located within the user's current
-geographic region and active frame.
-
-<P>
-
-Note: there must be a space between <EM>xpos</EM> and <EM>ypos</EM>.
-
-<DT><B>color</B> <EM>color</EM> 
-
-<DD>Sets the current color to that stated. 
-Color options are: <EM>red</EM>, 
-<EM>orange</EM>, 
-<EM>yellow</EM>, 
-<EM>green</EM>, 
-<EM>blue</EM>, 
-<EM>indigo</EM>, 
-<EM>violet</EM>,
-<EM>magenta,</EM> 
-<EM>brown</EM>, 
-<EM>gray</EM>,
-<EM>white</EM>, 
-<EM>black</EM>,
-an R:G:B triplet (separated by colons),
-or the word "none" (draws in the default background color).
-
-<DT><B>size</B> <EM>xper yper</EM>
-
-<DD>Subsequent text will be drawn such that the text is
-<EM>xper</EM> percent of the display frame's width and
-<EM>yper</EM> percent of the display frame height.  If not
-specified by the user, the text size becomes 5 percent of
-the active frame's width and 5 percent of the frame's
-height.  This is equivalent to entering <B>size 5 5</B>.
-
-<DT><B>text</B> <EM>line-of-text</EM> 
-
-<DD>The stated text is drawn at the current location using
-the current color and the current size.
-
-<DT><B>icon</B> <EM>type size x y</EM> 
-
-<DD>Draws an icon of types o, x, or + with specified size
-at location x,y.  Note: type o designates a square.
-
-<DT><B>polygon</B> <BR>
-<EM> xpos ypos</EM> <BR>
-<EM> xpos ypos</EM> <BR>
-. <BR>
-. <BR>
-. <BR>
-
-<DD>The map coordinates appearing on lines beneath the word
-<EM>polygon</EM>, one pair per line, circumscribe a
-polygon which is to be filled with the current color.
-
-</DL>
-
-<H2>NOTES</H2>
-
-<EM>d.mapgraph</EM> is identical to the 
-<EM><A HREF="d.graph.html">d.graph</A></EM> command, except for the 
-difference in coordinate systems used. In the future functionality will
-be merged into <em>d.graph</em> and <em>d.mapgraph</em> will be removed.
-
-<P>
-
-<EM>d.mapgraph</EM> will complain if the user enters
-something to standard input that it does not understand.
-Blank lines in the input file will result in this error
-message.
-
-<H2>EXAMPLE</H2>
-
-Draw some text in the center of the display:
-<pre>
-   EAST=`g.region -c | grep east | cut -f2 -d:`
-   NORTH=`g.region -c | grep north | cut -f2 -d:`
-
-   d.mapgraph << EOF
-     move $EAST $NORTH
-     text GRASS
-   EOF
-</pre>
-
-<H2>SEE ALSO</H2>
-
-<EM><A HREF="d.frame.html">d.frame</A></EM><BR>
-<EM><A HREF="d.graph.html">d.graph</A></EM><BR>
-<EM><A HREF="d.rast.html">d.rast</A></EM><BR>
-<EM><A HREF="d.zoom.html">d.zoom</A></EM><BR>
-<EM><A HREF="g.region.html">g.region</A></EM><BR>
-<!--
-<EM><A HREF="grass.logo.sh.html">grass.logo.sh</A></EM><BR>
-<EM><A HREF="parser.html">parser</A></EM>
--->
-
-<H2>AUTHOR</H2>
-
-James Westervelt, 
-U.S. Army Construction Engineering 
-Research Laboratory
-
-<p><i>Last changed: $Date$</i>

+ 0 - 250
display/d.mapgraph/do_graph.c

@@ -1,250 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include <grass/gis.h>
-#include "options.h"
-#include <grass/display.h>
-#include <grass/raster.h>
-#include <grass/colors.h>
-
-#include "local_proto.h"
-
-#define CHUNK	128
-
-static int coors_allocated = 0 ;
-static double *xarray ;
-static double *yarray ;
-
-static double cur_east = 0.0 ;
-static double cur_north = 0.0 ;
-
-extern struct Cell_head window ;
-
-int set_text_size (void)
-{
-    double x, y ;
-
-    x = (D_get_d_east() - D_get_d_west()) * hsize/100.0;
-    y = (D_get_d_north() - D_get_d_south()) * vsize/100.0;
-    if (x < 0) x = -x;
-    if (y < 0) y = -y;
-
-    R_text_size(abs((int)x), abs((int)y)) ;
-    return(0) ;
-}
-
-int do_draw (char *buf)
-{
-    double east, north ;
-
-    if (!scan_en (buf, &east, &north, 1))
-    {
-	bad_line (buf);
-	return -1;
-    }
-
-    G_plot_line (cur_east, cur_north, east, north);
-
-    cur_east = east ;
-    cur_north = north ;
-
-    return(0) ;
-}
-
-int do_move (char *buf)
-{
-    double east, north ;
-
-    if (!scan_en (buf, &east, &north, 1))
-    {
-	bad_line (buf);
-	return -1;
-    }
-
-    cur_east = east;
-    cur_north = north;
-
-    return(0) ;
-}
-
-int do_icon (char *buf)
-{
-    double east, north ;
-    char type ;
-    double size ;
-    int dsize;
-    char where[100];
-
-    if ( 3 != sscanf(buf, "%*s %c %d %[^\n]", &type, &dsize, where))
-    {
-	bad_line (buf);
-        return(-1) ;
-    }
-    if (!scan_en(where, &east, &north, 0))
-    {
-	bad_line (buf);
-	return -1;
-    }
-
-    size = D_d_to_u_col (0.0) - D_d_to_u_col ((double) dsize);
-    if (size < 0.0) size = -size;
-
-    switch (type & 0177)
-    {
-    case 'o':
-        G_plot_line(east-size, north-size, east-size, north+size) ;
-        G_plot_line(east-size, north+size, east+size, north+size) ;
-        G_plot_line(east+size, north+size, east+size, north-size) ;
-        G_plot_line(east+size, north-size, east-size, north-size) ;
-        break ;
-    case 'x':
-        G_plot_line(east-size, north-size, east+size, north+size) ;
-        G_plot_line(east-size, north+size, east+size, north-size) ;
-        break ;
-    case '+':
-    default:
-        G_plot_line(east     , north-size, east     , north+size) ;
-        G_plot_line(east-size, north     , east+size, north     ) ;
-        break ;
-    }
-    return(0) ;
-}
-
-int do_color (char *buff)
-{
-    char in_color[64] ;
-    int R, G, B, color = 0;
-
-    sscanf(buff, "%*s %s", in_color);
-
-    /* Parse and select color */
-    color = G_str_to_color(in_color, &R, &G, &B);
-    if(color == 0) {
-	G_warning("[%s]: No such color", in_color);
-	return(-1);
-    }
-    if(color == 1) {
-	R_RGB_color(R, G, B);
-    }
-    if(color == 2) {    /* i.e. color=none */
-	R = D_translate_color(DEFAULT_BG_COLOR);
-	R_standard_color(R);
-    }
-
-    return(0);
-}
-
-int do_poly (char *buf, int len)
-{
-    int i,num ;
-    char origcmd[64] ;
-    double east, north ;
-    int more;
-
-    sscanf(buf, "%s", origcmd) ;
-
-    num = 0 ;
-
-    for(;;)
-    {
-        if (!(more = read_line(buf, len)))
-            break ;
-
-        if (! scan_en(buf, &east, &north, 0) )
-            break ;
-
-        check_alloc(num+1) ;
-        xarray[num] = east;
-        yarray[num] = north;
-        num++ ;
-    }
-
-    if (num)
-    {
-        if(strcmp(origcmd, "polygon"))
-	{
-	    for (i = 1; i < num; i++)
-		G_plot_line (xarray[i-1], yarray[i-1], xarray[i], yarray[i]);
-	    G_plot_line (xarray[num-1], yarray[num-1], xarray[0], yarray[0]);
-	}
-        else
-	    G_plot_polygon (xarray, yarray, num);
-    }
-
-    return(more) ;
-}
-
-int do_size (char *buf)
-{
-    if ( 2 != sscanf(buf, "%*s %lf %lf",&hsize, &vsize) )
-    {
-	bad_line (buf);
-        return(-1) ;
-    }
-    
-    set_text_size() ;
-    return 0;
-}
-
-int do_text (char *buf)
-{
-    int x, y;
-	int x2, y2 ;
-
-/* skip over the word "text" */
-    while (*buf && *buf != ' ' && *buf != '\t')
-	buf++;
-
-/* skip white space to get to the text */
-    while (*buf == ' ' || *buf == '\t')
-	buf++;
-
-    G_plot_where_xy(cur_east, cur_north, &x, &y);
-    R_move_abs(x, y);
-	R_get_text_box(buf, &y2, &y, &x2, &x) ;
-    R_text (buf) ;
-    G_plot_where_en(x, y, &cur_east, &cur_north);
-
-    return 0;
-}
-
-int check_alloc (int num)
-{
-    int to_alloc ;
-
-    if (num < coors_allocated)
-        return 1;
-    
-    to_alloc = coors_allocated ;
-    while (num >= to_alloc)
-        to_alloc += CHUNK ;
-
-    if (coors_allocated == 0)
-    {
-        xarray = (double *) G_malloc(to_alloc * sizeof(double)) ;
-        yarray = (double *) G_malloc(to_alloc * sizeof(double)) ;
-    }
-    else
-    {
-        xarray = (double *)G_realloc(xarray, to_alloc * sizeof(double));
-        yarray = (double *)G_realloc(yarray, to_alloc * sizeof(double));
-    }
-
-    coors_allocated = to_alloc ;
-
-    return 0;
-}
-
-int scan_en (char *buf, double *east, double *north, int skip)
-{
-    char ebuf[100], nbuf[100];
-
-    if ( 2 != sscanf(buf, skip ? "%*s %s %s" : "%s %s", ebuf, nbuf) )
-	return 0;
-
-    if (!G_scan_easting (ebuf, east, window.proj))
-	return 0;
-    if (!G_scan_northing (nbuf, north, window.proj))
-	return 0;
-
-    return 1;
-}

+ 0 - 54
display/d.mapgraph/graphics.c

@@ -1,54 +0,0 @@
-#include <stdio.h>
-#include "local_proto.h"
-
-int graphics (void)
-{
-	char buf[128] ;
-	int more;
-
-	more = read_line(buf, sizeof(buf));
-
-	while(more)
-	{
-		switch (*buf & 0177)
-		{
-		case 't':
-			do_text(buf) ;
-			more = read_line(buf, sizeof(buf));
-			break ;
-		case 's':
-			do_size(buf) ;
-			more = read_line(buf, sizeof(buf));
-			break ;
-		case 'p':
-			more = do_poly(buf, sizeof(buf)) ;
-			break ;
-		case 'c':
-			do_color(buf) ;
-			more = read_line(buf, sizeof(buf));
-			break ;
-		case 'm':
-			do_move(buf) ;
-			more = read_line(buf, sizeof(buf));
-			break ;
-		case 'd':
-			do_draw(buf) ;
-			more = read_line(buf, sizeof(buf));
-			break ;
-		case 'i':
-			do_icon(buf) ;
-			more = read_line(buf, sizeof(buf));
-			break ;
-		case 0:
-		case '#':
-			more = read_line(buf, sizeof(buf));
-			break ;
-		default:
-			bad_line (buf);
-			more = read_line(buf, sizeof(buf));
-			break ;
-		}
-	}
-
-	return 0;
-}

+ 0 - 16
display/d.mapgraph/local_proto.h

@@ -1,16 +0,0 @@
-/* do_graph.c */
-int set_text_size(void);
-int do_draw(char *);
-int do_move(char *);
-int do_icon(char *);
-int do_color(char *);
-int do_poly(char *, int);
-int do_size(char *);
-int do_text(char *);
-int check_alloc(int);
-int scan_en(char *, double *, double *, int);
-/* graphics.c */
-int graphics(void);
-/* read_line.c */
-int read_line(char *, int);
-int bad_line(char *);

+ 0 - 177
display/d.mapgraph/main.c

@@ -1,177 +0,0 @@
-/****************************************************************************
- *
- * MODULE:       d.mapgraph
- * AUTHOR(S):    James Westervelt (original contributor)
- *               Markus Neteler <neteler itc.it>,
- *               Roberto Flor <flor itc.it>, 
- *               Bernhard Reiter <bernhard intevation.de>, 
- *               Cedric Shock <cedricgrass shockfamily.net>, 
- *               Huidae Cho <grass4u gmail.com>, 
- *               Eric G. Miller <egm2 jps.net>, 
- *               Glynn Clements <glynn gclements.plus.com>, 
- *               Hamish Bowman <hamish_nospam yahoo.com>, 
- *               Jan-Oliver Wagner <jan intevation.de>
- * PURPOSE:      draws graphs - now superceded by d.graph
- * COPYRIGHT:    (C) 1999-2007 by the GRASS Development Team
- *
- *               This program is free software under the GNU General Public
- *               License (>=v2). Read the file COPYING that comes with GRASS
- *               for details.
- *
- *****************************************************************************/
-#include <stdlib.h>
-#include <unistd.h>
-#include <grass/gis.h>
-#include <grass/display.h>
-#include <grass/raster.h>
-#include <grass/colors.h>
-#include <grass/glocale.h>
-
-#define MAIN
-#include "options.h"
-#include "local_proto.h"
-
-
-struct Cell_head window ;
-
-int 
-main (int argc, char **argv)
-{
-	struct GModule *module;
-	struct Option *opt1, *opt2/*, *opt3, *opt4*/ ;
-	int R, G, B, color = 0;
-
-	/* Initialize the GIS calls */
-	G_gisinit(argv[0]) ;
-
-	module = G_define_module();
-	module->keywords = _("display");
-    module->description =
-		_("Generates and displays simple graphics on map "
-		"layers drawn in the active graphics monitor display frame.");
-
-	opt1 = G_define_option() ;
-	opt1->key        = "input" ;
-	opt1->type       = TYPE_STRING ;
-	opt1->required   = NO ;
-	opt1->description= _("Unix file containg graphing instructions, "
-			   "if not given reads from standard input");
-	opt1->gisprompt  = "old_file,file,input";
-
-	opt2 = G_define_option() ;
-	opt2->key        = "color" ;
-	opt2->type       = TYPE_STRING ;
-	opt2->required   = NO;
-	opt2->answer     = DEFAULT_FG_COLOR ;
-
-	opt2->description= _("Color to draw with, either a standard GRASS color "
-			   "or R:G:B triplet (separated by colons)");
-	opt2->gisprompt  = GISPROMPT_COLOR ;
-
-/*
-	opt3 = G_define_option() ;
-	opt3->key        = "vsize" ;
-	opt3->type       = TYPE_DOUBLE;
-	opt3->answer     = "5.0" ;
-	opt3->options    = "0-100" ;
-	opt3->description= "Vertical text height as % of display frame height" ;
-
-	opt4 = G_define_option() ;
-	opt4->key        = "hsize" ;
-	opt4->type       = TYPE_DOUBLE;
-	opt4->answer     = "5.0" ;
-	opt4->options    = "0-100" ;
-	opt4->description= "Horizontal text width as % of display frame width" ;
-*/
-
-	/* Check command line */
-	if (G_parser(argc, argv))
-		exit(1);
-
-	G_warning("This module is superseded. Please use 'd.graph -m' instead.");
-
-	if (opt1->answer != NULL)
-	{
-		/* 1/4/91  jmoorman
-		mapset = G_find_file ("mapgraph", opt1->answer, "");
-		if (mapset == NULL)
-		{
-			G_usage() ;
-			G_fatal_error("Mapgraph file [%s] not available", opt1->answer);
-		}
-		Infile = G_fopen_old ("mapgraph", opt1->answer, mapset);
-		if (Infile == NULL)
-		{
-			G_usage() ;
-			G_fatal_error ("Graph file <%s> not available", opt1->answer);
-		}
-		*/
-		/* using fopen instead to facilitate finding the file */
-		if ((Infile = fopen(opt1->answer,"r")) == NULL) 
-		    {
-			G_usage() ;
-			G_fatal_error ("Mapgraph file [%s] not available", opt1->answer);
-		}
-	}
-	else
-	{
-		Infile = stdin ;
-		if (isatty(0))
-			fprintf (stdout,"\nEnter mapgraph commands; terminate with a ^D\n\n") ;
-	}
-
-
-	/* Parse and select color */
-	if (opt2->answer != NULL) {
-	   color = G_str_to_color(opt2->answer, &R, &G, &B);
-	   if(color == 0)
-		G_fatal_error("[%s]: No such color", opt2->answer);
-	   if(color == 1)
-		R_RGB_color(R, G, B);
-
-	   /* (color==2) is "none", noop */
-	}
-
-	/*
-	sscanf(opt3->answer,"%lf",&temp);
-	vsize = temp ;
-
-	sscanf(opt4->answer,"%lf",&temp);
-	hsize = temp ;
-	*/
-
-	vsize = hsize = 5.0 ;
-
-	if (R_open_driver() != 0)
-		G_fatal_error ("No graphics device selected");
-
-	D_setup(0);
-
-	G_get_set_window(&window) ;
-
-	R_move_abs(
-	    (int)(D_get_d_west() + D_get_d_east() / 2.0),
-	    (int)(D_get_d_north() + D_get_d_south() / 2.0)) ;
-	set_text_size() ;
-
-	/* Do the graphics */
-	G_setup_plot (
-	    D_get_d_north(), D_get_d_south(), D_get_d_west(), D_get_d_east(),
-	    D_move_abs, D_cont_abs);
-
-	graphics () ;
-
-	/* Add this command to list */
-	/*
-	if(argc > 1)
-	{
-		D_add_to_list(G_recreate_command()) ;
-	}
-	*/
-
-	R_close_driver();
-	exit (0);
-}
-
-
-

+ 0 - 8
display/d.mapgraph/options.h

@@ -1,8 +0,0 @@
-#include<stdio.h>
-#ifndef MAIN
-#define MAIN extern
-#endif
-
-MAIN double hsize ;
-MAIN double vsize ;
-MAIN FILE *Infile ;

+ 0 - 25
display/d.mapgraph/read_line.c

@@ -1,25 +0,0 @@
-#include <unistd.h>
-#include <grass/gis.h>
-#include "options.h"
-
-static int line = 0;
-
-int read_line (char *buf, int n)
-{
-    if (!G_getl (buf, n, Infile))
-	return 0;
-    G_strip (buf);
-    line++;
-    return 1;
-}
-
-int bad_line (char *buf)
-{
-    if (isatty(fileno(Infile)))
-	fprintf (stderr, "???\n");
-    else
-	fprintf (stderr, "%s: WARNING: line %d invalid: %s\n",
-		G_program_name(), line, buf);
-
-    return 0;
-}

+ 0 - 2
display/d.text.freetype/DEPRECATED

@@ -1,2 +0,0 @@
-no longer maintained.
-Use ../d.text.new/ instead.

+ 0 - 16
display/d.text.freetype/Makefile

@@ -1,16 +0,0 @@
-MODULE_TOPDIR = ../..
-
-PGM = d.text.freetype
-CAPFILE=freetypecap
-EXTRA_CFLAGS=$(FTINC)
-
-LIBES     = $(DISPLAYLIB) $(RASTERLIB) $(GISLIB) $(FTLIB) $(ICONVLIB)
-DEPENDENCIES= $(DISPLAYDEP) $(RASTERDEP) $(GISDEP)
-
-include $(MODULE_TOPDIR)/include/Make/Module.make
-
-default: cmd $(ETC)/$(CAPFILE)
-
-$(ETC)/$(CAPFILE): $(CAPFILE)
-	$(INSTALL_DATA) $< $@
-

+ 0 - 159
display/d.text.freetype/description.html

@@ -1,159 +0,0 @@
-<H2>DESCRIPTION</H2>
-
-
-<EM>d.text.freetype</EM>
-draws text in the graphics monitor's active display frame using TrueType
-fonts already installed on the user's system.
-<BR>
-
-
-<H3>Parameter Notes:</H3>
-
-<DL>
-
-<DT><B>at=</B><EM>x,y</EM>
-<DD>Locates the text at this screen position (percentage, [0,0] is bottom
-    left). If this option is omitted, 
-    the user will be prompted to use the mouse to specify the location.
-<DT><B>font=</B><EM>name</EM>
-<DD>Specifies a font listed in the GRASS 'freetypecap' definition file.
-
-<DT><B>charset=</B><EM>name</EM>
-<DD>Sets character encoding for input <B>text</B>. (e.g. <TT>ISO-8859-1</TT>)
-
-<DT><B>color=</B><EM>name</EM>
-<DD>Sets text color to <EM>name</EM> or <EM>R:G:B triplet</EM>.
-	It can also be a hexadecimal value of <TT>0xRRGGBB</TT>
-	(deprecated).<BR>
-    Options: red, orange, yellow, green, blue, indigo, 
-    violet, gray, white, and black<BR>
-    Default: <EM>gray</EM><BR>
-
-<DT><B>size=</B><EM>value</EM>
-<DD>Sets text height in percent of available frame height.<BR>
-    Default: 10
-
-<DT><B>align=</B><EM>name</EM>
-<DD>Aligns text in this way.<BR>
-    Options: ll, lc, lr, cl, cc, cr, ul, uc, ur<BR>
-    l?: Lower, c?: Vertically Centered, u?: Upper,<BR>
-    ?l: Left, ?c: Horizontally Centered, ?r: Right<BR>
-    Default: <EM>ll</EM> (Lower Left)<BR>
-
-</DL>
-
-
-<H3>Command mode:</H3>
-
-<H4>Key</H4>
-<DL>
-<DT>{REQUIRED}
-<DD>
-<DT>[OPTIONAL]
-<DD>
-<DT>THIS|orTHAT
-<DD>
-<DT>+, - 
-<DD>Relative value
-<DT>r, %, p
-<DD>Radian, Percentage, and Pixels respectively
-</DL>
-
-<H4>Commands</H4>
-
-<DL>
-<DT><DD>.F {font|path}[:charset] <EM>font</EM>
-<DD>
-<DT><DD>.C {color_name|R:G:B} <EM>color</EM> (default: gray)
-<DD>
-<DT><DD>.S [+|-]size[p] <EM>size</EM> (default: 5)
-<DD>
-<DT><DD>.B {0|1} <EM>bold</EM> (default: 0)
-<DD>
-<DT><DD>.A {ll|lc|lr|cl|cc|cr|ul|uc|ur} <EM>align</EM> (default: ll)
-<DD>
-<DT><DD>.R [+|-]rotation[r] <EM>rotation</EM> (default: 0)
-<DD>
-<DT><DD>.I linespacing <EM>linespacing</EM> (default: 1.1)
-<DD>
-<DT><DD>.X [+|-]x[%|p] <EM>x-coord</EM>
-<DD>
-<DT><DD>.Y [+|-]y[%|p] <EM>y-coord</EM>
-<DD>
-<DT><DD>.L {0|1} <EM>linefeed</EM> (default: 1)
-<DD>
-<DT><DD>.E [+|-]east[%|p] <EM>x-origin</EM>
-<DD>
-<DT><DD>.N [+|-]north[%|p] <EM>y-origin</EM>
-<DD>
-<DT><DD>.. <EM>dot</EM>
-<DD>
-</DL>
-
-To end input, press Ctrl-d on a blank line.
-<BR><BR>
-
-<H2>EXAMPLES</H2>
-
-<H4>Standard mode:</H4>
-
-<TT><B>d.text.freetype</B> text="GRASS GIS" -g at=2107055,5603133 \<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size=7 path=/usr/X11R6/lib/X11/fonts/TTF/luximb.ttf</TT>
-<P>
-
-<H4>Command mode:</H4>
-The following example prints three lines: "<TT><font color=gray>GRASS</font>
- <font color=red>d.text.freetype</font> <font color=gray>output</font></TT>",
-"<TT><font color=gray>See test.input file</font></TT>", and 
-"<TT><font color=gray>for more details.</font></TT>".
-
-<DL>
-<DT><TT><B>d.text.freetype -c</B>
-<dd>.F /usr/X11R6/lib/X11/fonts/TTF/luximb.ttf:ISO-8859-1
-<dd>.S 20p
-<dd>.L 0
-<dd>GRASS 
-<dd>.C red
-<dd> d.text.freetype
-<dd>.C gray
-<dd> output
-<dd>.L 1
-<dd>See test.input file
-<dd>for more details.</TT>
-</DL>
-<BR>
-
-Command mode instructions may also be read directly from a text file:<BR><BR>
-<TT><B>d.text.freetype</B> -c &lt; test.input</TT>
-<BR><BR>
-
-<H2>DEFINITION FILE</H2>
-
-To help users select fonts conveniently, the definition file,
-<TT>$(GISBASE)/etc/freetypecap</TT>, is provided.  Its format is as follows:
-
-<PRE>
-	font:fontpath:charset:description
-	*default_font:fontpath:charset:description
-</PRE>
-
-See the file for examples.
-<BR><BR>
-
-<H2>SEE ALSO</H2>
-
-<EM><A HREF="d.text.html">d.text</A></EM><br>
-<EM><A HREF="d.font.freetype.html">d.font.freetype</A></EM><br>
-<EM><A HREF="d.font.html">d.font</A></EM><br>
-<EM><A HREF="d.title.html">d.title</A></EM><br>
-<EM><A HREF="d.where.html">d.where</A></EM><br>
-<BR><BR>
-
-<H2>AUTHOR</H2>
-
-Huidae Cho
-&lt;<a href=mailto:grass4u@gmail.com>grass4u@gmail.com</a>&gt;
-<P>
-Updates by Hamish Bowman, NZ
-
-<p><i>Last changed: $Date$</i>

+ 0 - 26
display/d.text.freetype/freetypecap

@@ -1,26 +0,0 @@
-# FreeType2 definition file for d.text.freetype
-#
-# FORMAT:
-#	font:fontpath:charset:description
-#	*default_font:fontpath:charset:description
-#
-# NOTE:
-#	It does not allow spaces, tabs, and multiple lines in one font.
-#	description is never used.
-#	DO NOT ADD A DEFAULT FONT IN THE CVS VERSION. :-)
-#
-luximr:/usr/X11R6/lib/X11/fonts/TTF/luximr.ttf:iso-8859-1:
-luxirr:/usr/X11R6/lib/X11/fonts/TTF/luxirr.ttf:iso-8859-1:
-luxisr:/usr/X11R6/lib/X11/fonts/TTF/luxisr.ttf:iso-8859-1:
-luximb:/usr/X11R6/lib/X11/fonts/TTF/luximb.ttf:iso-8859-1:
-luxirb:/usr/X11R6/lib/X11/fonts/TTF/luxirb.ttf:iso-8859-1:
-luxisb:/usr/X11R6/lib/X11/fonts/TTF/luxisb.ttf:iso-8859-1:
-luximri:/usr/X11R6/lib/X11/fonts/TTF/luximri.ttf:iso-8859-1:
-luxirri:/usr/X11R6/lib/X11/fonts/TTF/luxirri.ttf:iso-8859-1:
-luxisri:/usr/X11R6/lib/X11/fonts/TTF/luxisri.ttf:iso-8859-1:
-luximbi:/usr/X11R6/lib/X11/fonts/TTF/luximbi.ttf:iso-8859-1:
-luxirbi:/usr/X11R6/lib/X11/fonts/TTF/luxirbi.ttf:iso-8859-1:
-luxisbi:/usr/X11R6/lib/X11/fonts/TTF/luxisbi.ttf:iso-8859-1:
-batang:/usr/X11R6/lib/X11/fonts/TTF/batang.ttc:euc-kr:
-dotum:/usr/X11R6/lib/X11/fonts/TTF/dotum.ttc:euc-kr:
-gulim:/usr/X11R6/lib/X11/fonts/TTF/gulim.ttc:euc-kr:

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 1118
display/d.text.freetype/main.c


+ 0 - 57
display/d.text.freetype/test.input

@@ -1,57 +0,0 @@
-. COMMANDS: .F .C .S .A .R .X .Y .L .E .N ..
-. Other .* except COMMANDS can be used for comments.
-.
-. .F {font|path}[:charset]		font
-. .C {color_name|0xRRGGBB}		color
-. .S [+|-]size[p]			size		p means pixel size
-. .B {0|1}				bold
-. .A {ll|lc|lr|cl|cc|cr|ul|uc|ur}	align
-. .R [+|-]rotation[r]			rotation	r means radian rotation
-. .I linespacing			linespacing
-. .X [+|-]x[%|p]			x-coord		+|- means relative dx
-. .Y [+|-]y[%|p]			y-coord		% means percentage
-. .L {0|1}				linefeed
-. .E [+|-]east[%|p]			x-origin
-. .N [+|-]north[%|p]			y-origin
-. ..					draw one .
-.
-.c ALSO COMMENT
-.a ALSO COMMENT
-.
-.
-.E 100p
-.N 100p
-.F luximr
-.S 10
-.R 5
-line 1
-.F luxirbi
-.L 0
-line 2-1
-line 2-2
-.L 1
-.C 0xff00ff
-line 3
-
-line 5
-.X 0
-.Y 0
-line 1 again
-.X +3
-.F /usr/X11R6/lib/X11/fonts/TTF/gulim.ttc:euc-kr
-.S 50p
-.R -10
-ÇѱÛÀÔ´Ï´Ù.
-line 2 again
-line 3 again
-line 4
-.L 0
-line 5-1
-line 5-2
-.A cc
-.X 50%
-.Y 70%
-.C red
-.R 3.14r
-(100,200)
-

+ 0 - 2
display/d.text/DEPRECATED

@@ -1,2 +0,0 @@
-no longer maintained.
-Use ../d.text.new/ instead.

+ 0 - 10
display/d.text/Makefile

@@ -1,10 +0,0 @@
-MODULE_TOPDIR = ../..
-
-PGM = d.text
-
-LIBES     = $(DISPLAYLIB) $(RASTERLIB) $(GISLIB)
-DEPENDENCIES= $(DISPLAYDEP) $(RASTERDEP) $(GISDEP)
-
-include $(MODULE_TOPDIR)/include/Make/Module.make
-
-default: cmd

+ 0 - 109
display/d.text/description.html

@@ -1,109 +0,0 @@
-<H2>DESCRIPTION</H2>
-
-<EM>d.text</EM> draws text in the active display frame on
-the graphics monitor.  Text can be provided through
-standard input or redirected from a file (using the UNIX
-redirection mechanism).
-
-In addition to the options provided on the command line,
-colors, text size, font type, rotation angle, and boldness can be adjusted
-with commands in the standard input (i.e., if the user
-invokes <EM>d.text</EM> without options on the command
-line, and then assigns values to these options on lines
-within the standard input).
-
-<H3>Commands:</H3> 
-
-<DL>
-
-<DT><B>.C</B> <EM>color</EM> 
-<DD>
-(where <EM>color</EM> is one of the available colors) causes text appearing on 
-subsequent lines to be drawn in that color. 
-
-<DT><B>.S </B> <EM>size</EM>
-<DD>
-(where <EM>size</EM> is a percentage within the range 0 to
-100) adjusts text size.  Note that a size of 10 would allow
-10 lines to be drawn in the active display frame, 5 would
-allow the drawing of 20 lines, and 50 would allow the
-drawing of 2 lines.
-
-<P>
-<DT><B>.F</B> <EM>font</EM>
-<DD>
-(where <EM>font</EM> is one of the fonts known by the GRASS program 
-<EM><A HREF="d.font.html">d.font</A></EM>) manipulates
-the font type. Available fonts are listed in the GRASS manual entry for 
-<EM><A HREF="d.font.html">d.font</A></EM>. 
-The default font type used (if unspecified by the user) 
-is <EM>romans</EM>.
-<!-- Run the GRASS macro 
-<EM><A  HREF="show.fonts.sh.html">show.fonts.sh</A></EM> 
-to see what these fonts look like. -->
-
-<DT><B>.R </B> <EM>rotation</EM>
-<DD>
-(where <EM>rotation</EM> is an angle in degrees, counter-clockwise)
-to rotate the text.
-
-<DT><B>.B 1</B>
-<DD>stipulates that following text be printed in <B>bold</B>.
-This command means <EM>bold on</EM>.
-
-<DT><B>.B 0</B>
-<DD> turns <EM>bold off</EM> of all text appearing on lines beneath 
-     it. (<EM>Bold off</EM> is used by default, if unspecified by the user.) 
-
-</DL>
-
-<H2>EXAMPLE</H2>
-
-The following command will print the short phrase "This is
-a test of d.text" in the active display frame using the
-color yellow, in bold, and using 4/100'ths (4%) of the
-active frame's vertical space per line:
-<P>
-
-
-<pre>
-    <B>d.text</B> << EOF
-    .C yellow 
-    .S 4 
-    .B 1
-    This is a test of d.text
-    EOF
-</pre>
-
-
-The user presses <EM>control-d</EM> 
-(the "Ctrl" and "d" keys) to end input to <EM>d.text</EM> (equal to EOF).
-
-<H2>NOTES</H2>
-
-Note that the GRASS command 
-<EM><A HREF="d.title.html">d.title</A></EM> creates map TITLEs in a format 
-suitable for input to <EM>d.text</EM>.
-
-<P>
-
-<EM>d.text</EM> needs escape sequences that can be used
-within lines to change colors, boldness, and perhaps size.
-
-<H2>SEE ALSO</H2>
-
-<EM><A HREF="d.font.html">d.font</A></EM><br>
-<EM><A HREF="d.font.freetype.html">d.font.freetype</A></EM><br>
-<EM><A HREF="d.title.html">d.title</A></EM><br>
-<!-- <EM><A HREF="show.fonts.sh.html">show.fonts.sh</A></EM><br> -->
-<EM><A HREF="d.text.freetype.html">d.text.freetype</A></EM><br>
-<EM><A HREF="d.labels.html">d.labels</A></EM><br>
-
-
-<H2>AUTHOR</H2>
-
-James Westervelt, 
-U.S. Army Construction Engineering 
-Research Laboratory
-
-<p><i>Last changed: $Date$</i>

+ 0 - 267
display/d.text/main.c

@@ -1,267 +0,0 @@
-/*
-****************************************************************************
-*
-* MODULE:       d.text
-*
-* AUTHOR(S):    James Westervelt, US Army CERL
-*
-* PURPOSE:      display text in active frame
-*
-* COPYRIGHT:    (C) 2001 by the GRASS Development Team
-*
-*               This program is free software under the GNU General Public
-*   	    	License (>=v2). Read the file COPYING that comes with GRASS
-*   	    	for details.
-*
-*****************************************************************************/
-
-/*
- *   d.text
- *
- *   Draw text in a text window.   Text lines come from stdin.
- *   R_text control:
- *      .C color_name        change color
- *      .S size              change text size
- *      .B 0                 bold (double print) off
- *      .B 1                 bold (double print) on
- *      .F name              change font to name
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <grass/gis.h>
-#include <grass/display.h>
-#include <grass/raster.h>
-#include <grass/colors.h>
-#include <grass/glocale.h>
-
-int 
-main (int argc, char **argv)
-{
-        char *cmd_ptr, *max_buff ;
-        char buff[512] ;
-        char window_name[64] ;
-        float size ;
-        int bold ;
-        int R, G, B, color = 0;
-        int cur_dot_row, cur_dot_column ;
-        int dots_per_line ;
-        int start_line ;
-        int t, b, l, r ;
-        int tsize ;
-	double x,y ;
-	double rotation;
-
-	struct GModule *module;
-	struct Option *opt1, *opt2, *opt3, *opt4, *opt5;
-	struct Flag *flag_b;
-	char *wind_file_name;
-	FILE *wind_file;
-
-        /* Initialize the GIS calls */
-        G_gisinit(argv[0]) ;
-
-	module = G_define_module();
-	module->keywords = _("display");
-    module->description =
-	   _("Draws text in the active display frame on the graphics monitor using the current font.");
-
-        opt1 = G_define_option() ;
-        opt1->key        = "size" ;
-        opt1->type       = TYPE_DOUBLE ;
-        opt1->required   = NO ;
-        opt1->answer      = "5" ;
-        opt1->options    = "0-100";
-        opt1->description=_("Height of letters in percentage of available frame height");
-
-        opt2 = G_define_option() ;
-        opt2->key        = "color" ;
-        opt2->type       = TYPE_STRING ;
-        opt2->answer     = "gray" ;
-        opt2->required   = NO ;
-        opt2->description=
-	   _("Text color, either a standard GRASS color or R:G:B triplet");
-        opt2->gisprompt  = GISPROMPT_COLOR;
-
-        opt3 = G_define_option() ;
-        opt3->key        = "line" ;
-        opt3->required   = NO ;
-        opt3->type       = TYPE_INTEGER ;
-        opt3->options    = "1-1000" ;
-        opt3->description=
-	   _("The screen line number on which text will begin to be drawn");
-
-	opt4 = G_define_option() ;
-	opt4->key	= "at" ;
-	opt4->key_desc  = "x,y";
-	opt4->type	= TYPE_DOUBLE ;
-	opt4->options	= "0-100";
-	opt4->required	= NO ;
-	opt4->description=
-	   _("Screen position at which text will begin to be drawn (percentage, [0,0] is lower left)");
-
-	opt5 = G_define_option();
-	opt5->key         = "rotation";
-	opt5->type        = TYPE_DOUBLE;
-	opt5->required    = NO;
-	opt5->answer      = "0";
-	opt5->description = _("Rotation angle in degrees (counter-clockwise)");
-
-	flag_b = G_define_flag();
-	flag_b->key         = 'b';
-	flag_b->description = _("Use bold text");
-
-
-        /* Check command line */
-        if (G_parser(argc, argv))
-            exit(1);
-
-	if(opt3->answer && opt4->answer)
-	    G_fatal_error(_("Please choose only one placement method"));
-
-
-	if (isatty(0))
-	    fprintf (stdout,"\nPlease enter text instructions.  Enter EOF (ctrl-d) on last line to quit\n");
-
-        sscanf(opt1->answer,"%f",&size);
-
-        if (R_open_driver() != 0)
-	    G_fatal_error (_("No graphics device selected"));
-
-	/* Parse and select text color */
-	if(sscanf(opt2->answer, "%d:%d:%d", &R, &G, &B) == 3) {
-		if (R>=0 && R<256 && G>=0 && G<256 && B>=0 && B<256) {
-			R_RGB_color(R, G, B);
-			color = 1;  /* to make success test below happy */
-		}
-	}
-	else {
-		color = D_translate_color(opt2->answer);
-		R_standard_color(color);
-	}
-
-	if(!color)
-	    G_fatal_error(_("[%s]: No such color"), opt2->answer);
-
-	rotation = atof(opt5->answer);
-
-        if (D_get_cur_wind(window_name))
-	    G_fatal_error(_("No current window")) ;
-
-        if (D_set_cur_wind(window_name))
-	    G_fatal_error(_("Current window not available")) ;
-
-        /* Figure out where to put text */
-        D_get_screen_window(&t, &b, &l, &r) ;
-        R_set_window(t, b, l, r) ;
-
-        dots_per_line = (int)(size/100.0 * (float)(b - t)) ;
-        tsize = (int)(.8 * (float)dots_per_line) ;
-
-	if(!opt4->answer) {
-		if(opt3->answer)
-			sscanf(opt3->answer,"%d",&start_line);
-		else start_line = 1;
-
-        	cur_dot_row = t + (start_line - 1) * dots_per_line;
-		cur_dot_column = l+5;
-	}
-	else {
-		x = atof(opt4->answers[0]);
-		y = atof(opt4->answers[1]);
-		if(x<0 || x>100 || y<0 || y>100)
-		    G_fatal_error(_("value [%.0f,%.0f] out of range [0-100]"), x, y);
-
-		cur_dot_row = t+(int)((b-t)*(100.-y)/100.);
-		cur_dot_column = l+(int)((r-l)*x/100.);
-	}
-	
-	R_text_size(tsize, tsize) ;
-	R_text_rotation((float)rotation);
-
-	if(flag_b->answer)
-		bold = 1;
-	else
-		bold = 0 ;
-
-        wind_file_name = G_tempfile();
-        if ((wind_file=fopen(wind_file_name,"w")) == NULL)
-	    G_fatal_error(_("Unable to open temporary file <%s>"),wind_file_name);
-
-        /* Do the plotting */
-        while (fgets(buff,512,stdin))
-        {
-                fprintf(wind_file, "%s", buff);
-                if (*buff == '.')
-                {
-                        for(cmd_ptr=buff+2; *cmd_ptr==' '; cmd_ptr++) ;
-                        G_squeeze(cmd_ptr); /* added 6/91 DBS @ CWU */
-                        switch (buff[1] & 0x7F)
-                        {
-                        case 'F':   /* font */
-                                R_font(cmd_ptr) ;
-                                break ;
-                        case 'C':   /* color */
-				if(sscanf(cmd_ptr, "%d:%d:%d", &R, &G, &B) == 3) {
-					if (R>=0 && R<256 && G>=0 && G<256 && B>=0 && B<256) {
-						R_RGB_color(R, G, B);
-					}
-				}
-				else
-                                if (color = D_translate_color(cmd_ptr))
-                                        R_standard_color(color) ;
-                                break ;
-                        case 'S':   /* size */
-                                if (sscanf(cmd_ptr, "%f", &size))
-                                {
-                                        dots_per_line = (int)(size/100.0 * (float)(b - t)) ;
-                                        tsize = (int)(.8 * (float)dots_per_line) ;
-                                        R_text_size(tsize, tsize) ;
-                                }
-                                break ;
-                        case 'B':   /* bold */
-                                if (! sscanf(cmd_ptr, "%d", &bold))
-                                        bold = 0 ;
-                                break ;
-			case 'R':   /* rotation */
-                                if (sscanf(cmd_ptr, "%lf", &rotation))
-                                {
-                                        R_text_rotation((float)rotation);
-                                }
-                                break ;
-                        default:
-                                break ;
-                        }
-                }
-                else
-                {
-                        if(!opt4->answer)
-				cur_dot_row += dots_per_line ;
-                        R_move_abs(cur_dot_column, cur_dot_row) ;
-                        R_text(buff) ;
-                        if (bold)
-                        {
-                                R_move_abs(cur_dot_column, 1 + cur_dot_row) ;
-                                R_text(buff) ;
-                                R_move_abs(cur_dot_column + 1, cur_dot_row) ;
-                                R_text(buff) ;
-                        }
-                }
-        }
-
-        R_text_size(5, 5) ;
-
-	fclose(wind_file);
-	
-	max_buff = G_malloc(strlen(wind_file_name)+strlen(G_recreate_command())+4);
-	sprintf(max_buff, "%s < %s", G_recreate_command(), wind_file_name);
-	D_add_to_list(max_buff);
-	G_free(max_buff);
-
-	R_text_rotation(0.0);  /* reset */
-	R_close_driver();
-
-	exit(0);
-}

+ 0 - 39
display/d.text/test.input

@@ -1,39 +0,0 @@
-.S 5
-.F cyrilc
-cyrilc    AaBbCcDdEeFfGgHhIiJj
-.F gothgbt
-gothgbt   AaBbCcDdEeFfGgHhIiJj
-.F gothgrt
-gothgrt   AaBbCcDdEeFfGgHhIiJj
-.F gothitt
-gothitt   AaBbCcDdEeFfGgHhIiJj
-.F greekc
-greekc    AaBbCcDdEeFfGgHhIiJj
-.F greekcs
-greekcs   AaBbCcDdEeFfGgHhIiJj
-.F greekp
-greekp    AaBbCcDdEeFfGgHhIiJj
-.F greeks
-greeks    AaBbCcDdEeFfGgHhIiJj
-.F italicc
-italicc   AaBbCcDdEeFfGgHhIiJj
-.F italiccs
-italiccs  AaBbCcDdEeFfGgHhIiJj
-.F italict
-italict   AaBbCcDdEeFfGgHhIiJj
-.F romanc
-romanc    AaBbCcDdEeFfGgHhIiJj
-.F romancs
-romancs   AaBbCcDdEeFfGgHhIiJj
-.F romand
-romand    AaBbCcDdEeFfGgHhIiJj
-.F romanp
-romanp    AaBbCcDdEeFfGgHhIiJj
-.F romans
-romans    AaBbCcDdEeFfGgHhIiJj
-.F romant
-romant    AaBbCcDdEeFfGgHhIiJj
-.F scriptc
-scriptc   AaBbCcDdEeFfGgHhIiJj
-.F scripts
-scripts   AaBbCcDdEeFfGgHhIiJj