ref: badd91978ce04f611601e04fc17a3b14269e6362
parent: 25ebde2b7dce3735df7a279884105bf050633ec1
author: KO Myung-Hun <[email protected]>
date: Wed Sep 2 18:01:07 EDT 2009
Use 64-bit IO and binary mode on OS/2.
--- a/src/device.c
+++ b/src/device.c
@@ -69,6 +69,8 @@
# define INCL_DOS
# define INCL_DOSDEVIOCTL
# include <os2.h>
+# include <io.h> /* setmode() */
+# include <fcntl.h> /* O_BINARY */
#endif
#include "dvdcss/dvdcss.h"
@@ -672,10 +674,10 @@
psz_dvd[0] = psz_device[0];
- rc = DosOpen( ( PSZ )psz_dvd, &hfile, &ulAction, 0, FILE_NORMAL,
- OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW,
- OPEN_ACCESS_READONLY | OPEN_SHARE_DENYNONE | OPEN_FLAGS_DASD,
- NULL );
+ rc = DosOpenL( ( PSZ )psz_dvd, &hfile, &ulAction, 0, FILE_NORMAL,
+ OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW,
+ OPEN_ACCESS_READONLY | OPEN_SHARE_DENYNONE | OPEN_FLAGS_DASD,
+ NULL );
if( rc )
{
@@ -682,6 +684,8 @@
print_error( dvdcss, "failed to open device" );
return -1;
}
+
+ setmode( hfile, O_BINARY );
dvdcss->i_fd = dvdcss->i_read_fd = hfile;