Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
8828e4f3
Commit
8828e4f3
authored
Nov 07, 2009
by
Felix Paul Kühne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macos dirs: simplified, implemented completely and fixed warnings
parent
619625aa
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
94 deletions
+43
-94
src/config/dirs_macos.c
src/config/dirs_macos.c
+43
-94
No files found.
src/config/dirs_macos.c
View file @
8828e4f3
/*****************************************************************************
* dirs_macos.c: Mac
OS
directories configuration
* dirs_macos.c: Mac
OS X
directories configuration
*****************************************************************************
* Copyright (C) 2001-200
7
the VideoLAN team
* Copyright (C) 2001-200
9
the VideoLAN team
* Copyright © 2007-2009 Rémi Denis-Courmont
*
* Authors: Gildas Bazin <gbazin@videolan.org>
* Felix Paul Kühne <fkuehne at videolan dot org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
...
...
@@ -31,129 +32,77 @@
#include <vlc_charset.h>
#include <vlc_configuration.h>
#include <unistd.h>
#include <pwd.h>
#include <assert.h>
#include <limits.h>
const
char
*
config_Get
Data
Dir
(
void
)
const
char
*
config_Get
Conf
Dir
(
void
)
{
static
char
path
[
PATH_MAX
]
=
""
;
#warning FIXME: thread-safety!
if
(
*
path
==
'\0'
)
{
snprintf
(
path
,
sizeof
(
path
),
"%s"
DIR_SEP
"share"
,
psz_vlcpath
);
path
[
sizeof
(
path
)
-
1
]
=
'\0'
;
}
return
path
;
return
config_GetUserDir
(
VLC_CONFIG_DIR
);
}
static
const
char
*
GetDir
(
void
)
const
char
*
config_GetDataDir
(
void
)
{
/* FIXME: a full memory page here - quite a waste... */
static
char
homedir
[
PATH_MAX
]
=
""
;
static
pthread_mutex_t
lock
=
PTHREAD_MUTEX_INITIALIZER
;
pthread_mutex_lock
(
&
lock
);
if
(
!*
homedir
)
{
const
char
*
psz_localhome
=
getenv
(
"HOME"
);
#if defined(HAVE_GETPWUID_R)
char
buf
[
sysconf
(
_SC_GETPW_R_SIZE_MAX
)];
if
(
psz_localhome
==
NULL
)
{
struct
passwd
pw
,
*
res
;
if
(
!
getpwuid_r
(
getuid
(),
&
pw
,
buf
,
sizeof
(
buf
),
&
res
)
&&
res
)
psz_localhome
=
pw
.
pw_dir
;
}
#endif
if
(
psz_localhome
==
NULL
)
psz_localhome
=
getenv
(
"TMP"
);
if
(
psz_localhome
==
NULL
)
psz_localhome
=
"/tmp"
;
const
char
*
uhomedir
=
FromLocale
(
psz_localhome
);
strncpy
(
homedir
,
uhomedir
,
sizeof
(
homedir
)
-
1
);
homedir
[
sizeof
(
homedir
)
-
1
]
=
'\0'
;
LocaleFree
(
uhomedir
);
}
pthread_mutex_unlock
(
&
lock
);
return
homedir
;
}
const
char
*
config_GetConfDir
(
void
)
{
static
char
path
[
PATH_MAX
]
=
""
;
#warning FIXME: system config is not the same as shared app data...
if
(
*
path
==
'\0'
)
{
snprintf
(
path
,
sizeof
(
path
),
"%s"
DIR_SEP
"share"
,
/* FIXME: Duh? */
psz_vlcpath
);
path
[
sizeof
(
path
)
-
1
]
=
'\0'
;
}
return
path
;
return
config_GetUserDir
(
VLC_DATA_DIR
);
}
static
char
*
config_GetHomeDir
(
void
)
{
/* 1/ Try $HOME */
const
char
*
home
=
getenv
(
"HOME"
);
#if defined(HAVE_GETPWUID_R)
/* 2/ Try /etc/passwd */
char
buf
[
sysconf
(
_SC_GETPW_R_SIZE_MAX
)];
if
(
home
==
NULL
)
{
struct
passwd
pw
,
*
res
;
if
(
!
getpwuid_r
(
getuid
(),
&
pw
,
buf
,
sizeof
(
buf
),
&
res
)
&&
res
)
home
=
pw
.
pw_dir
;
}
#endif
/* 3/ Desperately try $TMP */
if
(
home
==
NULL
)
home
=
getenv
(
"TMP"
);
/* 4/ Beyond hope, hard-code /tmp */
if
(
home
==
NULL
)
home
=
"/tmp"
;
return
FromLocaleDup
(
home
);
}
/*
static char *config_GetAppDir (void)
{
char
*
psz_dir
;
const
char
*
psz_parent
=
GetDir
();
if
(
asprintf
(
&
psz_dir
,
"%s/Library/Preferences/VLC"
,
psz_parent
)
==
-
1
)
psz_dir
=
NULL
;
return
psz_dir
;
}
return config_GetUserDir (VLC_CONFIG_DIR);
} */
char
*
config_GetUserDir
(
vlc_userdir_t
type
)
{
char
*
psz_dir
;
const
char
*
psz_parent
=
config_GetHomeDir
();
const
char
*
psz_path
;
switch
(
type
)
{
case
VLC_HOME_DIR
:
return
config_GetHomeDir
();
case
VLC_CONFIG_DIR
:
psz_path
=
"%s/Library/Preferences/VLC"
;
break
;
case
VLC_TEMPLATES_DIR
:
case
VLC_DATA_DIR
:
case
VLC_CACHE_DIR
:
return
config_GetAppDir
();
psz_path
=
"%s/Library/Application Support/VLC"
;
break
;
case
VLC_DESKTOP_DIR
:
psz_path
=
"%s/Desktop"
;
break
;
case
VLC_DOWNLOAD_DIR
:
case
VLC_TEMPLATES_DIR
:
case
VLC_PUBLICSHARE_DIR
:
psz_path
=
"%s/Downloads"
;
break
;
case
VLC_DOCUMENTS_DIR
:
psz_path
=
"%s/Documents"
;
break
;
case
VLC_MUSIC_DIR
:
psz_path
=
"%s/Music"
;
break
;
case
VLC_PICTURES_DIR
:
psz_path
=
"%s/Pictures"
;
break
;
case
VLC_VIDEOS_DIR
:
#warning FIXME not implemented
return
config_GetUserDir
(
VLC_HOME_DIR
);;
psz_path
=
"%s/Movies"
;
break
;
case
VLC_PUBLICSHARE_DIR
:
psz_path
=
"%s/Public"
;
break
;
case
VLC_CACHE_DIR
:
psz_path
=
"%s/Library/Caches/org.videolan.vlc"
;
break
;
case
VLC_HOME_DIR
:
default:
psz_path
=
"%s"
;
}
assert
(
0
);
if
(
asprintf
(
&
psz_dir
,
psz_path
,
psz_parent
)
==
-
1
)
psz_dir
=
NULL
;
return
psz_dir
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment