Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Steve Lhomme
VLC
Commits
353cd0a0
Commit
353cd0a0
authored
May 07, 2009
by
Rémi Denis-Courmont
Browse files
Implement utf8_rename
parent
493b6549
Changes
2
Hide whitespace changes
Inline
Side-by-side
include/vlc_charset.h
View file @
353cd0a0
...
...
@@ -49,6 +49,7 @@ VLC_EXPORT( int, utf8_loaddir, ( DIR *dir, char ***namelist, int (*select)( cons
VLC_EXPORT
(
int
,
utf8_scandir
,
(
const
char
*
dirname
,
char
***
namelist
,
int
(
*
select
)(
const
char
*
),
int
(
*
compar
)(
const
char
**
,
const
char
**
)
)
);
VLC_EXPORT
(
int
,
utf8_mkdir
,
(
const
char
*
filename
,
mode_t
mode
)
);
VLC_EXPORT
(
int
,
utf8_unlink
,
(
const
char
*
filename
)
);
int
utf8_rename
(
const
char
*
,
const
char
*
);
#if defined( WIN32 ) && !defined( UNDER_CE )
# define stat _stati64
...
...
src/text/filesystem.c
View file @
353cd0a0
...
...
@@ -450,6 +450,41 @@ int utf8_unlink( const char *filename )
return
ret
;
}
/**
* Moves a file atomically. This only works within a single file system.
*
* @param oldpath path to the file before the move
* @param newpath intended path to the file after the move
* @return A 0 return value indicates success. A -1 return value indicates an
* error, and an error code is stored in errno
*/
int
utf8_rename
(
const
char
*
oldpath
,
const
char
*
newpath
)
{
#if defined (WIN32)
CONVERT_PATH
(
oldpath
,
wold
,
-
1
);
CONVERT_PATH
(
newpath
,
wnew
,
-
1
);
return
_wrename
(
wold
,
wnew
);
#endif
const
char
*
lo
=
ToLocale
(
oldpath
);
if
(
lo
==
NULL
)
goto
error
;
const
char
*
ln
=
ToLocale
(
newpath
);
if
(
ln
==
NULL
)
{
LocaleFree
(
lo
);
error:
errno
=
ENOENT
;
return
-
1
;
}
int
ret
=
rename
(
lo
,
ln
);
LocaleFree
(
lo
);
LocaleFree
(
ln
);
return
ret
;
}
int
utf8_mkstemp
(
char
*
template
)
{
static
const
char
digits
[]
=
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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