Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!elroy.jpl.nasa.gov!decwrl!pa.dec.com!src.dec.com!Dick Orgass From: orgass+@rchland.ibm.com (Dick Orgass) Newsgroups: comp.lang.modula3 Subject: Re: Udir.i3 Message-ID: <8c68qDw91E4412qG5o@rchland.ibm.com> Date: 26 Apr 91 20:29:03 GMT References: <9104261717.AA07095@jumbo.pa.dec.com> Reply-To: "Dick Orgass" Lines: 27 In-Reply-To: <9104261717.AA07095@jumbo.pa.dec.com> To: m3 Cc: Mick Jordan The intent of the target specific libraries is that they are to accurately reflect the details of the target on which clients are running. In a lot of ways Udir.i3 is the most difficult of the target specific interfaces. All three of the IBM platforms are different from each other and quite different from Ultrix. These differences show up in two ways: the details of the record declarations and the names of the record fields. The first is of very little consequence if the people doing the ports do their job correctly (unlike this author) but the second is more difficult. Whe I did Udir.i3 for our platforms, I followed sys/dir.h for type names, field size and field names. This means I get a record type DIR with fields of the form dd_* as well as record type struct_dirent with fields whose names are of the form d_*. It appears that for Ultrix and, possibly, SunOS, one gets a record type gen_dir with field names gd_*. It is this latter kind of difference that makes clients of Udir.i3 non-portable. Perhaps we should agree to use exactly the type names and field names in the POSIX or X/Open spec with possible additions or omissions to match our targets. Dick