Previous 199869 Revisions Next

r36802 Monday 30th March, 2015 at 14:51:01 UTC by Vasantha Crabb
Fix creation of paths
[src/emu]machine.c
[src/osd]osdcore.h
[src/osd/sdl]sdlfile.c
[src/osd/windows]winfile.c winprefix.h

trunk/src/emu/machine.c
r245313r245314
12171217      const char *software = image_parent_basename(&device);
12181218      if (software!=NULL && strlen(software)>0)
12191219      {
1220         result.cat('\\').cat(software);
1220         result.cat(PATH_SEPARATOR).cat(software);
12211221      }
12221222      astring tag(device.tag());
12231223      tag.del(0, 1).replacechr(':', '_');
1224      result.cat('\\').cat(tag);
1224      result.cat(PATH_SEPARATOR).cat(tag);
12251225   }
12261226   return result;
12271227}
trunk/src/osd/osdcore.h
r245313r245314
2828
2929/* Make sure we have a path separator (default to /) */
3030#ifndef PATH_SEPARATOR
31#if defined(_WIN32) || defined (__OS2__)
32#define PATH_SEPARATOR          "\\"
33#else
3134#define PATH_SEPARATOR          "/"
3235#endif
36#endif
3337
3438/* flags controlling file access */
3539#define OPEN_FLAG_READ          0x0001      /* open for read */
trunk/src/osd/sdl/sdlfile.c
r245313r245314
471471
472472static int osd_is_path_separator(char c)
473473{
474   return (c == '/') || (c == '\\');
474   return (c == PATHSEPCH) || (c == INVPATHSEPCH);
475475}
476476
477477//============================================================
trunk/src/osd/windows/winfile.c
r245313r245314
4848
4949file_error osd_open(const char *path, UINT32 openflags, osd_file **file, UINT64 *filesize)
5050{
51   DWORD disposition, access, sharemode;
5251   file_error filerr = FILERR_NONE;
53   const TCHAR *src;
54   DWORD upper;
55   TCHAR *t_path;
56   TCHAR *dst;
5752
5853   // convert path to TCHAR
59   t_path = tstring_from_utf8(path);
54   TCHAR *t_path = tstring_from_utf8(path);
6055   if (t_path == NULL)
6156   {
6257      filerr = FILERR_OUT_OF_MEMORY;
r245313r245314
8984   (*file)->type = WINFILE_FILE;
9085
9186   // convert the path into something Windows compatible
92   dst = (*file)->filename;
93#if defined(SDLMAME_WIN32) || defined(SDLMAME_OS2)
94   for (src = t_path; *src != 0; src++)
95      *dst++ = (*src == '/') ? '\\' : *src;
96#else
97   for (src = t_path; *src != 0; src++)
98      *dst++ = *src;//(*src == '/') ? '\\' : *src;
99#endif
100   *dst++ = 0;
87   {
88      TCHAR *dst = (*file)->filename;
89      for (TCHAR const *src = t_path; *src != 0; src++)
90         *dst++ = *src;//(*src == '/') ? '\\' : *src;
91      *dst++ = 0;
92   }
10193
10294   // select the file open modes
95   DWORD disposition, access, sharemode;
10396   if (openflags & OPEN_FLAG_WRITE)
10497   {
10598      disposition = (!is_path_to_physical_drive(path) && (openflags & OPEN_FLAG_CREATE)) ? CREATE_ALWAYS : OPEN_EXISTING;
r245313r245314
149142   }
150143
151144   // get the file size
145   DWORD upper;
152146   *filesize = GetFileSize((*file)->handle, &upper);
153147   *filesize |= (UINT64)upper << 32;
154148
trunk/src/osd/windows/winprefix.h
r245313r245314
4545#define min(x,y) fmin(x,y)
4646#define max(x,y) fmax(x,y)
4747#endif
48
49#define PATH_SEPARATOR      "\\"


Previous 199869 Revisions Next


© 1997-2024 The MAME Team