LibreOffice Module shell (master)
1
shell
source
unix
misc
uri-encode.c
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
5
* This Source Code Form is subject to the terms of the Mozilla Public
6
* License, v. 2.0. If a copy of the MPL was not distributed with this
7
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
11
* Licensed to the Apache Software Foundation (ASF) under one or more
12
* contributor license agreements. See the NOTICE file distributed
13
* with this work for additional information regarding copyright
14
* ownership. The ASF licenses this file to you under the Apache
15
* License, Version 2.0 (the "License"); you may not use this file
16
* except in compliance with the License. You may obtain a copy of
17
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
*/
19
20
#include <ctype.h>
21
#include <errno.h>
22
#include <stdio.h>
23
#include <stdlib.h>
24
#include <string.h>
25
26
int
main
(
void
) {
27
for
(;;) {
28
int
c;
29
errno = 0;
30
c = getchar();
31
if
(c == EOF) {
32
exit(errno == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
33
}
else
if
(isalnum(c) || strchr(
"!$'()*+,-.:=@_~/\n"
, c) !=
NULL
) {
34
/* valid RFC 2396 pchar characters + '/' + newline */
35
if
(putchar(c) == EOF) {
36
exit(EXIT_FAILURE);
37
}
38
}
else
if
(printf(
"%%%02X"
, (
unsigned
char
) (
char
) c) < 0) {
39
exit(EXIT_FAILURE);
40
}
41
}
42
}
43
44
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
NULL
return NULL
main
int main(void)
Definition:
uri-encode.c:26
Generated on Sun Jul 30 2023 04:26:51 for LibreOffice Module shell (master) by
1.9.3