Changeset e1b883b20ec1cfcf01b25f26458eda3df0a81947
- Timestamp:
- 05/04/07 17:58:08
(2 years ago)
- Author:
- Rémi Denis-Courmont <rem@videolan.org>
- git-committer:
- Rémi Denis-Courmont <rem@videolan.org> 1175788688 +0000
- git-parent:
[f46a9806fe5995dd963920ab4ecdbf2c48e6d401]
- git-author:
- Rémi Denis-Courmont <rem@videolan.org> 1175788688 +0000
- Message:
Handle I/O errors properly
(disk full?)
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rd3fe7f2 |
re1b883b |
|
| 40 | 40 | uint32_t *pi_mandatory, uint32_t *pi_optional ) |
|---|
| 41 | 41 | { |
|---|
| | 42 | (void)p_playlist; |
|---|
| 42 | 43 | *pi_mandatory = VLC_META_ENGINE_TITLE | VLC_META_ENGINE_ARTIST; |
|---|
| 43 | 44 | assert( p_item->p_meta ); |
|---|
| … | … | |
| 251 | 252 | if( p_stream ) |
|---|
| 252 | 253 | { |
|---|
| 253 | | void *p_buffer = malloc( 1<<16 ); |
|---|
| | 254 | uint8_t p_buffer[65536]; |
|---|
| 254 | 255 | long int l_read; |
|---|
| 255 | 256 | FILE *p_file = utf8_fopen( psz_filename+7, "w" ); |
|---|
| 256 | | while( ( l_read = stream_Read( p_stream, p_buffer, 1<<16 ) ) ) |
|---|
| | 257 | int err = 0; |
|---|
| | 258 | while( ( l_read = stream_Read( p_stream, p_buffer, sizeof (p_buffer) ) ) ) |
|---|
| 257 | 259 | { |
|---|
| 258 | | fwrite( p_buffer, l_read, 1, p_file ); |
|---|
| | 260 | if( fwrite( p_buffer, l_read, 1, p_file ) != 1 ) |
|---|
| | 261 | { |
|---|
| | 262 | err = errno; |
|---|
| | 263 | break; |
|---|
| | 264 | } |
|---|
| 259 | 265 | } |
|---|
| 260 | | free( p_buffer ); |
|---|
| 261 | | fclose( p_file ); |
|---|
| | 266 | if( fclose( p_file ) && !err ) |
|---|
| | 267 | err = errno; |
|---|
| 262 | 268 | stream_Delete( p_stream ); |
|---|
| 263 | | msg_Dbg( p_playlist, "album art saved to %s\n", psz_filename ); |
|---|
| 264 | 269 | free( p_item->p_meta->psz_arturl ); |
|---|
| | 270 | |
|---|
| | 271 | if( err ) |
|---|
| | 272 | msg_Err( p_playlist, "%s: %s", psz_filename, strerror( err ) ); |
|---|
| | 273 | else |
|---|
| | 274 | msg_Dbg( p_playlist, "album art saved to %s\n", psz_filename ); |
|---|
| | 275 | |
|---|
| 265 | 276 | p_item->p_meta->psz_arturl = strdup( psz_filename ); |
|---|
| 266 | 277 | i_status = VLC_SUCCESS; |
|---|