This code with SDL-1.2.8 and CVS:
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
int
main(int argc, char** argv)
{
char alphabet[26] = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
char buffer_file[27] = {0};
char buffer_mem[27] = {0};
int rv_file;
int rv_mem;
FILE* file_ptr;
SDL_RWops* rwop_file;
SDL_RWops* rwop_mem;
file_ptr = fopen("./blah", “w”);
fwrite(alphabet, 1, sizeof(alphabet), file_ptr);
fclose(file_ptr);
rwop_mem = SDL_RWFromMem(alphabet, sizeof(alphabet));
rwop_file = SDL_RWFromFile("./blah", “r”);
rv_mem = SDL_RWread(rwop_mem , buffer_mem, 5, 6);
rv_file = SDL_RWread(rwop_file, buffer_file, 5, 6);
printf(“From File: %d %s\n”
“From Mem: %d %s\n”,
rv_file,
buffer_file,
rv_mem,
buffer_mem);
printf(“Seek end of File: %d\n”
“Seek end of Mem: %d\n”,
SDL_RWseek(rwop_file, 0, SEEK_END),
SDL_RWseek(rwop_mem , 0, SEEK_END));
SDL_RWclose(rwop_file);
SDL_RWclose(rwop_mem);
return 0;
}
Produces this output:
From File: 5 ABCDEFGHIJKLMNOPQRSTUVWXYZ
From Mem: 5 ABCDEFGHIJKLMNOPQRSTUVWXY
Seek end of File: 26
Seek end of Mem: 26
Attached is a patch which fixes this along with a few other
inconsistencies and bugs in SDL_rwops.c… it also enhances the API. It
should however still be compatible. Also attached is a list of all the
changes/enhancements made by this patch.
-Antonio SJ Musumeci
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed…
Name: sdl_rwops.diff
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20050524/ff2f43b3/attachment.asc
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed…
Name: sdl_rwops.changes
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20050524/ff2f43b3/attachment.txt