1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
/*
**********************************************************************
*
* E_edit_history (hist)
* struct History *hist
*
* Interactively prompts the user for history information.
* Uses screen oriented prompting through the visual_ask library.
* Programs using this must be compiled with the GRASS library $(VASKLIB)
* and include $(CURSES) in the compile line
*
* Returns: 1 ok
* -1 user canceled edit
*
**********************************************************************/
#include "gis.h"
#include "vask.h"
#include "edit.h"
int E_edit_history ( struct History *phist )
{
int len;
int i;
if (! *phist->mapid)
sprintf(phist->mapid, "%s : %s", G_date(), "filename") ;
if (! *phist->title)
sprintf(phist->title, "%s", "filename") ;
if (! *phist->mapset)
sprintf(phist->mapset, "%s", G_mapset()) ;
if (! *phist->creator)
sprintf(phist->creator, "%s", G_whoami() );
if (! *phist->maptype)
sprintf(phist->maptype, "raster") ;
V_clear() ;
V_line ( 0, " ENTER/CORRECT FILE HISTORY INFORMATION" ) ;
V_line ( 2, "Map ID ..." ) ;
V_line ( 4, "Title ...." ) ;
V_line ( 6, "Project .." ) ;
V_line ( 8, "Creator .." ) ;
V_line (10, "Maptype .." ) ;
V_line (12, "Data source" ) ;
V_line (16, "Data Description" ) ;
V_line (19, "For history comments see next page" ) ;
len = RECORD_LEN - 1;
if (len > 65) len = 65;
phist->mapid[len] = 0;
phist->title[len] = 0;
phist->mapset[len] = 0;
phist->creator[len] = 0;
phist->maptype[len] = 0;
len--;
V_const (phist->mapid, 's', 2, 11, len) ;
V_ques (phist->title, 's', 4, 11, len) ;
V_const (phist->mapset, 's', 6, 11, len) ;
V_const (phist->creator, 's', 8, 11, len) ;
V_ques (phist->maptype, 's',10, 11, len) ;
phist->datsrc_1[len] = 0;
phist->datsrc_2[len] = 0;
phist->keywrd[len] = 0;
len--;
V_ques (phist->datsrc_1,'s',13, 0, len) ;
V_ques (phist->datsrc_2,'s',14, 0, len) ;
V_ques (phist->keywrd, 's',17, 0, len) ;
V_intrpt_ok();
if(!V_call())
return -1;
G_strip (phist->title);
G_strip (phist->maptype);
G_strip (phist->datsrc_1);
G_strip (phist->datsrc_2);
G_strip (phist->keywrd);
V_clear() ;
V_line ( 0, " ENTER/CORRECT FILE HISTORY COMMENTS" ) ;
V_ques ( phist->edhist[ 0], 's', 2, 0, len) ;
V_ques ( phist->edhist[ 1], 's', 3, 0, len) ;
V_ques ( phist->edhist[ 2], 's', 4, 0, len) ;
V_ques ( phist->edhist[ 3], 's', 5, 0, len) ;
V_ques ( phist->edhist[ 4], 's', 6, 0, len) ;
V_ques ( phist->edhist[ 5], 's', 7, 0, len) ;
V_ques ( phist->edhist[ 6], 's', 8, 0, len) ;
V_ques ( phist->edhist[ 7], 's', 9, 0, len) ;
V_ques ( phist->edhist[ 8], 's',10, 0, len) ;
V_ques ( phist->edhist[ 9], 's',11, 0, len) ;
V_ques ( phist->edhist[10], 's',12, 0, len) ;
V_ques ( phist->edhist[11], 's',13, 0, len) ;
V_ques ( phist->edhist[12], 's',14, 0, len) ;
V_ques ( phist->edhist[13], 's',15, 0, len) ;
V_ques ( phist->edhist[14], 's',16, 0, len) ;
V_ques ( phist->edhist[15], 's',17, 0, len) ;
V_ques ( phist->edhist[16], 's',18, 0, len) ;
V_ques ( phist->edhist[17], 's',19, 0, len) ;
V_ques ( phist->edhist[18], 's',20, 0, len) ;
V_ques ( phist->edhist[19], 's',21, 0, 65) ;
len++;
for (i=0; i<=19; i++)
phist->edhist[i][len] = 0;
V_intrpt_ok();
if(!V_call())
return -1;
for (i=0; i<=19; i++)
G_strip(phist->edhist[i]);
for(phist->edlinecnt=19; phist->edlinecnt>0; phist->edlinecnt--)
{
if (*phist->edhist[phist->edlinecnt] != 0)
break ;
}
phist->edlinecnt++ ;
V_clear() ;
return(1) ;
}
|