summaryrefslogtreecommitdiff
path: root/lib/non-ascii.h
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2011-04-20 00:48:20 +0200
committerDaniel Stenberg <daniel@haxx.se>2011-04-20 00:50:07 +0200
commitc828646f60b5bffb2bfcf924eba36da767bf08bf (patch)
treea13db5750b3927a2dea67364fbafba4b91fa7e9f /lib/non-ascii.h
parenteb65a49befa040746b222e693bba19ee56814e85 (diff)
downloadcurl-c828646f60b5bffb2bfcf924eba36da767bf08bf.tar.gz
CURL_DOES_CONVERSIONS: cleanup
Massively reduce #ifdefs all over (23 #ifdef lines less so far) Moved conversion-specific code to non-ascii.c
Diffstat (limited to 'lib/non-ascii.h')
-rw-r--r--lib/non-ascii.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/lib/non-ascii.h b/lib/non-ascii.h
new file mode 100644
index 000000000..cccb11f25
--- /dev/null
+++ b/lib/non-ascii.h
@@ -0,0 +1,60 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "setup.h"
+
+#ifdef CURL_DOES_CONVERSIONS
+
+#include "urldata.h"
+
+/*
+ * Curl_convertclone() returns a malloced copy of the source string (if
+ * returning CURLE_OK), with the data converted to network format.
+ *
+ * If no conversion was needed *outbuf may be NULL.
+ */
+CURLcode Curl_convert_clone(struct SessionHandle *data,
+ const char *indata,
+ size_t insize,
+ char **outbuf);
+
+void Curl_convert_init(struct SessionHandle *data);
+void Curl_convert_setup(struct SessionHandle *data);
+void Curl_convert_close(struct SessionHandle *data);
+
+CURLcode Curl_convert_to_network(struct SessionHandle *data,
+ char *buffer, size_t length);
+CURLcode Curl_convert_from_network(struct SessionHandle *data,
+ char *buffer, size_t length);
+CURLcode Curl_convert_from_utf8(struct SessionHandle *data,
+ char *buffer, size_t length);
+CURLcode Curl_convert_form(struct SessionHandle *data, struct FormData *form);
+#else
+#define Curl_convert_clone(a,b,c,d) \
+ ((void)a, (void)b, (void)c, *(d)=NULL, CURLE_OK)
+#define Curl_convert_init(x)
+#define Curl_convert_setup(x)
+#define Curl_convert_close(x)
+#define Curl_convert_to_network(a,b,c) ((void)a, CURLE_OK)
+#define Curl_convert_from_network(a,b,c) ((void)a, CURLE_OK)
+#define Curl_convert_from_utf8(a,b,c) ((void)a, CURLE_OK)
+#define Curl_convert_form(a,b) CURLE_OK
+#endif