summaryrefslogtreecommitdiffstats
path: root/chrome/third_party
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-02 08:45:01 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-02 08:45:01 +0000
commit9e9b6e8ee77229781fa8581b7f46413024404a5f (patch)
tree5b3dfc45e4e65db382138b64e5a63ac3c3b0dad6 /chrome/third_party
parent7aadea0cf98791bbbf163b0d2ef078c7697fea4e (diff)
downloadchromium_src-9e9b6e8ee77229781fa8581b7f46413024404a5f.zip
chromium_src-9e9b6e8ee77229781fa8581b7f46413024404a5f.tar.gz
chromium_src-9e9b6e8ee77229781fa8581b7f46413024404a5f.tar.bz2
Move some XDG code from chrome to base, make DIR_USER_CACHE generic rather than Chromium specific, and clean up a few headers.
BUG=none TEST=none Review URL: http://codereview.chromium.org/449048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33565 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/third_party')
-rw-r--r--chrome/third_party/xdg_user_dirs/README.chromium3
-rw-r--r--chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc232
-rw-r--r--chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.h33
3 files changed, 0 insertions, 268 deletions
diff --git a/chrome/third_party/xdg_user_dirs/README.chromium b/chrome/third_party/xdg_user_dirs/README.chromium
deleted file mode 100644
index 9dc2103..0000000
--- a/chrome/third_party/xdg_user_dirs/README.chromium
+++ /dev/null
@@ -1,3 +0,0 @@
-This directory include xdg-user-dir-lookup.c renamed as xdg_user_dir_lookup.cc
-from xdg-user-dirs 0.10. We made xdg_user_dir_lookup() non-static and added a
-xdg_user_dir_lookup.h.
diff --git a/chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc b/chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc
deleted file mode 100644
index 343f70c..0000000
--- a/chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- This file is not licenced under the GPL like the rest of the code.
- Its is under the MIT license, to encourage reuse by cut-and-paste.
-
- Copyright (c) 2007 Red Hat, inc
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation files
- (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge,
- publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/**
- * xdg_user_dir_lookup_with_fallback:
- * @type: a string specifying the type of directory
- * @fallback: value to use if the directory isn't specified by the user
- * @returns: a newly allocated absolute pathname
- *
- * Looks up a XDG user directory of the specified type.
- * Example of types are "DESKTOP" and "DOWNLOAD".
- *
- * In case the user hasn't specified any directory for the specified
- * type the value returned is @fallback.
- *
- * The return value is newly allocated and must be freed with
- * free(). The return value is never NULL if @fallback != NULL, unless
- * out of memory.
- **/
-static char *
-xdg_user_dir_lookup_with_fallback (const char *type, const char *fallback)
-{
- FILE *file;
- char *home_dir, *config_home, *config_file;
- char buffer[512];
- char *user_dir;
- char *p, *d;
- int len;
- int relative;
-
- home_dir = getenv ("HOME");
-
- if (home_dir == NULL)
- goto error;
-
- config_home = getenv ("XDG_CONFIG_HOME");
- if (config_home == NULL || config_home[0] == 0)
- {
- config_file = (char*) malloc (strlen (home_dir) + strlen ("/.config/user-dirs.dirs") + 1);
- if (config_file == NULL)
- goto error;
-
- strcpy (config_file, home_dir);
- strcat (config_file, "/.config/user-dirs.dirs");
- }
- else
- {
- config_file = (char*) malloc (strlen (config_home) + strlen ("/user-dirs.dirs") + 1);
- if (config_file == NULL)
- goto error;
-
- strcpy (config_file, config_home);
- strcat (config_file, "/user-dirs.dirs");
- }
-
- file = fopen (config_file, "r");
- free (config_file);
- if (file == NULL)
- goto error;
-
- user_dir = NULL;
- while (fgets (buffer, sizeof (buffer), file))
- {
- /* Remove newline at end */
- len = strlen (buffer);
- if (len > 0 && buffer[len-1] == '\n')
- buffer[len-1] = 0;
-
- p = buffer;
- while (*p == ' ' || *p == '\t')
- p++;
-
- if (strncmp (p, "XDG_", 4) != 0)
- continue;
- p += 4;
- if (strncmp (p, type, strlen (type)) != 0)
- continue;
- p += strlen (type);
- if (strncmp (p, "_DIR", 4) != 0)
- continue;
- p += 4;
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- if (*p != '=')
- continue;
- p++;
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- if (*p != '"')
- continue;
- p++;
-
- relative = 0;
- if (strncmp (p, "$HOME/", 6) == 0)
- {
- p += 6;
- relative = 1;
- }
- else if (*p != '/')
- continue;
-
- if (relative)
- {
- user_dir = (char*) malloc (strlen (home_dir) + 1 + strlen (p) + 1);
- if (user_dir == NULL)
- goto error2;
-
- strcpy (user_dir, home_dir);
- strcat (user_dir, "/");
- }
- else
- {
- user_dir = (char*) malloc (strlen (p) + 1);
- if (user_dir == NULL)
- goto error2;
-
- *user_dir = 0;
- }
-
- d = user_dir + strlen (user_dir);
- while (*p && *p != '"')
- {
- if ((*p == '\\') && (*(p+1) != 0))
- p++;
- *d++ = *p++;
- }
- *d = 0;
- }
-error2:
- fclose (file);
-
- if (user_dir)
- return user_dir;
-
- error:
- if (fallback)
- return strdup (fallback);
- return NULL;
-}
-
-/**
- * xdg_user_dir_lookup:
- * @type: a string specifying the type of directory
- * @returns: a newly allocated absolute pathname
- *
- * Looks up a XDG user directory of the specified type.
- * Example of types are "DESKTOP" and "DOWNLOAD".
- *
- * The return value is always != NULL (unless out of memory),
- * and if a directory
- * for the type is not specified by the user the default
- * is the home directory. Except for DESKTOP which defaults
- * to ~/Desktop.
- *
- * The return value is newly allocated and must be freed with
- * free().
- **/
-char *
-xdg_user_dir_lookup (const char *type)
-{
- char *dir, *home_dir, *user_dir;
-
- dir = xdg_user_dir_lookup_with_fallback (type, NULL);
- if (dir != NULL)
- return dir;
-
- home_dir = getenv ("HOME");
-
- if (home_dir == NULL)
- return strdup ("/tmp");
-
- /* Special case desktop for historical compatibility */
- if (strcmp (type, "DESKTOP") == 0)
- {
- user_dir = (char*) malloc (strlen (home_dir) + strlen ("/Desktop") + 1);
- if (user_dir == NULL)
- return NULL;
-
- strcpy (user_dir, home_dir);
- strcat (user_dir, "/Desktop");
- return user_dir;
- }
-
- return strdup (home_dir);
-}
-
-#ifdef STANDALONE_XDG_USER_DIR_LOOKUP
-int
-main (int argc, char *argv[])
-{
- if (argc != 2)
- {
- fprintf (stderr, "Usage %s <dir-type>\n", argv[0]);
- exit (1);
- }
-
- printf ("%s\n", xdg_user_dir_lookup (argv[1]));
- return 0;
-}
-#endif
diff --git a/chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.h b/chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.h
deleted file mode 100644
index 9e81e1b..0000000
--- a/chrome/third_party/xdg_user_dirs/xdg_user_dir_lookup.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- This file is not licenced under the GPL like the rest of the code.
- Its is under the MIT license, to encourage reuse by cut-and-paste.
-
- Copyright (c) 2007 Red Hat, inc
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation files
- (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge,
- publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-*/
-
-#ifndef CHROME_THIRD_PARTY_XDG_USER_DIRS_XDG_USER_DIR_LOOKUP_H_
-#define CHROME_THIRD_PARTY_XDG_USER_DIRS_XDG_USER_DIR_LOOKUP_H_
-
-char* xdg_user_dir_lookup(const char *type);
-
-#endif // CHROME_THIRD_PARTY_XDG_USER_DIRS_XDG_USER_DIR_LOOKUP_H_