1 /* Copyright (C) 1999, 2000 VideoLAN
2 * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies
4 * Code borrowed from xmms 1.2.4
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public Licensse as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 #include "intf_urldecode.h"
26 /* URL-decode a file: URL path, return NULL if it's not what we expect */
27 void urldecode_path(char *encoded_path)
29 char *tmp = NULL, *cur = NULL, *ext = NULL;
33 if (!encoded_path || *encoded_path == '\0' )
38 tmp = calloc(strlen(encoded_path) + 1, sizeof(char) );
41 while ( ( ext = strchr(cur, '%') ) != NULL)
43 strncat(tmp, cur, (ext - cur) / sizeof(char));
46 if (!sscanf(ext, "%2x", &realchar))
52 tmp[strlen(tmp)] = (char)realchar;
57 strcpy(encoded_path,tmp);