diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-08-15 21:46:35 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-08-15 21:46:35 +0000 |
commit | 502af2167f7c218366666ca4944bd7cc54b5b19a (patch) | |
tree | a91fec5cc9769d260640bd91c6633cb9cf395524 /src/fs/fs_getopt.c | |
parent | 03af5a603b7cc53432249d5854cd412aa90dde0d (diff) | |
download | gnunet-502af2167f7c218366666ca4944bd7cc54b5b19a.tar.gz gnunet-502af2167f7c218366666ca4944bd7cc54b5b19a.zip |
indentation
Diffstat (limited to 'src/fs/fs_getopt.c')
-rw-r--r-- | src/fs/fs_getopt.c | 204 |
1 files changed, 99 insertions, 105 deletions
diff --git a/src/fs/fs_getopt.c b/src/fs/fs_getopt.c index 0db7237f7..6c54fd69b 100644 --- a/src/fs/fs_getopt.c +++ b/src/fs/fs_getopt.c | |||
@@ -42,10 +42,9 @@ | |||
42 | * @return GNUNET_OK on success | 42 | * @return GNUNET_OK on success |
43 | */ | 43 | */ |
44 | int | 44 | int |
45 | GNUNET_FS_getopt_set_keywords (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, | 45 | GNUNET_FS_getopt_set_keywords (struct GNUNET_GETOPT_CommandLineProcessorContext |
46 | void *scls, | 46 | *ctx, void *scls, const char *option, |
47 | const char *option, | 47 | const char *value) |
48 | const char *value) | ||
49 | { | 48 | { |
50 | struct GNUNET_FS_Uri **uri = scls; | 49 | struct GNUNET_FS_Uri **uri = scls; |
51 | struct GNUNET_FS_Uri *u = *uri; | 50 | struct GNUNET_FS_Uri *u = *uri; |
@@ -53,60 +52,58 @@ GNUNET_FS_getopt_set_keywords (struct GNUNET_GETOPT_CommandLineProcessorContext* | |||
53 | size_t slen; | 52 | size_t slen; |
54 | 53 | ||
55 | if (u == NULL) | 54 | if (u == NULL) |
56 | { | 55 | { |
57 | u = GNUNET_malloc (sizeof (struct GNUNET_FS_Uri)); | 56 | u = GNUNET_malloc (sizeof (struct GNUNET_FS_Uri)); |
58 | *uri = u; | 57 | *uri = u; |
59 | u->type = ksk; | 58 | u->type = ksk; |
60 | u->data.ksk.keywordCount = 0; | 59 | u->data.ksk.keywordCount = 0; |
61 | u->data.ksk.keywords = NULL; | 60 | u->data.ksk.keywords = NULL; |
62 | } | 61 | } |
63 | else | 62 | else |
64 | { | 63 | { |
65 | GNUNET_assert (u->type == ksk); | 64 | GNUNET_assert (u->type == ksk); |
66 | } | 65 | } |
67 | slen = strlen (value); | 66 | slen = strlen (value); |
68 | if (slen == 0) | 67 | if (slen == 0) |
69 | return GNUNET_SYSERR; /* cannot be empty */ | 68 | return GNUNET_SYSERR; /* cannot be empty */ |
70 | if (value[0] == '+') | 69 | if (value[0] == '+') |
70 | { | ||
71 | /* simply preserve the "mandatory" flag */ | ||
72 | if (slen < 2) | ||
73 | return GNUNET_SYSERR; /* empty keywords not allowed */ | ||
74 | if ((value[1] == '"') && (slen > 3) && (value[slen - 1] == '"')) | ||
71 | { | 75 | { |
72 | /* simply preserve the "mandatory" flag */ | 76 | /* remove the quotes, keep the '+' */ |
73 | if (slen < 2) | 77 | val = GNUNET_malloc (slen - 1); |
74 | return GNUNET_SYSERR; /* empty keywords not allowed */ | 78 | val[0] = '+'; |
75 | if ((value[1] == '"') && (slen > 3) && (value[slen - 1] == '"')) | 79 | memcpy (&val[1], &value[2], slen - 3); |
76 | { | 80 | val[slen - 2] = '\0'; |
77 | /* remove the quotes, keep the '+' */ | ||
78 | val = GNUNET_malloc (slen - 1); | ||
79 | val[0] = '+'; | ||
80 | memcpy (&val[1], &value[2], slen - 3); | ||
81 | val[slen - 2] = '\0'; | ||
82 | } | ||
83 | else | ||
84 | { | ||
85 | /* no quotes, just keep the '+' */ | ||
86 | val = GNUNET_strdup (value); | ||
87 | } | ||
88 | } | 81 | } |
82 | else | ||
83 | { | ||
84 | /* no quotes, just keep the '+' */ | ||
85 | val = GNUNET_strdup (value); | ||
86 | } | ||
87 | } | ||
89 | else | 88 | else |
89 | { | ||
90 | if ((value[0] == '"') && (slen > 2) && (value[slen - 1] == '"')) | ||
91 | { | ||
92 | /* remove the quotes, add a space */ | ||
93 | val = GNUNET_malloc (slen); | ||
94 | val[0] = ' '; | ||
95 | memcpy (&val[1], &value[1], slen - 2); | ||
96 | val[slen - 1] = '\0'; | ||
97 | } | ||
98 | else | ||
90 | { | 99 | { |
91 | if ((value[0] == '"') && (slen > 2) && (value[slen - 1] == '"')) | 100 | /* add a space to indicate "not mandatory" */ |
92 | { | 101 | val = GNUNET_malloc (slen + 2); |
93 | /* remove the quotes, add a space */ | 102 | strcpy (val, " "); |
94 | val = GNUNET_malloc (slen); | 103 | strcat (val, value); |
95 | val[0] = ' '; | ||
96 | memcpy (&val[1], &value[1], slen - 2); | ||
97 | val[slen - 1] = '\0'; | ||
98 | } | ||
99 | else | ||
100 | { | ||
101 | /* add a space to indicate "not mandatory" */ | ||
102 | val = GNUNET_malloc (slen + 2); | ||
103 | strcpy (val, " "); | ||
104 | strcat (val, value); | ||
105 | } | ||
106 | } | 104 | } |
107 | GNUNET_array_append (u->data.ksk.keywords, | 105 | } |
108 | u->data.ksk.keywordCount, | 106 | GNUNET_array_append (u->data.ksk.keywords, u->data.ksk.keywordCount, val); |
109 | val); | ||
110 | return GNUNET_OK; | 107 | return GNUNET_OK; |
111 | } | 108 | } |
112 | 109 | ||
@@ -124,11 +121,9 @@ GNUNET_FS_getopt_set_keywords (struct GNUNET_GETOPT_CommandLineProcessorContext* | |||
124 | * @return GNUNET_OK on success | 121 | * @return GNUNET_OK on success |
125 | */ | 122 | */ |
126 | int | 123 | int |
127 | GNUNET_FS_getopt_set_metadata (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, | 124 | GNUNET_FS_getopt_set_metadata (struct GNUNET_GETOPT_CommandLineProcessorContext |
128 | void *scls, | 125 | *ctx, void *scls, const char *option, |
129 | const char *option, | 126 | const char *value) |
130 | const char *value) | ||
131 | |||
132 | { | 127 | { |
133 | struct GNUNET_CONTAINER_MetaData **mm = scls; | 128 | struct GNUNET_CONTAINER_MetaData **mm = scls; |
134 | enum EXTRACTOR_MetaType type; | 129 | enum EXTRACTOR_MetaType type; |
@@ -139,69 +134,68 @@ GNUNET_FS_getopt_set_metadata (struct GNUNET_GETOPT_CommandLineProcessorContext* | |||
139 | 134 | ||
140 | meta = *mm; | 135 | meta = *mm; |
141 | if (meta == NULL) | 136 | if (meta == NULL) |
142 | { | 137 | { |
143 | meta = GNUNET_CONTAINER_meta_data_create (); | 138 | meta = GNUNET_CONTAINER_meta_data_create (); |
144 | *mm = meta; | 139 | *mm = meta; |
145 | } | 140 | } |
146 | 141 | ||
147 | #if ENABLE_NLS | 142 | #if ENABLE_NLS |
148 | tmp = GNUNET_STRINGS_to_utf8 (value, strlen (value), | 143 | tmp = GNUNET_STRINGS_to_utf8 (value, strlen (value), nl_langinfo (CODESET)); |
149 | nl_langinfo (CODESET)); | ||
150 | #else | 144 | #else |
151 | tmp = GNUNET_STRINGS_to_utf8 (value, strlen (value), | 145 | tmp = GNUNET_STRINGS_to_utf8 (value, strlen (value), "utf-8"); |
152 | "utf-8"); | ||
153 | #endif | 146 | #endif |
154 | type = EXTRACTOR_metatype_get_max (); | 147 | type = EXTRACTOR_metatype_get_max (); |
155 | while (type > 0) | 148 | while (type > 0) |
149 | { | ||
150 | type--; | ||
151 | typename = EXTRACTOR_metatype_to_string (type); | ||
152 | typename_i18n = dgettext (LIBEXTRACTOR_GETTEXT_DOMAIN, typename); | ||
153 | if ((strlen (tmp) >= strlen (typename) + 1) && | ||
154 | (tmp[strlen (typename)] == ':') && | ||
155 | (0 == strncmp (typename, tmp, strlen (typename)))) | ||
156 | { | 156 | { |
157 | type--; | 157 | GNUNET_CONTAINER_meta_data_insert (meta, |
158 | typename = EXTRACTOR_metatype_to_string (type); | 158 | "<gnunet>", |
159 | typename_i18n = dgettext (LIBEXTRACTOR_GETTEXT_DOMAIN, typename); | 159 | type, |
160 | if ((strlen (tmp) >= strlen (typename) + 1) && | 160 | EXTRACTOR_METAFORMAT_UTF8, |
161 | (tmp[strlen (typename)] == ':') && | 161 | "text/plain", |
162 | (0 == strncmp (typename, tmp, strlen (typename)))) | 162 | &tmp[strlen (typename) + 1], |
163 | { | 163 | strlen (&tmp[strlen (typename) + 1]) + |
164 | GNUNET_CONTAINER_meta_data_insert (meta, | 164 | 1); |
165 | "<gnunet>", | 165 | GNUNET_free (tmp); |
166 | type, | 166 | tmp = NULL; |
167 | EXTRACTOR_METAFORMAT_UTF8, | 167 | break; |
168 | "text/plain", | ||
169 | &tmp[strlen (typename) + 1], | ||
170 | strlen (&tmp[strlen (typename) + 1])+1); | ||
171 | GNUNET_free (tmp); | ||
172 | tmp = NULL; | ||
173 | break; | ||
174 | } | ||
175 | if ((strlen (tmp) >= strlen (typename_i18n) + 1) && | ||
176 | (tmp[strlen (typename_i18n)] == ':') && | ||
177 | (0 == strncmp (typename_i18n, tmp, strlen (typename_i18n)))) | ||
178 | { | ||
179 | GNUNET_CONTAINER_meta_data_insert (meta, | ||
180 | "<gnunet>", | ||
181 | type, | ||
182 | EXTRACTOR_METAFORMAT_UTF8, | ||
183 | "text/plain", | ||
184 | &tmp[strlen (typename_i18n) + 1], | ||
185 | strlen (&tmp[strlen (typename_i18n) + 1]) + 1); | ||
186 | GNUNET_free (tmp); | ||
187 | tmp = NULL; | ||
188 | break; | ||
189 | } | ||
190 | } | 168 | } |
191 | if (tmp != NULL) | 169 | if ((strlen (tmp) >= strlen (typename_i18n) + 1) && |
170 | (tmp[strlen (typename_i18n)] == ':') && | ||
171 | (0 == strncmp (typename_i18n, tmp, strlen (typename_i18n)))) | ||
192 | { | 172 | { |
193 | GNUNET_CONTAINER_meta_data_insert (meta, | 173 | GNUNET_CONTAINER_meta_data_insert (meta, |
194 | "<gnunet>", | 174 | "<gnunet>", |
195 | EXTRACTOR_METATYPE_UNKNOWN, | 175 | type, |
196 | EXTRACTOR_METAFORMAT_UTF8, | 176 | EXTRACTOR_METAFORMAT_UTF8, |
197 | "text/plain", | 177 | "text/plain", |
198 | tmp, | 178 | &tmp[strlen (typename_i18n) + 1], |
199 | strlen(tmp) + 1); | 179 | strlen (&tmp |
180 | [strlen (typename_i18n) + 1]) + | ||
181 | 1); | ||
200 | GNUNET_free (tmp); | 182 | GNUNET_free (tmp); |
201 | printf (_ | 183 | tmp = NULL; |
202 | ("Unknown metadata type in metadata option `%s'. Using metadata type `unknown' instead.\n"), | 184 | break; |
203 | value); | ||
204 | } | 185 | } |
186 | } | ||
187 | if (tmp != NULL) | ||
188 | { | ||
189 | GNUNET_CONTAINER_meta_data_insert (meta, | ||
190 | "<gnunet>", | ||
191 | EXTRACTOR_METATYPE_UNKNOWN, | ||
192 | EXTRACTOR_METAFORMAT_UTF8, | ||
193 | "text/plain", tmp, strlen (tmp) + 1); | ||
194 | GNUNET_free (tmp); | ||
195 | printf (_ | ||
196 | ("Unknown metadata type in metadata option `%s'. Using metadata type `unknown' instead.\n"), | ||
197 | value); | ||
198 | } | ||
205 | return GNUNET_OK; | 199 | return GNUNET_OK; |
206 | } | 200 | } |
207 | 201 | ||