source: tags/initial/ARBDB/adperl.c

Last change on this file was 2, checked in by oldcode, 23 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1#include <stdio.h>
2#include <string.h>
3#include <stdlib.h>
4
5#include "arbdb.h"
6
7GB_UNDO_TYPE GBP_undo_type(char *type){
8    GB_UNDO_TYPE utype = GB_UNDO_NONE;
9    if (!strcasecmp("undo",type)) utype = GB_UNDO_UNDO;
10    if (!strcasecmp("redo",type)) utype = GB_UNDO_REDO;
11    if (utype == GB_UNDO_NONE){
12        GB_warning("Usage: ARB::undo(gb_main, 'undo'/'redo')");
13        exit(0);
14    }
15    return utype;
16}
17
18int GBP_search_mode(char *search_mode){
19    if (!strcasecmp(search_mode,"this")) return this_level;
20    if (!strcasecmp(search_mode,"down")) return down_level;     
21    if (!strcasecmp(search_mode,"down_2")) return down_2_level;
22    if (!strcasecmp(search_mode,"this_next")) return this_level | search_next;
23    if (!strcasecmp(search_mode,"down_next")) return down_level | search_next;
24    GB_warning("Error: ARB::find        Cannot recognize your search_mode '%s'"
25               "        Possible choices: 'this' 'down' 'down_2' 'this_next'"
26               "                                'down_next'", search_mode );
27    return down_level;
28}
29
30static const char *gbp_typeconvert[] = {
31    "NONE",
32    "BIT",
33    "BYTE",
34    "INT",
35    "FLOAT",
36    "-----",
37    "BITS",
38    "----",
39    "BYTES",
40    "INTS",
41    "FLOATS",
42    "-----",
43    "STRING",
44    "------",
45    "------",
46    "CONTAINER",
47    0
48};
49
50
51const char *GBP_type_to_string(GB_TYPES type){
52    if (type <0 || type >= GB_TYPE_MAX) {
53        GB_warning("Unknown Type"); 
54        return "????";
55    }
56    return gbp_typeconvert[type];
57}
58
59
60GB_TYPES GBP_gb_types(char *type_name){
61    int i;
62    if (!type_name) return GB_NONE;
63    if (type_name[0] == 0) return GB_NONE;
64    for (i=0;i<GB_TYPE_MAX;i++) {
65        if (!strcasecmp(gbp_typeconvert[i],type_name)) return (GB_TYPES)i;
66    }
67    GB_warning("ERROR: Unknown type %s (probably used in ARB::create or ARB::search",type_name);
68    fprintf(stderr,"ERROR: Unknown type %s",type_name);
69    fprintf(stderr,"    Possible Choices:\n");
70    for (i=0;i<GB_TYPE_MAX;i++) {
71        fprintf(stderr,"                %s\n",gbp_typeconvert[i]);
72    }
73    return GB_NONE;
74}
75
76GB_UNDO_TYPE GBP_undo_types(const char *type_name){
77    if (!strcasecmp(type_name,"undo")) return GB_UNDO_UNDO;
78    if (!strcasecmp(type_name,"redo")) return GB_UNDO_REDO;
79    GB_internal_error("Cannot convert '%s' to undo type,\n"
80                      " only 'redo' / 'undo' allowed\n");
81    return GB_UNDO_NONE;
82}
83
84const char *GBP_undo_type_2_string(GB_UNDO_TYPE type){
85    if (type == GB_UNDO_UNDO) return "UNDO";
86    if (type == GB_UNDO_REDO) return "REDO";
87    return "????";
88}
Note: See TracBrowser for help on using the repository browser.