aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>1999-04-18 08:18:52 +0000
committerWerner Koch <[email protected]>1999-04-18 08:18:52 +0000
commit1feae2011ccd122ffb9a8f28013a13e57fc0b4fd (patch)
tree981a2000ffe3b4349bf3f2b8dbe845a60c15c95a /util
parentSee ChangeLog: Fri Apr 9 12:26:25 CEST 1999 Werner Koch (diff)
downloadgnupg-1feae2011ccd122ffb9a8f28013a13e57fc0b4fd.tar.gz
gnupg-1feae2011ccd122ffb9a8f28013a13e57fc0b4fd.zip
See ChangeLog: Sun Apr 18 10:11:28 CEST 1999 Werner Koch
Diffstat (limited to 'util')
-rw-r--r--util/ChangeLog6
-rw-r--r--util/argparse.c9
-rw-r--r--util/http.c10
-rw-r--r--util/memory.c30
-rw-r--r--util/secmem.c2
-rw-r--r--util/strgutil.c19
-rw-r--r--util/ttyio.c24
7 files changed, 75 insertions, 25 deletions
diff --git a/util/ChangeLog b/util/ChangeLog
index 9720f3ced..6dac03492 100644
--- a/util/ChangeLog
+++ b/util/ChangeLog
@@ -1,3 +1,9 @@
+Sun Apr 18 10:11:28 CEST 1999 Werner Koch <[email protected]>
+
+ * argparse.c (store_alias): Disabled becuase it is not used.
+
+ * ttyio.c (tty_batchmode): New
+
Sat Mar 20 11:44:21 CET 1999 Werner Koch <[email protected]>
* http.c: Swapped to includes.
diff --git a/util/argparse.c b/util/argparse.c
index 83efc0f64..707d75ecf 100644
--- a/util/argparse.c
+++ b/util/argparse.c
@@ -197,15 +197,20 @@ initialize( ARGPARSE_ARGS *arg, const char *filename, unsigned *lineno )
}
-
static void
store_alias( ARGPARSE_ARGS *arg, char *name, char *value )
{
+ /* TODO: replace this dummy function with a rea one
+ * and fix the probelms IRIX has with (ALIAS_DEV)arg..
+ * used as lvalue
+ */
+#if 0
ALIAS_DEF a = m_alloc( sizeof *a );
a->name = name;
a->value = value;
a->next = (ALIAS_DEF)arg->internal.aliases;
(ALIAS_DEF)arg->internal.aliases = a;
+#endif
}
/****************
@@ -418,7 +423,7 @@ find_long_option( ARGPARSE_ARGS *arg,
/* see whether it is an alias */
for( a = args->internal.aliases; a; a = a->next ) {
if( !strcmp( a->name, keyword) ) {
- /* fixme: must parse the alias here */
+ /* todo: must parse the alias here */
args->internal.cur_alias = a;
return -3; /* alias available */
}
diff --git a/util/http.c b/util/http.c
index bdbfa41d3..1073e0433 100644
--- a/util/http.c
+++ b/util/http.c
@@ -270,7 +270,7 @@ do_parse_uri( PARSED_URI uri, int only_local_part )
if( !p || !*p ) /* we don't have a path */
return 0; /* and this is okay */
- /* fixme: here we have to check params */
+ /* todo: here we have to check params */
/* do we have a query part */
if( (p2 = strchr( p, '?' )) )
@@ -463,7 +463,7 @@ build_rel_path( PARSED_URI uri )
/* count the needed space */
n = insert_escapes( NULL, uri->path, "%;?&" );
- /* fixme: add params */
+ /* todo: build params */
for( r=uri->query; r; r = r->next ) {
n++; /* '?'/'&' */
n += insert_escapes( NULL, r->name, "%;?&=" );
@@ -476,13 +476,13 @@ build_rel_path( PARSED_URI uri )
p = rel_path = m_alloc( n );
n = insert_escapes( p, uri->path, "%;?&" );
p += n;
- /* fixme: add params */
+ /* todo: add params */
for( r=uri->query; r; r = r->next ) {
*p++ = r == uri->query? '?':'&';
n = insert_escapes( p, r->name, "%;?&=" );
p += n;
*p++ = '=';
- /* fixme: use valuelen */
+ /* todo: use valuelen */
n = insert_escapes( p, r->value, "%;?&=" );
p += n;
}
@@ -526,7 +526,7 @@ parse_response( HTTP_HD hd )
if( !p2 )
return 0; /* assume http 0.9 */
p = p2;
- /* fixme: add HTTP version number check here */
+ /* todo: add HTTP version number check here */
if( (p2 = strpbrk( p, " \t" ) ) )
*p2++ = 0;
if( !isdigit(p[0]) || !isdigit(p[1]) || !isdigit(p[2]) || p[3] ) {
diff --git a/util/memory.c b/util/memory.c
index 9f9f6c81f..4370c72ec 100644
--- a/util/memory.c
+++ b/util/memory.c
@@ -123,19 +123,20 @@ static void check_allmem( const char *info );
static void
add_entry( byte *p, unsigned n, int mode, const char *info, const char *by )
{
- unsigned idx;
+ unsigned index;
struct memtbl_entry *e;
struct info_entry *ie;
if( memtbl_len < memtbl_size )
- idx = memtbl_len++;
+ index = memtbl_len++;
else {
+ struct memtbl_entry *e;
/* look for a used entry in the table. We take the first one,
* so that freed entries remain as long as possible in the table
* (free appends a new one)
*/
if( (e = memtbl_unused) ) {
- idx = e - memtbl;
+ index = e - memtbl;
memtbl_unused = e->next;
e->next = NULL;
}
@@ -144,33 +145,32 @@ add_entry( byte *p, unsigned n, int mode, const char *info, const char *by )
memtbl_size = 100;
if( !(memtbl = calloc( memtbl_size, sizeof *memtbl )) )
membug("memory debug table malloc failed\n");
- idx = 0;
+ index = 0;
memtbl_len = 1;
atexit( dump_table_at_exit );
}
else { /* realloc */
- unsigned nn = memtbl_size / 4; /* enlarge by 25% */
- if(!(memtbl = realloc(memtbl, (memtbl_size+nn)*sizeof *memtbl)))
+ unsigned n = memtbl_size / 4; /* enlarge by 25% */
+ if(!(memtbl = realloc(memtbl, (memtbl_size+n)*sizeof *memtbl)))
membug("memory debug table realloc failed\n");
memset(memtbl+memtbl_size, 0, n*sizeof *memtbl );
- memtbl_size += nn;
- idx = memtbl_len++;
+ memtbl_size += n;
+ index = memtbl_len++;
}
}
}
- e = memtbl+idx;
+ e = memtbl+index;
if( e->inuse )
- membug("Ooops: entry %u is flagged as in use\n", idx);
+ membug("Ooops: entry %u is flagged as in use\n", index);
e->user_p = p + 4;
e->user_n = n;
e->count++;
if( e->next )
membug("Ooops: entry is in free entry list\n");
/* do we already have this info string */
- for( ie = info_strings[info_hash(info)]; ie; ie = ie->next ) {
+ for( ie = info_strings[info_hash(info)]; ie; ie = ie->next )
if( ie->info == info )
break;
- }
if( !ie ) { /* no: make a new entry */
if( !(ie = malloc( sizeof *ie )) )
membug("can't allocate info entry\n");
@@ -184,9 +184,9 @@ add_entry( byte *p, unsigned n, int mode, const char *info, const char *by )
e->inuse = 1;
/* put the index at the start of the memory */
- p[0] = idx;
- p[1] = idx >> 8 ;
- p[2] = idx >> 16 ;
+ p[0] = index;
+ p[1] = index >> 8 ;
+ p[2] = index >> 16 ;
p[3] = mode? MAGIC_SEC_BYTE : MAGIC_NOR_BYTE ;
if( DBG_MEMORY )
log_debug( "%s allocates %u bytes using %s\n", info, e->user_n, by );
diff --git a/util/secmem.c b/util/secmem.c
index 3db66c062..f48b0edb0 100644
--- a/util/secmem.c
+++ b/util/secmem.c
@@ -324,6 +324,8 @@ secmem_free( void *a )
mb = (MEMBLOCK*)((char*)a - ((size_t) &((MEMBLOCK*)0)->u.aligned.c));
size = mb->size;
+ /* This does not make much sense: probably this memory is held in the
+ * cache. We do it anyway: */
memset(mb, 0xff, size );
memset(mb, 0xaa, size );
memset(mb, 0x55, size );
diff --git a/util/strgutil.c b/util/strgutil.c
index 79b93318f..5cef77bf6 100644
--- a/util/strgutil.c
+++ b/util/strgutil.c
@@ -47,6 +47,25 @@ static ushort koi82unicode[128] = {
0x042c,0x042b,0x0417,0x0428,0x042d,0x0429,0x0427,0x042a
};
+static ushort latin2_unicode[128] = {
+ 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
+ 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
+ 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
+ 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
+ 0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
+ 0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
+ 0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
+ 0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
+ 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
+ 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
+ 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
+ 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
+ 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
+ 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
+ 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
+ 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
+};
+
void
diff --git a/util/ttyio.c b/util/ttyio.c
index b5d0a1302..0f0f144ef 100644
--- a/util/ttyio.c
+++ b/util/ttyio.c
@@ -57,6 +57,7 @@ static FILE *ttyfp = NULL;
static int initialized;
static int last_prompt_len;
+static int batchmode;
#ifdef HAVE_TCGETATTR
static struct termios termsave;
@@ -108,9 +109,11 @@ init_ttyfp(void)
#elif defined(__EMX__)
ttyfp = stdout; /* Fixme: replace by the real functions: see wklib */
#else
- ttyfp = fopen("/dev/tty", "r+");
- if( !ttyfp )
- log_fatal("cannot open /dev/tty: %s\n", strerror(errno) );
+ ttyfp = batchmode? stderr : fopen("/dev/tty", "r+");
+ if( !ttyfp ) {
+ log_error("cannot open /dev/tty: %s\n", strerror(errno) );
+ exit(2);
+ }
#endif
#ifdef HAVE_TCGETATTR
atexit( cleanup );
@@ -118,6 +121,14 @@ init_ttyfp(void)
initialized = 1;
}
+int
+tty_batchmode( int onoff )
+{
+ int old = batchmode;
+ if( onoff != -1 )
+ batchmode = onoff;
+ return old;
+}
void
tty_printf( const char *fmt, ... )
@@ -220,6 +231,11 @@ do_get( const char *prompt, int hidden )
byte cbuf[1];
int c, n, i;
+ if( batchmode ) {
+ log_error("Sorry, we are in batchmode - can't get input\n");
+ exit(2);
+ }
+
if( !initialized )
init_ttyfp();
@@ -336,6 +352,8 @@ tty_kill_prompt()
if( !initialized )
init_ttyfp();
+ if( batchmode )
+ last_prompt_len = 0;
if( !last_prompt_len )
return;
#if __MINGW32__