Hi/2.
Sergey Poznyakoff wrote:
>> @@ -1362,6 +1362,10 @@ parse_opt (int key, char *arg, struct argp_state
>> *state)
>> {
>> struct tar_args *args = state->input;
>>
>> +#ifdef __OS2__
>> + force_local_option = true;
>> +#endif
>> +
>
> Applying this will make it impossible to access remote archives.
>
Ok. I've fixed rmt.h instead. But it is in paxutils. Here is the place
for it ? I have some patches for paxutils.
Anyway I attach a patch for rmt.h of paxutils.
--
KO Myung-Hun
Using Mozilla SeaMonkey 2.7.2
Under OS/2 Warp 4 for Korean with FixPak #15
In VirtualBox v4.1.32 on Intel Core i7-3615QM 2.30GHz with 8GB RAM
Korean OS/2 User Community : http://www.ecomstation.co.kr
From a2ead57945e5b3a1e892774b30aacb46df744564 Mon Sep 17 00:00:00 2001
From: KO Myung-Hun <[email protected]>
Date: Tue, 18 Nov 2014 10:21:15 +0900
Subject: [PATCH] Check if dev_name is a drive letter
On OS/2, 'x:' is a drive letter not a remote device.
* lib/rmt.h (_remdev): Check if dev_name is a drive letter.
(_drivedev): New.
---
lib/rmt.h | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/lib/rmt.h b/lib/rmt.h
index ff10e7c..da46119 100644
--- a/lib/rmt.h
+++ b/lib/rmt.h
@@ -35,10 +35,19 @@ extern bool force_local_option;
Distributed File System (DFS). However, when --force-local, a
filename is never remote. */
+#ifdef __OS2__
+# define _drivedev(dev_name) \
+ ((((dev_name)[0] >= 'a' && (dev_name)[0] <= 'z') || \
+ ((dev_name)[0] >= 'A' && (dev_name)[0] <= 'Z')) && ((dev_name)[1] == ':'))
+#else
+# define _drivedev(dev_name) 0
+#endif
+
#define _remdev(dev_name) \
(!force_local_option && (rmt_dev_name__ = strchr (dev_name, ':')) \
&& rmt_dev_name__ > (dev_name) \
- && ! memchr (dev_name, '/', rmt_dev_name__ - (dev_name)))
+ && ! memchr (dev_name, '/', rmt_dev_name__ - (dev_name)) \
+ && ! _drivedev(dev_name))
#define _isrmt(fd) \
((fd) >= __REM_BIAS)
--
1.8.5.2