source: branches/port5/ARBDB/adperl.c

Last change on this file was 6101, checked in by westram, 16 years ago
  • fix warning "format not a string literal and no format arguments"
    • GB_warning → GB_warning/GB_warningf
  • 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        GBK_terminate("Usage: ARB::undo(gb_main, 'undo'/'redo')");
13    }
14    return utype;
15}
16
17int GBP_search_mode(char *search_mode){
18    if (!strcasecmp(search_mode,"this")) return this_level;
19    if (!strcasecmp(search_mode,"down")) return down_level;
20    if (!strcasecmp(search_mode,"down_2")) return down_2_level;
21    if (!strcasecmp(search_mode,"this_next")) return this_level | search_next;
22    if (!strcasecmp(search_mode,"down_next")) return down_level | search_next;
23    GB_warningf("Error: ARB::find: Unknown search_mode '%s'\n"
24                "Possible choices are: 'this' 'down' 'down_2' 'this_next' and 'down_next'", search_mode);
25    return down_level;
26}
27
28static const char *gbp_typeconvert[] = {
29    "NONE",
30    "BIT",
31    "BYTE",
32    "INT",
33    "FLOAT",
34    "-----",
35    "BITS",
36    "----",
37    "BYTES",
38    "INTS",
39    "FLOATS",
40    "-----",
41    "STRING",
42    "------",
43    "------",
44    "CONTAINER",
45    0
46};
47
48
49const char *GBP_type_to_string(GB_TYPES type){
50    if (type >= GB_TYPE_MAX) {
51        GB_warning("Unknown Type");
52        return "????";
53    }
54    return gbp_typeconvert[type];
55}
56
57
58GB_TYPES GBP_gb_types(char *type_name){
59    int i;
60    if (!type_name) return GB_NONE;
61    if (type_name[0] == 0) return GB_NONE;
62    for (i=0;i<GB_TYPE_MAX;i++) {
63        if (!strcasecmp(gbp_typeconvert[i],type_name)) return (GB_TYPES)i;
64    }
65    GB_warningf("ERROR: Unknown type %s (probably used in ARB::create or ARB::search)",type_name);
66    fprintf(stderr,"ERROR: Unknown type %s",type_name);
67    fprintf(stderr,"    Possible Choices:\n");
68    for (i=0;i<GB_TYPE_MAX;i++) {
69        fprintf(stderr,"        %s\n",gbp_typeconvert[i]);
70    }
71    return GB_NONE;
72}
73
74GB_UNDO_TYPE GBP_undo_types(const char *type_name){
75    if (!strcasecmp(type_name,"undo")) return GB_UNDO_UNDO;
76    if (!strcasecmp(type_name,"redo")) return GB_UNDO_REDO;
77    GB_internal_errorf("Cannot convert '%s' to undo type,\n"
78                       " only 'redo' / 'undo' allowed\n", type_name);
79    return GB_UNDO_NONE;
80}
81
82const char *GBP_undo_type_2_string(GB_UNDO_TYPE type){
83    if (type == GB_UNDO_UNDO) return "UNDO";
84    if (type == GB_UNDO_REDO) return "REDO";
85    return "????";
86}
Note: See TracBrowser for help on using the repository browser.