aboutsummaryrefslogtreecommitdiff
path: root/src/fs/fs_getopt.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-08-15 21:46:35 +0000
committerChristian Grothoff <christian@grothoff.org>2011-08-15 21:46:35 +0000
commit502af2167f7c218366666ca4944bd7cc54b5b19a (patch)
treea91fec5cc9769d260640bd91c6633cb9cf395524 /src/fs/fs_getopt.c
parent03af5a603b7cc53432249d5854cd412aa90dde0d (diff)
downloadgnunet-502af2167f7c218366666ca4944bd7cc54b5b19a.tar.gz
gnunet-502af2167f7c218366666ca4944bd7cc54b5b19a.zip
indentation
Diffstat (limited to 'src/fs/fs_getopt.c')
-rw-r--r--src/fs/fs_getopt.c204
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 */
44int 44int
45GNUNET_FS_getopt_set_keywords (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, 45GNUNET_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 */
126int 123int
127GNUNET_FS_getopt_set_metadata (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, 124GNUNET_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