diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2009-08-21 10:17:11 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2009-08-21 10:17:11 +0000 |
commit | 4c85aa8182e032cb2724795c020f628b38b68777 (patch) | |
tree | 508bb6f46ac890eee7985d073f8ad5697f2ce39d /navit/file.c | |
parent | 480e30970f5260fe3e8aa1fda3e4adaad65f63ad (diff) | |
download | navit-4c85aa8182e032cb2724795c020f628b38b68777.tar.gz |
Add:xslt:More scripts
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@2513 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/file.c')
-rw-r--r-- | navit/file.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/navit/file.c b/navit/file.c index 890dcbf19..480277753 100644 --- a/navit/file.c +++ b/navit/file.c @@ -76,6 +76,19 @@ file_create(char *name) return file; } +struct file * +file_create_url(char *url) +{ + struct file *file= g_new0(struct file,1); + char *cmd=g_strdup_printf("curl %s",url); + file->name = g_strdup(url); + file->stdfile=popen(cmd,"r"); + file->fd=fileno(file->stdfile); + file->special=1; + g_free(cmd); + return file; +} + int file_is_dir(char *name) { struct stat buf; @@ -86,7 +99,7 @@ int file_is_dir(char *name) } -int +long long file_size(struct file *file) { return file->size; @@ -172,6 +185,19 @@ file_data_read_all(struct file *file) } int +file_data_write(struct file *file, long long offset, int size, unsigned char *data) +{ + if (file_cache) { + struct file_cache_id id={offset,size,file->name_id,0}; + cache_flush(file_cache,&id); + } + lseek(file->fd, offset, SEEK_SET); + if (write(file->fd, data, size) != size) + return 0; + return 1; +} + +int file_get_contents(char *name, unsigned char **buffer, int *size) { struct file *file; |