summaryrefslogtreecommitdiff
path: root/shell/source/unix/misc/uri-encode.c
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2006-08-01 10:27:06 +0000
committerIvo Hinkelmann <ihi@openoffice.org>2006-08-01 10:27:06 +0000
commita14fbd07e57a6b2e62c325c6a17389541e725d93 (patch)
tree6019f4d4b6790eac30f9c627f9da600331197925 /shell/source/unix/misc/uri-encode.c
parent856325dd6d69b3f8a5888d6faf2691cfa1be97cc (diff)
INTEGRATION: CWS sb60 (1.1.2); FILE ADDED
2006/07/24 15:04:33 sb 1.1.2.1: #b6448495# Replaced uri-encode awk script with C program, as awk (at least on Solaris) appears to pre-process non-ASCII bytes in its input.
Diffstat (limited to 'shell/source/unix/misc/uri-encode.c')
-rw-r--r--shell/source/unix/misc/uri-encode.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/shell/source/unix/misc/uri-encode.c b/shell/source/unix/misc/uri-encode.c
new file mode 100644
index 000000000000..719feb5415b3
--- /dev/null
+++ b/shell/source/unix/misc/uri-encode.c
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: uri-encode.c,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: ihi $ $Date: 2006-08-01 11:27:06 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2006 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int main() {
+ for (;;) {
+ int c;
+ errno = 0;
+ c = getchar();
+ if (c == EOF) {
+ exit(errno == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+ } else if (isalnum(c) || strchr("!$'()*+,-.:=@_~/\n", c) != NULL) {
+ /* valid RFC 2396 pchar characters + '/' + newline */
+ if (putchar(c) == EOF) {
+ exit(EXIT_FAILURE);
+ }
+ } else if (printf("%%%02X", (unsigned char) (char) c) < 0) {
+ exit(EXIT_FAILURE);
+ }
+ }
+}