** Quoting Robert Jung to Roland Roberts:
RR> [...] Not to mention at least one home user who would like to see
> an OS/2 version.
JD> The DOS version of ARJ works in an OS/2 DOS box anyways..
RR> But doesn't support long filenames or extended attributes.
RJ> I am working on a DOS version that handles the extended attributes
> via an undocumented DOS function interface (used in UC2 and other
> archivers). I plan to insert the EA data in the file header in the
> unused extended header field. The first version will have
> uncompressed EA data.
Why uncompressed?
RJ> Now if someone could point out a DOS function to get the long
> filenames via the DOS box, I will add that function JUST LIKE
> I added Win95 long filename support.
From Ralf Brown's Interrupt List (INTER53[A-G].ZIP):
================================ Begin =================================
--------O-215702-----------------------------
INT 21 - OS/2 v1.1+ Family API - DosQFileInfo
AX = 5702h
BX = file handle
CX = size of buffer for information
DX = level of information
0001h standard file information (see #1012)
0002h Query EA Size (see #1012)
0003h Query EAs from List (see #1013)
0004h Query All EAs (see #1013)
ES:DI -> buffer for information (see #1012,#1013)
Return: CF clear if successful
CF set on error
AX = error code
SeeAlso: AX=5702h/BX=FFFFh,AX=5703h"OS/2",AH=6Dh"OS/2"
Format of OS/2 DosQFileInfo:
Offset Size Description (Table 1012)
00h WORD creation date
02h WORD creation time
04h WORD last access date
06h WORD last access time
08h WORD last write date
0Ah WORD last write time
0Ch DWORD file size in bytes
10h DWORD allocated space in bytes
14h WORD file attributes
---level 2 only---
16h DWORD size of Extended Attributes in byte
SeeAlso: #1013,#1016
Format of OS/2 DosQFileInfo, EAOP structure:
Offset Size Description (Table 1013)
00h DWORD pointer to general EA list (see #1014)
04h DWORD pointer to buffer for full EA list, with length field set
08h DWORD (ret) error
Note: for info level 3, the first pointer must contain the address of
a list of the Extended Attributes to be retrieved; for info
level 4, it should be 0000h:0000h
SeeAlso: #1012,#1016
Format of OS/2 DosQFileInfo, General EA List:
Offset Size Description (Table 1014)
00h DWORD (call) total size of list in bytes (including this
field)
(ret) number of bytes actually used (including this
field)
04h var Extended Attribute entries (see #1015) [packed arrray]
Format of OS/2 DosQFileInfo, General EA entry:
Offset Size Description (Table 1015)
00h BYTE length of Extended Attribute name (excluding terminating
NUL)
01h N BYTEs EA name
BYTE 00h
SeeAlso: #1014
Format of OS/2 DosQFileInfo, Full EA List:
Offset Size Description (Table 1016)
00h DWORD (call) total size of list in bytes (including this
field)
(ret) number of bytes actually used (including this
field)
04h var Extended Attribute data (see #1017) [packed array]
SeeAlso: #1012,#1013
Format of OS/2 Extended Attribute data (struct FEA):
Offset Size Description (Table 1017)
00h BYTE flags
bit 7: critical EA
01h BYTE length of Extended Attribute name (excluding terminating
NUL)
02h WORD length of Extended Attribute value
04h N BYTEs EA name
BYTE 00h
M BYTEs EA value
--------O-215702BXFFFF-----------------------
INT 21 - OS/2 v1.1+ Compatibility Box Family API - DosQPathInfo
AX = 5702h
BX = FFFFh
CX = size of buffer for information
DX = level of information (0002h)
DS:SI -> filename
ES:DI -> buffer for FAPI path information (see #1018)
Return: CF clear if successful
AL = 00h
CF set on error
AX = error code
SeeAlso: AX=5702h"OS/2",AX=5703h/BX=FFFFh
Format of FAPI path information:
Offset Size Description (Table 1018)
00h 22 BYTEs ???
16h DWORD extended attribute size (none present if less than 5)
--------O-215703-----------------------------
INT 21 - OS/2 v1.1+ Family API - DosSetFileInfo
AX = 5703h
BX = file handle
CX = size of information buffer
DX = level of information
ES:DI -> information buffer
Return: CF clear if successful
CF set on error
AX = error code
SeeAlso: AX=5702h"OS/2",AX=5703h/BX=FFFFh
--------O-215703BXFFFF-----------------------
INT 21 - OS/2 v1.1+ Family API - DosSetPathInfo
AX = 5703h
BX = FFFFh
CX = size of information buffer
DX = level of information
DS:SI -> filename
ES:DI -> information buffer
Return: CF clear if successful
CF set on error
AX = error code
SeeAlso: AX=5702h/BX=FFFFh,AX=5703h"OS/2"
================================= End ==================================
Also, there are programmers on Fido's OS2PROG who can help.
RJ> BTW, someone did contribute the EA interface to me.
You're welcome.
--From Bay Ridge, Brooklyn, NY, Sat, 03-22-97--
--Internet: jnegron@ibm.net--
--- QScan/PCB v1.19b / 01-0154
---------------
* Origin: MicroLink BBS * Dinuba, CA 209-591-8753 (1:214/80)
|