home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / mod.std.unix.v8 < prev    next >
Internet Message Format  |  1987-06-30  |  162KB

  1. From news  Tue Oct 28 12:16:57 1986
  2. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3. Newsgroups: mod.std.unix
  4. Subject: mod.std.unix Volume 8
  5. Message-Id: <6145@ut-sally.UUCP>
  6. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  7. Date: 28 Oct 86 18:16:37 GMT
  8. Draft-9: mod.std.unix
  9.  
  10. This is the first article in Volume 8 of the USENET newsgroup mod.std.unix
  11. (also known as the ARPA Internet mailing list std-unix@sally.utexas.edu).
  12. These volumes are strictly for administrative convenience.
  13. Paper copies of them get delivered to the P1003 committee chair
  14. from time to time and several members of the committee follow
  15. the newsgroup on-line.
  16.  
  17. Feel free to continue any discussions from the previous volume
  18. or to start new discussions.
  19.  
  20.  
  21. This newsgroup and mailing list are for discussions of UNIX standards,
  22. particularly the IEEE 1003.1 Trial Use Standard.  The moderator is
  23. John S. Quarterman, who is also the institutional representative of
  24. the USENIX Association to the IEEE P1003 Portable Operating System for
  25. Computer Environments Committee (commonly known as the UNIX Standards
  26. Committee).
  27.  
  28. Submissions-To:    ut-sally!std-unix    or std-unix@sally.utexas.edu
  29. Comments-To: ut-sally!std-unix-request    or std-unix-request@sally.utexas.edu
  30. UUCP-Routes: {gatech,harvard,ihnp4,seismo,pyramid,sequent}!ut-sally!std-unix
  31.  
  32. Permission to post to the newsgroup is assumed for mail to std-unix.
  33. Permission to post is not assumed for mail to std-unix-request,
  34. unless explicitly granted in the mail.  Mail to my personal addresses
  35. will be treated like mail to std-unix-request if it obviously refers
  36. to the newsgroup.
  37.  
  38. Archives may be found on sally.utexas.edu.  The current volume may
  39. be retreived by anonymous ftp (login anonymous, password guest)
  40. as ~ftp/pub/mod.std.unix, while the previous volumes may be retrieved
  41. as ~ftp/pub/mod.std.unix.v1, ~ftp/pub/mod.std.unix.v2, etc., through 7.
  42. The volume with the AT&T public domain getopt(3) is ~ftp/pub/mod.std.unix.v3.
  43.  
  44. Finally, remember that any remarks by any committee member (especially
  45. including me) in this newsgroup do not represent any position (including
  46. any draft, proposed or actual, of a standard) of the committee as a
  47. whole, unless explicitly stated otherwise in such remarks.
  48.  
  49. Volume-Number: Volume 8, Number 1
  50.  
  51. From news  Tue Oct 28 12:19:37 1986
  52. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  53. Newsgroups: mod.std.unix
  54. Subject: mod.std.unix and P1003
  55. Message-Id: <6146@ut-sally.UUCP>
  56. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  57. Date: 28 Oct 86 18:19:24 GMT
  58. Draft-9: mod.std.unix
  59.  
  60. This article is a slightly adapted copy of an earlier one.
  61.  
  62. There seems to be widespread confusion as to the relation of the
  63. newsgroup mod.std.unix (aka the mailing list STD-UNIX) and the
  64. IEEE P1003 standards committee and its subcommittees.  Allow me
  65. to try to clear some of it up.
  66.  
  67.  
  68. Because something is discussed in mod.std.unix does not mean that
  69. it is automatically proposed to P1003 for inclusion in the standard.
  70. Proposals to the committee have to be more formal.  Especially they
  71. have to include specific proposed wording.
  72.  
  73. As it happens, the moderator of the newsgroup is also the USENIX
  74. representative to the committee.  As such, I am willing to present
  75. proposals to the committee if someone actually has some to present.
  76. However, the proposer has to specifically request that for a specific
  77. proposal and I have to agree to it before it will happen.
  78.  
  79. It is true that several committee members follow the newsgroup and
  80. that I make sure that copies of articles from the newsgroup go to
  81. appropriate technical reviewers or are mentioned to the committee
  82. as a whole.  However, they are not presented as proposals:  they
  83. are presented as comments.  They may help committee members understand
  84. the context of a topic which is treated in the standards document,
  85. but they are unlikely to cause new topics to be added to the document.
  86.  
  87. This is not to say that input from the newsgroup is not useful
  88. to the committee.  A number of problems with the latest drafts
  89. were pointed out in the newsgroup and fixed because of that.
  90. The time zone discussion has led to an actual proposal (P.055)
  91. which may be adopted by the committee.
  92.  
  93.  
  94. Because something is discussed in mod.std.unix does not even
  95. necessarily mean that it has anything to do with the P1003 committee.
  96.  
  97.  
  98. The committee is very aware that they should not be introducing
  99. new facilities.  It has happened a few times.  The only one
  100. I can think of at the moment is file locking, specifically the
  101. mandatory locking feature of flock (which was actually introduced
  102. by the /usr/group committee).  This is also, not coincidentally,
  103. one of the most controversial things in the current document,
  104. even though its proponents only back it because they are convinced
  105. it is necessary.
  106.  
  107. You will find things in the draft standard document which do not
  108. correspond to your local system, regardless of what your local system
  109. is.  This is because in the real world there are at least two major
  110. variants of UNIX and many minor ones.  To pick one and standardize on
  111. it alone would be to try to outlaw all the others.  This is probably
  112. not even possible, even if it were desirable.  The committee has chosen
  113. instead to try to produce something which is not exactly like anything
  114. out there but which can be implemented with relatively minor changes on
  115. most existing systems.
  116.  
  117. Ritual disclaimer:  this article is constructed of my personal opinions
  118. and does not necessarily represent any official position of IEEE, P1003,
  119. USENIX, /usr/group, or any other organization.
  120.  
  121. Volume-Number: Volume 8, Number 2
  122.  
  123. From news  Tue Oct 28 12:25:37 1986
  124. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  125. Newsgroups: mod.std.unix
  126. Subject: extern identifier length
  127. Message-Id: <6147@ut-sally.UUCP>
  128. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  129. Date: 28 Oct 86 18:25:16 GMT
  130. Draft-9: 8.0
  131.  
  132. From: harvard!encore!vaxine!nw (Neil Webber)
  133. Date: Tue, 28 Oct 86 09:52:37 est
  134.  
  135. > From: gwyn@brl.arpa (VLD/VMB)
  136. > Date:     Mon, 20 Oct 86 9:44:19 EDT
  137. >
  138. > If it doesn't support 32-character extern name uniqueness, it isn't POSIX.
  139. > 1003.1 imposes requirements on a C implementation beyond those of X3J11.
  140. >
  141. While I'm 100% behind this idea, I have to ask the question "how did this
  142. come to be?"  As I recall, the major argument against providing longer
  143. extern names in X3J11 was that it would preclude X3J11 conforming C
  144. implementations on systems with restricted object file formats.  Is it
  145. now impossible to provide a POSIX conforming implementation on those
  146. systems?
  147.  
  148. This is only a problem for implementations layered on top of an existing
  149. OS.  Being somewhat of a "young one", I haven't worked on any systems
  150. with a 6-character extern limit.  (Life is tough, isn't it?) However, I'd
  151. be interested in knowing what systems suffer from this restriction, and
  152. why it doesn't matter that a POSIX environment can't be provided under
  153. those systems.
  154.  
  155. Neil Webber     Automatix Inc.          Billerica MA
  156.         {decvax,ihnp4,allegra}!encore!vaxine!nw
  157.  
  158. Volume-Number: Volume 8, Number 3
  159.  
  160. From news  Tue Oct 28 12:30:34 1986
  161. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  162. Newsgroups: mod.std.unix
  163. Subject: Re: missing features from POSIX
  164. Message-Id: <6148@ut-sally.UUCP>
  165. References: <6128@ut-sally.UUCP>
  166. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  167. Date: 28 Oct 86 18:30:15 GMT
  168. Draft-9: 1003.2.getopt 1003.2.popen
  169.  
  170. From: pyramid!amdahl!hlj@sally.utexas.edu (Hal Jespersen)
  171. Date: Tue, 28 Oct 86 06:59:26 PST
  172. Organization: Amdahl Corp, UTS Products Group
  173.  
  174. In article <6128@ut-sally.UUCP>:
  175.  >From: utah-cs!cbosgd!cbosgd.ATT.COM!mark (Mark Horton)
  176.  >Date: Mon, 27 Oct 86 20:51:58 est
  177.  >
  178.  >In comparing various C libraries and standards, I discovered several
  179.  >important routines that are in neither POSIX nor X3J11.  I'd like to
  180.  >find out why they are missing.  Would you please either answer these,
  181.  >ask the appropriate person, or post to mod.std.unix?
  182.  >
  183.  >Some of these functions were explicitly created to enhance portability,
  184.  >so it seems surprising to omit them.
  185.  >
  186.  >getopt...
  187.  >
  188. This is actively being addressed in the 1003.2 Shell and Utilities
  189. Working Group.
  190.  
  191.  >curses...
  192.  >
  193. This is not being addressed by 1003.2, as we are purposely avoiding
  194. terminal interfaces and concentrating on shell interfaces from application
  195. programs, such as through...
  196.  
  197.  >popen...
  198.  >
  199. which _is_ being included in 1003.2.
  200.  
  201. Volume-Number: Volume 8, Number 4
  202.  
  203. From news  Tue Oct 28 12:34:26 1986
  204. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  205. Newsgroups: mod.std.unix
  206. Subject: Re:  X3 display committee
  207. Message-Id: <6149@ut-sally.UUCP>
  208. References: <6100@ut-sally.UUCP>
  209. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  210. Date: 28 Oct 86 18:34:11 GMT
  211. Draft-9: X3H3.6
  212.  
  213. From: ulowell!grinstei%wanginst.UUCP@harvard.HARVARD.EDU 
  214. Date: Tue, 28 Oct 86 12:58:07 EST
  215.  
  216. Actually the committee is not developing a model based on any window
  217. system but is building a model that will support current and future
  218. window management system.  Sun, DEC/MIT (Project Athena = X), Microsoft,
  219. Apollo and many other window supporters/developers/implementors are actively
  220. participating on X3H3.6;  we would greatly appreciate more help and 
  221. participation as this is a sizeable task.
  222.  
  223. Georges Grinstein
  224. Director Graphics Research Lab
  225.  
  226. ( Chair X3H3.6 )
  227.  
  228. Volume-Number: Volume 8, Number 5
  229.  
  230. From news  Tue Oct 28 13:08:21 1986
  231. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  232. Newsgroups: mod.std.unix
  233. Subject: Access to UNIX-Related Standards
  234. Message-Id: <6150@ut-sally.UUCP>
  235. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  236. Date: 28 Oct 86 19:08:02 GMT
  237. Draft-9: Access.Standards
  238.  
  239. This is the latest in a series of similar mod.std.unix articles.
  240.  
  241.  
  242. Access information is given in this article for the following standards:
  243. IEEE 1003.1 (POSIX), 1003.2 (shell/tools), 1003.3 (verification)
  244. /usr/group working groups on networking, graphics, database,
  245.     internationalization, performance measurements, realtime, and security
  246. X3H3.6 (display committee)
  247. X3J11 (C language)
  248. /usr/group Standard
  249. System V Interface Definition
  250. X/OPEN PORTABILITY GUIDE
  251.  
  252.  
  253. The IEEE P1003 Portable Operating System for Computer Environments Committee
  254. is sometimes known colloquially as the UNIX Standards Committee.
  255. They have recently produced the 1003.1 "POSIX" Trial Use Standard.
  256. According to its Foreword:
  257.  
  258.     The purpose of this document is to define a standard
  259.     operating system interface and environment based on the
  260.     UNIX Operating System documentation to support application
  261.     portability at the source level.  This is intended for
  262.     systems implementors and applications software developers.
  263.  
  264. Published copies are available at $19.95,
  265. with bulk purchasing discounts available.
  266. Call the IEEE Computer Society in Los Angeles
  267.  
  268.     714-821-8380
  269.  
  270. and ask for Book #967.  Or contact:
  271.  
  272.     IEEE Service Center
  273.     445 Hoes Ln.
  274.     Piscataway, NJ 08854
  275.  
  276. and ask for "IEEE 1003.1 Trial Use Standard" - stock number SH10546.
  277.  
  278. The Trial Use Standard will be available for comments for a period
  279. such as a year.  The current target for a Full Use Standard is Fall 1987.
  280. IEEE has initiated the process to have the 1003.1 effort brought into
  281. the International Organization for Standardization (ISO) arena.
  282.  
  283. Machine readable copies of the Trial Use Standard are not and will 
  284. not be available.  A machine-readable "representation" of a draft
  285. between the Trial Use and Full Use Standards may be available when
  286. it is ready (probably in 1987).
  287.  
  288. There is a paper mailing list by which interested parties may get
  289. copies of drafts of the standard.  To get on it, or to submit comments
  290. directly to the committee, mail to:
  291.  
  292.     James Isaak
  293.     Chairperson, IEEE/CS P1003
  294.     Charles River Data Systems
  295.     983 Concord St.
  296.     Framingham, MA 01701
  297.     decvax!frog!jim
  298.  
  299. Sufficiently interested parties may join the working group.
  300.  
  301. The next scheduled meetings of the P1003.1 working group are
  302.  
  303. December  8-12    Atlantic City, NJ    Bally's Hotel & Casino
  304.     (Same time/location as X3J11 C Standards Committee meeting)
  305.     Host: Concurrent Computer Corporation (previously Perkin Elmer)
  306.  
  307. April    22-24    Toronto            Host: IBM
  308.         (Canadian UNIX Conference)
  309.  
  310. June    9-12    Phoenix (USENIX Conference)    No Host yet
  311.  
  312. Aug/Sept 31-4   East Coast Probably Washington DC area    No Host yet
  313.  OR Sept 14-18    Boston (Same Time/loc as X3J11)
  314. (Sept 7th is Labor day, and that week is ISO TC97 SC22 meeting in Wash DC)
  315.  
  316. There is also a balloting group (which intersects with the working group).
  317. This is more difficult.  Contact the committee chair for details.
  318. I will repost them in this newsgroup if there is sufficient interest.
  319.  
  320. Related working groups are
  321.     group    subject        co-chairs
  322.     1003.2    shell and tools    Hal Jespersen (Amdahl), Don Cragun (Sun)
  323.     1003.3    verification    Roger Martin (NBS), Carol Raye (AT&T)
  324.  
  325. Inquiries regarding 1003.2 and 1003.3 should go to the same address
  326. as for 1003.1.
  327.  
  328. Here are some details from Hal Jespersen regarding P1003.2:
  329.  
  330. The IEEE P1003.2 "Shell and Utilities" Working Group is developing a
  331. proposed standard to complement the 1003.1 POSIX standard.  It will
  332. consist of
  333.  
  334.     a shell command language (currently planned to be based on the
  335.     Bourne Shell),
  336.  
  337.     groups of utility programs, or commands,
  338.  
  339.     programmatic interfaces to the shell (system(), popen()) and
  340.     related facilities (regular expressions, file name expansion,
  341.     etc.)
  342.  
  343.     defined environments (variables, file hierarchies, etc) that
  344.     applications may rely upon
  345.  
  346. which will allow application programs to be developed out of existing
  347. pieces, in the UNIX tradition.  The scope of the standard emphasizes
  348. commands and features that are more typically used by shell scripts or
  349. C language programs than those that are oriented to the terminal user
  350. with windows, mice, visual shells, and so forth.
  351.  
  352. The group is currently seeking proposals for groupings of commands that
  353. may be offered by implementors.  As groups are identified, command
  354. descriptions will be solicited.  There is no requirement that the commands
  355. be in System V or BSD today, but they should realistically be commands 
  356. that are commonly found in most existing implementations.
  357.  
  358. Meetings are normally held in conjunction with the 1003.1 group and
  359. have a large membership overlap.  The next meeting is 12/8/86, and
  360. possibly the morning of the 9th, in Atlantic City.  Future meetings
  361. will generally be held on the day or two preceding 1003.1.
  362.  
  363.  
  364. There are two Institutional Representatives to P1003:  John Quarterman
  365. from USENIX and Heinz Lycklama from /usr/group.  As the one from USENIX,
  366. one of my functions is to get comments from the USENIX membership and
  367. the general public to the committee.  One of the ways I try to do that
  368. is by moderating this newsgroup (currently known as mod.std.unix,
  369. eventually as comp.std.unix).  An article related to this one just
  370. appeared in the September/October 1986 ;login: (The USENIX Association
  371. Newsletter).  I'm also currently on the USENIX Board of Directors.
  372.  
  373. The May/June 1986 issue of CommUNIXations (the /usr/group newsletter)
  374. contains a report by Heinz Lycklama on the /usr/group Technical Committee
  375. working groups which met in February 1986 on the areas of Networking,
  376. Internationalization, Graphics, Realtime, Database, Performance, and
  377. the proposed new group on Security.
  378.  
  379.  
  380. Here is contact information for /usr/group working groups as taken from
  381. the CommUNIXations article mentioned above.  If you are interested in
  382. starting another working group, contact Heinz Lycklama at the address below.
  383.  
  384. /usr/group Working Group on Networking:
  385.     Dave Buck
  386.     D.L. Buck & Associates, Inc.
  387.     6920 Santa Teresa Bldg, #108
  388.     San Jose, CA 95119
  389.     (408)972-2825
  390.  
  391. /usr/group Working Group on Internationalization:
  392.     Brian Boyle            Karen Barnes
  393.     Novon Research Group        Hewlett-Packard Co.
  394.     537 Panorama Dr.        19447 Pruneridge Ave.
  395.     San Francisco, CA 94131        M/S 47U2
  396.     (415)641-9800            Cupertino, CA 95014
  397.                     (408) 725-8111, ext 2438
  398.  
  399. /usr/group Working Group on Graphics:
  400.     Heinz Lycklama
  401.     Interactive Systems Corp.
  402.     2401 Colorado Ave., 3rd Fl.
  403.     Santa Monica, CA 90404
  404.     (213)453-8649
  405.  
  406. /usr/group Working Group on Realtime:
  407.     Bill Corwin            Ben Patel
  408.     Intel Corp.            EDS Corp.
  409.     5200 Elam Young Pkwy        P.O. Box 5121
  410.     Hillsboro, OR 97123        23077 Greenfield
  411.     (503)640-7588            Southfield, MI 48075
  412.                     (313)443-3460
  413.  
  414. /usr/group Working Group on Database:
  415.     Val Skalabrin
  416.     Unify Corp.
  417.     1111 Howe Ave.
  418.     Sacramento, CA 95825
  419.     (916)920-9092
  420.  
  421. /usr/group Working Group on Performance Measurements:
  422.     Ram Celluri            Dave Hinant
  423.     AT&T Computer Systems        SCI Systems, Inc.
  424.     Room E15B            Ste 325, Pamlico Bldg
  425.     4513 Western Ave.        Research Triangle Pk, NC 27709
  426.     Lisle, IL 60532            (919)549-8334
  427.     (312)810-6223
  428.  
  429. /usr/group Working Group on Security:
  430.     Steve Sutton
  431.     Computer Systems Div.
  432.     Gould Inc.
  433.     1101 East University
  434.     Urbana, IL 61801
  435.     (217)384-8500
  436.  
  437.  
  438. The X3H3.6 display management committee has recently formed to develop
  439. a model to support current and future window management systems, yet
  440. is not based directly on any existing system.  The chair solicits
  441. help and participation:
  442.  
  443.     Georges Grinstein
  444.     wanginst!ulowell!grinstein
  445.  
  446.  
  447. The Abstract of the 1003.1 Trial Use Standard adds:
  448.  
  449.     This interface is a complement to the C Programming Language
  450.     in the C Information Bulletin prepared by Technical Committee X3J11
  451.     of the Accredited Standards Committee X3, Information Processing
  452.     Systems, further specifying an environment for portable application
  453.     software.
  454.  
  455. X3J11 is sometimes known as the C Standards Committee.  Their liaison to
  456. P1003 is
  457.  
  458.     Don Kretsch
  459.     AT&T
  460.     190 River Road
  461.     Summit, NJ 07901
  462.  
  463. A contact for information regarding publications and working groups is
  464.  
  465.     Thomas Plum
  466.     Vice Chair, X3J11 Committee
  467.     Plum Hall Inc.
  468.     1 Spruce Avenue
  469.     Cardiff, New Jersey 08232
  470.  
  471. There is frequent discussion of X3J11 in the USENET newsgroup mod.std.c,
  472. which see.  (That newsgroup will eventually be known as comp.std.c.)
  473.  
  474.  
  475. The /usr/group Standard is the principle ancestor of P1003.1:
  476.  
  477.     /usr/group Standards Committee
  478.     4655 Old Ironsides Drive, Suite 200
  479.     Santa Clara, California 95050
  480.  
  481. The price is still $15.00.
  482.  
  483.  
  484. The System V Interface Definition (The Purple Book).
  485. This is the AT&T standard and is one of the most frequently-used
  486. references of the IEEE 1003 committee.
  487.  
  488.     System V Interface Definition, Issue 2
  489.     Select Codes 320-011 (Volume 1) and 320-012 (Volume 2)
  490.     or Select Code 307-127 (both volumes).
  491.     AT&T Customer Information Center
  492.     2833 North Franklin Road
  493.     Indianapolis, IN 46219
  494.     1-800-432-6600, operator 77.
  495.  
  496. The price is about 37 U.S. dollars for each volume or $52 for the pair.
  497. Major credit cards are accepted for telephone orders:  mail orders
  498. should include a check or money order.  Previous SVID owners should
  499. have received a discount coupon to upgrade to Release 2 for only $37.
  500.  
  501. Volume 1 is essentially equivalent to the whole previous SVID;
  502. Volume 2 is mostly commands and a few add-ons (e.g. curses).
  503. A third volume is expected in the last quarter of 1986 to cover new
  504. items in System V Release 3, such as streams and networking.  There may
  505. be an upgrade discount similar to the previous one.  A draft copy is
  506. reputed to be available now to source licensees.
  507.  
  508.  
  509. The X/OPEN PORTABILITY GUIDE (The Green Book)
  510. is another reference frequently used by IEEE 1003.
  511.  
  512. X/OPEN is "A Group of European Computer Manufacturers" who have produced
  513. a document intended to promote the writing of portable facilities.
  514. (They now have member computer manufacturers from outside Europe.)
  515. Their flyer remarks (in five languages), "Now we all speak the same
  516. language in Europe."
  517.  
  518. The book is published by
  519.  
  520.     Elsevier Science Publishers
  521.     Book Order Department
  522.     PO Box 211
  523.     1000 AE Amsterdam
  524.     The Netherlands
  525.  
  526. or, for those in the U.S.A. or Canada:
  527.  
  528.     Elsevier Science Publishers Co Inc.
  529.     PO Box 1663
  530.     Grand Central Station
  531.     New York, NY 10163
  532.  
  533. The price is Dfl 275,00 or USD 75.00.  According to the order form,
  534. "This price includes the costs of one update which will be mailed
  535. automatically upon publication."  They take a large number of credit
  536. cards and other forms of payment.
  537.  
  538.  
  539. Corrections and additions to this article are solicited.
  540. Oh, yes:  "UNIX is a Registered Trademark of AT&T."
  541. And POSIX is a trademark of IEEE.
  542.  
  543.  
  544. Volume-Number: Volume 8, Number 6
  545.  
  546. From news  Tue Oct 28 16:38:44 1986
  547. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  548. Newsgroups: mod.std.unix
  549. Subject: Re: A convention for -file
  550. Message-Id: <6156@ut-sally.UUCP>
  551. References: <6121@ut-sally.UUCP>
  552. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  553. Date: 28 Oct 86 22:38:17 GMT
  554. Draft-9: 1003.2.getopt
  555.  
  556. From: byee@f.gp.cs.cmu.edu (Bennet Yee)
  557. Date: Tue, 28 Oct 1986 14:17-EDT
  558.  
  559. There is nothing wrong with the old standby of "./-file" -- why all the
  560. fuss with special-casing in getopt or "--file"?
  561.  
  562. -Bsy
  563.  
  564. --
  565. Bennet Yee                            ~   ~
  566.                                 O   =
  567. byee@f.gp.cs.cmu.edu        (Arpa)                  ^
  568. ...!seismo!f.gp.cs.cmu.edu!byee    (Uucp)                \___/
  569.  
  570. Volume-Number: Volume 8, Number 7
  571.  
  572. From news  Thu Oct 30 18:57:15 1986
  573. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  574. Newsgroups: mod.std.unix
  575. Subject: Re: A convention for -file
  576. Message-Id: <6172@ut-sally.UUCP>
  577. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  578. Date: 31 Oct 86 00:56:52 GMT
  579. Draft-9: 1003.2.getopt
  580.  
  581. From: guy@sun.com (Guy Harris)
  582. Date: Tue, 28 Oct 86 23:20:53 PST
  583.  
  584. > >                                Since this one has
  585. > >already been implemented by many commands, it is preferable.
  586.  
  587. > ...But I dislike it when it is paraded as THE reason for saying its
  588. > preferable.  Is UNIX supposed to turn into an official fossil now?
  589.  
  590. I saw no great advantage offered by the proposed scheme.  It was more
  591. "different" than it was "better".  I'll complete the thought, then: "Since
  592. this one has already been implemented by many commands, since it requires less
  593. reprogramming than changing all commands that accept flag arguments to
  594. special-case arguments beginning with "--", and since it would be a novelty
  595. to more users than the "'--' quotes a '-'" convention would be, it is
  596. preferable."
  597.  
  598. > I say my suggestion is cleaner and more versatile, thus it is preferable.
  599.  
  600. I don't see how it is any "cleaner" than "--", although this depends on what
  601. "cleaner" means.  It is slightly more versatile, in that it is not
  602. context-dependent; however, this is not sufficient to make it preferable.
  603. The cost of changing existing programs to use the "'--' quotes a '-'"
  604. convention that is greater than the cost to changing them to use the
  605. "getopt" convention.
  606.  
  607. > The required reprogramming would not be that complicated--just a minor
  608. > nuisance.
  609.  
  610. No, it is not necessarily *complicated*, but that doesn't render it merely a
  611. "minor nuisance".  It requires that all *non*-flag arguments be treated
  612. specially.  Programs that accept flag arguments already treat them
  613. specially.  Those that use "getopt" need not change at all.  Those that do
  614. not can either be converted to use "getopt", or just be converted to
  615. recognize a flag of the form "--" as an indication that no subsequent
  616. arguments be treated as flag arguments.
  617.  
  618. > But if you wish appeals to history, ...
  619.  
  620. I *don't* want appeals to history; my comment was an appeal to existing
  621. practice, and more specifically existing practice in the area of command
  622. argument parsing.
  623.  
  624. Volume-Number: Volume 8, Number 8
  625.  
  626. From news  Thu Oct 30 19:21:42 1986
  627. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  628. Newsgroups: mod.std.unix
  629. Subject: problem with the iocntl proposal
  630. Message-Id: <6175@ut-sally.UUCP>
  631. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  632. Date: 31 Oct 86 01:21:25 GMT
  633. Draft-9: 7.0
  634.  
  635. From: cbosgd!cbosgd.ATT.COM!mark@ucbvax.berkeley.edu (Mark Horton)
  636. Date: 28 Oct 86 03:12:38 GMT
  637. Organization: AT&T Bell Laboratories, Columbus, Oh
  638.  
  639. The iocntl proposal, as stated in section C.3 of the POSIX book,
  640. has a bug.  For those who don't have the book handy, it defines
  641.     iocntl(fildes, command, mask, argp, argpsize)
  642. where command specifies the unique name of the control; mask is
  643. either IO_READ, IO_WRITE, or IO_READ|IO_WRITE; argp is a pointer
  644. to the argument, and argpsize is the number of bytes in the argument.
  645.  
  646. It proposes implementation of upward compatibility
  647. with ioctl with a define such as
  648.     #define ioctl(a, b, c) iocntl(a, b, c, sizeof(c))
  649. and using a two ident define for b, thus
  650.     #define IO_READ        1
  651.     #define IO_WRITE    2
  652.     #define TERM_MASK    ('T'<<8)
  653.     #define SOME_MASK    (IO_READ|IO_WRITE),(TERM_MASK | 0)
  654.     ...
  655.     struct foo *ptr = ...
  656.     ioctl(0, SOME_MASK,ptr);
  657.  
  658. The bug here is that the sizeof is taken on the pointer, not the
  659. item itself, so it will always be 4 on a typical 32 bit machine.
  660.  
  661. One obvious fix might change the spec to read
  662.     #define ioctl(a, b, c) iocntl(a, b, c, sizeof(*c))
  663. This might work for many cases.  But there are two cases for
  664. which it fails:
  665.  
  666. (1) ioctls where the object pointed to is an array.  In particular
  667.     if the argument is a character string, as in SVr3's I_PUSH ioctl
  668.     to push a streams module, this won't work.
  669. (2) ioctls where the argument value itself, rather than what's at
  670.     the end of a pointer, is passed.  System V does this a lot;
  671.     see, for example, TCSBRK, TCXONC, and TCFLSH.
  672.  
  673. One possible solution to this problem would be to rearrange the
  674. order of the arguments to iocntl.  If it becomes
  675.  
  676.     iocntl(fildes, command, mask, argpsize, argp)
  677.  
  678. then a trick similar to the one used in 4.2BSD becomes possible:
  679.  
  680.     #define ioctl iocntl
  681.     #define IO_READ        1
  682.     #define IO_WRITE    2
  683.     #define TERM_MASK ('T'<<8)
  684.     #define SOME_MASK (IO_READ|IO_WRITE),(TERM_MASK | 0),sizeof (struct foo)
  685.     ...
  686.     struct foo *ptr = ...
  687.     ioctl(0, SOME_MASK, ptr);
  688.  
  689. Another possibility is similar, but closer to what 4.2 does.  We
  690. define iocntl as a function that takes three parameters, just like
  691. ioctl, but the second parameter is a long, and we get
  692.  
  693.     iocntl(fildes, (long) command, argp)
  694.  
  695.     #define ioctl iocntl
  696.     #define IO_READ        (1<<14)
  697.     #define IO_WRITE    (2<<14)
  698.     #define TERM_MASK ('T'<<24)
  699.     #define SOME_MASK (long) (IO_READ|IO_WRITE)|(TERM_MASK | 0)|sizeof (struct foo)
  700.     ...
  701.     struct foo *ptr = ...
  702.     ioctl(0, SOME_MASK, ptr);
  703.  
  704. As I understand it, the only reason for playing these games, instead of
  705. just doing what 4.2 did and leaving it called ioctl, is that ioctl is
  706. defined to take an int as the 2nd parameter, and this method has to pass
  707. a long.  It works on a 32 bit machine, but not on a 16 bit CPU such as
  708. an 80286 (unless you implement "int" as 32 bits.)  Am I missing something?
  709.  
  710. These comments apply to termcntl as well as iocntl.
  711.  
  712. By the way, if this proposal is going to be used, please let's change
  713. the name from iocntl to something that doesn't *sound* the same as
  714. ioctl.  Otherwise there will be lots of confusion.
  715.  
  716.     Mark
  717.  
  718. Volume-Number: Volume 8, Number 9
  719.  
  720. From news  Thu Oct 30 19:26:13 1986
  721. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  722. Newsgroups: mod.std.unix
  723. Subject: Re: job control
  724. Message-Id: <6176@ut-sally.UUCP>
  725. References: <6014@ut-sally.UUCP> <6001@ut-sally.UUCP> <5965@ut-sally.UUCP> <5932@ut-sally.UUCP> <5991@ut-sally.UUCP>
  726. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  727. Keywords: horrible
  728. Date: 31 Oct 86 01:25:37 GMT
  729. Draft-9: job.control
  730.  
  731. From: seismo!mcvax!jack
  732. Organization: AMOEBA project, CWI, Amsterdam
  733. Last-Band-Seen: Eton Crop, That Petrol Emotion (Paradiso, 30-09).
  734. Opinion-Of-Them: Two good and honest guitar bands....
  735. Date: Tue, 28 Oct 86 23:39:03 +0100
  736.  
  737. I waited for some time, thinking someone else would point this out,
  738. but nobody did, so here goes:
  739.  
  740. *CURRENT JOB CONTROL IMPLEMENTATIONS ARE HORRIBLE. HORRIBLE! 
  741. HORRIBLE!!!!!!!!*
  742.  
  743. After reading David Lennart's (sp?) article on 4.2 job control,
  744. SYSV shell layers, and HP-UX's hybrid I was shocked, I must admit.
  745.  
  746. Both solutions are filled with horrible tricks like closing
  747. tty's and re-opening them and then doing funny ioctl()s and the closing
  748. them again and then reopening then and then...
  749.  
  750. It is of course a praiseworthy feat that the folks at HP managed to
  751. sqeeze those two horrible, inconsistent, unintellegible mechanisms
  752. into one poor kernel, but I'm afraid the result is horrible**2.
  753.  
  754. I think that, if nobody can come up with a nice&clean subset of
  755. job control facilities, that will allow sysV and BSD semantics to
  756. be implemented on top of them, we should forget about standardising
  757. anything. Standardising bad mechanisms will only hinder progress
  758. (Did I hear someone say F77? X25?).
  759.  
  760. >From now on, you can find me in the "job control is horrible" camp.
  761. --
  762.     Jack Jansen, jack@mcvax.UUCP
  763.     The shell is my oyster.
  764.  
  765.  
  766. Volume-Number: Volume 8, Number 10
  767.  
  768. From news  Thu Oct 30 19:39:17 1986
  769. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  770. Newsgroups: mod.std.unix
  771. Subject: file times and shell commands
  772. Message-Id: <6177@ut-sally.UUCP>
  773. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  774. Date: 31 Oct 86 01:39:06 GMT
  775. Draft-9: 1003.2.newer
  776.  
  777. From: mayer@rochester.arpa  (Jim Mayer)
  778. Date: Wed, 29 Oct 86 22:15:54 est
  779.  
  780. I have two suggestions that fall into the "new feature" category.  The
  781. first concerns file time manipulation from the shell.  The second
  782. follows from the first, and concerns the combining power of the Bourne shell.
  783.  
  784. There doesn't appear to be any decent way to compare the last modified
  785. times of files from the shell.  I have written programs to do this,
  786. but that makes any scripts I write using the programs essentially
  787. unexportable.
  788.  
  789. There are several approaches to fixing the problem:
  790.  
  791. 1. Extend the "test" command, perhaps by borrowing the "-newer" syntax
  792.    of "find".
  793. 2. Add a new command.  One possibility is
  794.     "isconsistent file other-files..."
  795.    which would return true if the first file was created after all of
  796.    the "other-files".
  797. 3. Resign oneself to writing:
  798.     if [ `ls -t a b | head -1` = a ]
  799.     then echo "a was done later than b"
  800.     fi
  801.  
  802. All three work, however the second points out a problem with the
  803. Bourne shell: there is no "not" operator!
  804.  
  805. If an "isconsistent" command was implemented, then to write code that
  806. (for example) recompiled a C file if the object file was out of date,
  807. one would have to write:
  808.  
  809.     if isconsistent fu.o fu.c
  810.     then true
  811.     else cc -c fu.c
  812.     fi
  813.  
  814. instead of
  815.  
  816.     if ! isconsistent fu.o fu.c
  817.     then cc -c fu.c
  818.     fi
  819.  
  820. Of course, one could always add an "isinconsistent" command, but that
  821. avoids the point.  A "not" command that ran the command specified by
  822. its arguments and inverted the exit code would be better, but would
  823. still not handle things like "if ! (test1 || test2)" easily (I suspose
  824. we could all write in conjunctive normal form (ugh!)).  If there was a
  825. "not" operator then the Bourne shell syntax would be powerful enough
  826. to express arbitrary boolean forms.
  827.  
  828. That, of course, raises the possibility of getting rid of the "test"
  829. command entierly and replacing it with lots of little "gt" and "eq"
  830. commands.  But that's another story.... (and hardly a job for a
  831. standards group!)
  832.  
  833. -- Jim Mayer                    Computer Science Department
  834. (arpa) mayer@Rochester.EDU            University of Rochester
  835. (uucp) rochester!mayer                Rochester, New York 14627
  836.  
  837.  
  838. Volume-Number: Volume 8, Number 11
  839.  
  840. From news  Sat Nov  1 17:37:46 1986
  841. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  842. Newsgroups: mod.std.unix
  843. Subject: Re: mod.std.unix P1003 job control proposal (Brett Galloway)
  844. Message-Id: <6192@ut-sally.UUCP>
  845. References: <6102@ut-sally.UUCP>
  846. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  847. Date: 1 Nov 86 23:37:33 GMT
  848. Draft-9: job.control
  849.  
  850. From: pyramid!nsc!hplabs!hpda!hpisoa1!davel (Dave Lennert)
  851. Date: Wed, 29 Oct 86 10:07:47 -0800
  852.  
  853. > From: seismo!munnari!yabbie.rmit.oz!rcodi@sally.utexas.edu (Ian Donaldson)
  854. > Date: Tue, 21 Oct 86 10:39:40 EST
  855. > What is the significance of the "saved process group ID"?  How is
  856. > it different to the normal process-group-ID?  Who uses it?
  857.  
  858. The saved process group ID is analogous to the saved user and group ID's
  859. in System V.  They preserve the original values the process had when
  860. exec'd.  This allows the process to adopt a different value for one
  861. of these ID's and later return to its original value.  Without a "saved"
  862. value, all knowledge of the original value and of the process's rights
  863. to use it are lost.
  864.  
  865. The saved process group ID value is necessary with job control in the
  866. following scenario:
  867.  
  868. Root user su's to non-root user whose login shell is a job control shell
  869. (say csh).  Csh resets its process group to a new value (it becomes a
  870. process group leader).  When it terminates or suspends, it needs to
  871. restore both the tty group ID (a process group ID value) and its own
  872. process group ID back to the original values they had at entry.  (This
  873. restores its parent to the foreground.)  Under 4.2 this is no problem
  874. since there are no security checks for this.  Under POSIX there are
  875. security checks based on uid's which normally are allowed since the uid of
  876. the parent process and the csh are identical, but in our scenario would
  877. be disallowed because the uid's don't match.  The saved process group ID
  878. is an alternate security check which allows the above scenario.  See the
  879. security discussion in setpgrp2() and in the POSIX termios proposal.
  880.  
  881. > >          If    the process is a session process group leader, the
  882. > >          SIGHUP signal may be sent to each process that has    a
  883. >                ^^^ should be replaced by the word "will"
  884. > >          process group ID equal to that of the calling process;
  885.  
  886. "May" is used here to allow 4.2 systems to conform.  4.2 does not
  887. send SIGHUP on process group leader death.
  888.  
  889. Note that, with a job control shell, all child processes started by
  890. the shell are placed in a different process group than the (process
  891. group leader) shell is in.  Thus when the shell dies, SIGHUP is not
  892. seen by any of the children anyway.
  893.  
  894. > I disagree with the proposal on the handling of _exit processing for
  895. > job control.  It should be possible to not have to know in advance
  896. > that you wish to log-off and leave something running that you started
  897. > in foreground and later shifted to background.  This is a KEY feature
  898. > of job control.  
  899.  
  900. This key feature is preserved in the POSIX specification.  Perhaps I
  901. don't understand your statement.
  902.  
  903. > vhangup() will provide clean terminals on a bsd system,
  904. > and we have improved vhangup further to not just turn off READ/WRITE bits,
  905. > but to actually redirect the file references to /dev/null (which has
  906. > the advantage of also dropping DTR reliably). 
  907. > I see no mention of a vhangup equivalent in this proposal segment, but
  908. > then again, I haven't seen the whole of P1003 either.
  909.  
  910. vhangup() is indeed desirable.  It is not required in POSIX because it is 
  911. not supported on System V and, indeed, breaks System V compatiblity.
  912. (See my job control paper that was posted in mod.std.unix recently.)
  913.  
  914. > Children of init that are stopped are also sent SIGHUP's and SIGCONT's.
  915.  
  916. More correctly, at the time a stopped process is inherited by init (due 
  917. to its parent's death), it is sent SIGHUP and SIGCONT.  POSIX has this
  918. too; see the _exit part of the job control specification.
  919.  
  920. > Infinite-loop processes don't cause problems with system-response because
  921. > they are automatically niced (something that is long-needed in UNIX systems).
  922.  
  923. Note that this is NOT desirable on, e.g., realtime systems where that
  924. long running process may be critical.  I'm also getting tired of having
  925. my rwhod reniced automatically.
  926.  
  927.     Dave Lennert                ucbvax!hpda!davel               [UUCP]
  928.     Hewlett-Packard - 47UX      ihnp4!hplabs!hpda!davel         [UUCP]
  929.     19447 Pruneridge Ave.       hpda!davel@ucb-vax.ARPA         [ARPA]
  930.     Cupertino, CA  95014        (408) 447-6325                  [AT&T]
  931.  
  932.  
  933. Volume-Number: Volume 8, Number 12
  934.  
  935. From news  Sat Nov  1 17:41:07 1986
  936. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  937. Newsgroups: mod.std.unix
  938. Subject: The POSIX file system
  939. Message-Id: <6193@ut-sally.UUCP>
  940. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  941. Date: 1 Nov 86 23:40:50 GMT
  942. Draft-9: 2.3.folding
  943.  
  944. From: rgenter@labs-b.bbn.com (Rick Genter)
  945. Date: 30 Oct 86 09:57:13 EST (Thu)
  946.  
  947. Here's the text of my original article, modified to reflect dmr's comments:
  948.  
  949.      The recent discussion regarding the issue of case insensitivity in the
  950. POSIX environment has caused me to think about the Unix file system and
  951. its impact on the kernel.  I came into the Unix game late, but as I understand
  952. it, various flavors of Unix (such as MERT, Unix' real-time cousin), 
  953. implemented the file system completely outside the kernel, I suppose as a
  954. library of routines.  I also understand that the MACH project at CMU is 
  955. heading in this direction.
  956.  
  957.      The primary reason that I see for having the file system in the kernel in
  958. the first place is perhaps for efficiency and to solve certain concurrency
  959. problems.  I see making the file system case insensitive as another step in
  960. this direction; unfortunately I see it as a step backwards.  I suppose the
  961. next logical step would be to put wildcard expansion in the kernel.
  962.  
  963.      If any sort of fundamental change is to be made to the file system for
  964. POSIX, I'd prefer moving towards a non-kernel file system.  In addition to
  965. simplifying the design of the operating system, it also allows users to
  966. implement layers on top of the file system, such as case insensitivity,
  967. wildcard expansion, network file systems, access methods, etc.  Gee, is this
  968. starting to sound like streams?
  969.  
  970.      Personally, I'd rather that POSIX not change the appearance of the Unix
  971. file system; it's too big a task to do right involving a redesign rather 
  972. than a standardization.  This is clearly (at least to me) outside the scope 
  973. of an effort such as P1003.
  974. --------
  975. Rick Genter                 BBN Laboratories Inc.
  976. (617) 497-3848                10 Moulton St.  6/512
  977. rgenter@labs-b.bbn.COM  (Internet new)    Cambridge, MA   02238
  978. rgenter@bbn-labs-b.ARPA (Internet old)    seismo!bbncca!rgenter (UUCP)
  979.  
  980. Volume-Number: Volume 8, Number 13
  981.  
  982. From news  Sat Nov  1 17:59:06 1986
  983. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  984. Newsgroups: mod.std.unix
  985. Subject: Re: Case sensitive file names: what do other systems do
  986. Message-Id: <6194@ut-sally.UUCP>
  987. References: <6109@ut-sally.UUCP> <6029@ut-sally.UUCP>
  988. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  989. Date: 1 Nov 86 23:58:55 GMT
  990. Draft-9: 2.3.folding
  991.  
  992. From: nike!oliveb!3comvax!marcl (Marc Lavine at 3Com Corporation)
  993. Organization: 3Com Corp., Santa Clara, CA
  994. Date: Thu, 30 Oct 86 21:34:05 PST
  995.  
  996. In article <6109@ut-sally.UUCP> you write:
  997. >From: seismo!mcvax!guido (Guido van Rossum)
  998. >(BTW, I think Apple has also designed decent solutions to other
  999. >internationalization issues -- their date and time notation, and probably
  1000. >that for currency also, can be adapted to any of the European countries
  1001. >in which they sell computers!)
  1002.  
  1003. In case you weren't aware, PC-DOS also has a mechanism for changing
  1004. the date and time display formats based on what country you are in.
  1005. You can set the country by using a statement such as country = 031
  1006. (for the Netherlands) in the config.sys file.  DOS will use this
  1007. information when displaying dates and times (such as in directory
  1008. listings) and it is also available to application programs that want
  1009. to use it.  This has better support in DOS versions 3.0 and later than
  1010. in DOS 2.1.
  1011. -- 
  1012. Marc Lavine
  1013. UUCP:        ...{ihnp4|nike|hplabs|sun|glacier}!oliveb!3comvax!marcl
  1014.  
  1015. Volume-Number: Volume 8, Number 14
  1016.  
  1017. From news  Sat Nov  1 18:13:44 1986
  1018. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1019. Newsgroups: mod.std.unix
  1020. Subject: Re: job control
  1021. Message-Id: <6195@ut-sally.UUCP>
  1022. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1023. Date: 2 Nov 86 00:13:29 GMT
  1024. Draft-9: job.control
  1025.  
  1026. From: seismo!vrdxhq!inteloa!omepd!jimv (Jim Valerio)
  1027. Organization: Intel Corp. Hillsboro, Oregon
  1028. Date: Wed, 08 Oct 86 14:59:16 -0800
  1029.  
  1030. I object to one claim made by Henry Spencer on job suspension:
  1031. >Note that this suspension facility isn't very useful in  the  absence  of
  1032. >multiplexed  interaction  --  you  can't  *do* anything to a suspended process
  1033. >without access to another (real or virtual) terminal -- but the  two  concepts
  1034. >are nevertheless quite independent.  There is no need to confuse them.
  1035.  
  1036. Completely independent of terminal interfaces, job suspension is a
  1037. useful feature.  In particular, I have a batch queue mechanism in
  1038. mind on 4.2bsd UNIX which suspends batch jobs when the interactive
  1039. load gets too high, and restarts them (sending SIGCONT) when
  1040. the interactive load drops again.  This control can be done both
  1041. by an operator and by a daemon, and has no notion of controlling
  1042. terminal for the batch job.
  1043.  
  1044. As Henry indicates, job suspension and multi-process control are
  1045. two different items.  Even though job control may not be the only
  1046. or best way to implement multi-process control, job suspension is 
  1047. an important feature in its own right.
  1048. --
  1049. Jim Valerio    ogcvax!inteloa!omepd!jimv, tektronix!psu-cs!omepd!jimv
  1050.  
  1051. Volume-Number: Volume 8, Number 15
  1052.  
  1053. From news  Sat Nov  1 18:17:29 1986
  1054. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1055. Newsgroups: mod.std.unix
  1056. Subject: Re: file times and shell commands
  1057. Message-Id: <6196@ut-sally.UUCP>
  1058. References: <6177@ut-sally.UUCP>
  1059. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1060. Date: 2 Nov 86 00:17:15 GMT
  1061. Draft-9: 1003.2.newer
  1062.  
  1063. From: pyramid!utzoo!henry (Henry Spencer)
  1064. Date: Fri, 31 Oct 86 21:25:31 CST
  1065.  
  1066. > There doesn't appear to be any decent way to compare the last modified
  1067. > times of files from the shell...
  1068.  
  1069. Before everybody starts inventing their own names for this, it should be
  1070. noted that V8 already has a program for this, newer(1).  It takes two
  1071. filenames as arguments, and exits with status 0 if and only if either
  1072. (a) the first exists and the second does not, or (b) both exist and the
  1073. first's modification time is at least as recent as the second's.  Other-
  1074. wise it exits with non-zero status.  (The preceding two sentences are
  1075. essentially the whole of the manual page for it.)
  1076.  
  1077. Relatively few people have V8, but in the absence of any other precedent
  1078. for what this facility should like look, it seems reasonable to follow
  1079. V8's lead.
  1080.  
  1081. Here is an independent rewrite, done from the manual page and not the
  1082. code, by me, hereby placed in the public domain:
  1083.  
  1084. /*
  1085.  * newer - is first file newer than second?
  1086.  */
  1087.  
  1088. #include <stdio.h>
  1089. #include <sys/types.h>
  1090. #include <sys/stat.h>
  1091.  
  1092. main(argc, argv)
  1093. int argc;
  1094. char *argv[];
  1095. {
  1096.     struct stat file1;
  1097.     struct stat file2;
  1098.  
  1099.     if (argc != 3) {
  1100.         fprintf(stderr, "Usage: %s file1 file2\n", argv[0]);
  1101.         exit(2);
  1102.     }
  1103.  
  1104.     if (stat(argv[1], &file1) < 0)
  1105.         exit(1);
  1106.     if (stat(argv[2], &file2) < 0)
  1107.         exit(0);
  1108.     if (file1.st_mtime >= file2.st_mtime)
  1109.         exit(0);
  1110.     exit(1);
  1111. }
  1112.  
  1113.                 Henry Spencer @ U of Toronto Zoology
  1114.                 {allegra,ihnp4,decvax,pyramid}!utzoo!henry
  1115.  
  1116. Volume-Number: Volume 8, Number 16
  1117.  
  1118. From news  Sat Nov  1 18:24:54 1986
  1119. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1120. Newsgroups: mod.std.unix
  1121. Subject: Re: A convention for -file
  1122. Message-Id: <6197@ut-sally.UUCP>
  1123. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1124. Date: 2 Nov 86 00:24:43 GMT
  1125. Draft-9: 1003.2.getopt
  1126.  
  1127. From: seismo!unido!exunido!hmm (Hans-Martin Mosner)
  1128. Date: Sat, 1 Nov 86 03:10:54 +0100
  1129.  
  1130. One problem with all the methods for escaping -file is that wildcard expansion
  1131. by the shell will still get the real names.  So if I happen to have a file
  1132. "-rf" in my home directory and do a "rm *f", I'm out of luck :-)
  1133. I have no solution for this, though...
  1134.  
  1135.     Hans-Martin Mosner
  1136.     University of Dortmund (W. Germany)
  1137.  
  1138. Volume-Number: Volume 8, Number 17
  1139.  
  1140. From news  Sun Nov  2 10:57:53 1986
  1141. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1142. Newsgroups: mod.std.unix
  1143. Subject: Re: Case sensitive file names
  1144. Message-Id: <6198@ut-sally.UUCP>
  1145. References: <6002@ut-sally.UUCP> <5860@ut-sally.UUCP>
  1146. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1147. Date: 2 Nov 86 16:57:37 GMT
  1148. Draft-9: 2.3.folding
  1149.  
  1150. From: seismo!enea!chalmers.UUCP!jacob (Jacob Hallen)
  1151. Date: Sun, 2 Nov 86 01:38:02 -0100
  1152. Organization: Dept. of CS, Chalmers, Sweden
  1153.  
  1154. I would like to point out one small but very useful advantage with
  1155. case sensitive filenames.
  1156. In a directory containing many files its difficult to spot files
  1157. with names like makefile, readme and instructions. Given the names
  1158. Makefile, Readme and Instructions these files will appear first
  1159. in the listing where they are easy to find.
  1160.  
  1161. Jacob Hallen
  1162.  
  1163. Volume-Number: Volume 8, Number 18
  1164.  
  1165. From news  Mon Nov  3 13:33:07 1986
  1166. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1167. Newsgroups: mod.std.unix
  1168. Subject: Re: Case sensitive file names
  1169. Message-Id: <6204@ut-sally.UUCP>
  1170. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1171. Date: 3 Nov 86 19:32:55 GMT
  1172. Draft-9: 2.3.folding
  1173.  
  1174. From: guy@sun.com (Guy Harris)
  1175. Date: Mon, 3 Nov 86 00:54:24 PST
  1176.  
  1177. > I would like to point out one small but very useful advantage with
  1178. > case sensitive filenames.
  1179. > In a directory containing many files its difficult to spot files
  1180. > with names like makefile, readme and instructions. Given the names
  1181. > Makefile, Readme and Instructions these files will appear first
  1182. > in the listing where they are easy to find.
  1183.  
  1184. This is an advantage of file systems that permit both upper-case and
  1185. lower-case letters in file names.  File systems with case-sensitive file
  1186. names, and file systems with case-insensitive file names, can both permit
  1187. two cases of letters in file names.
  1188.  
  1189. [ Perhaps the third kind is called case-coercing? -mod ]
  1190.  
  1191. Volume-Number: Volume 8, Number 19
  1192.  
  1193. From news  Mon Nov  3 13:34:47 1986
  1194. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1195. Newsgroups: mod.std.unix
  1196. Subject: Re: mod.std.unix P1003 job control proposal
  1197. Message-Id: <6205@ut-sally.UUCP>
  1198. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1199. Date: 3 Nov 86 19:34:33 GMT
  1200. Draft-9: job.control
  1201.  
  1202. From: guy@sun.com (Guy Harris)
  1203. Date: Mon, 3 Nov 86 00:39:00 PST
  1204.  
  1205. > > >          If    the process is a session process group leader, the
  1206. > > >          SIGHUP signal may be sent to each process that has    a
  1207. > >                ^^^ should be replaced by the word "will"
  1208. > > >          process group ID equal to that of the calling process;
  1209.  
  1210. > "May" is used here to allow 4.2 systems to conform.  4.2 does not
  1211. > send SIGHUP on process group leader death.
  1212.  
  1213. 4.2 also doesn't have the notion of a "session process group leader".
  1214. However, when the moral equivalent of a "session process group leader" dies
  1215. in 4.2, 99.99% of the time it's a login shell, and "init" proceeds to do a
  1216. "vhangup" which - sends a SIGHUP!
  1217.  
  1218. > vhangup() is indeed desirable.  It is not required in POSIX because it is 
  1219. > not supported on System V and, indeed, breaks System V compatiblity.
  1220.  
  1221. Only if you define "System V compatibility" as "behaves exactly the same as
  1222. some particular implementation of System V".  "vhangup" does two things; it
  1223. sends a SIGHUP to the process group of the terminal in question (which is,
  1224. in fact, similar to what S5 does automatically) and it invalidates file
  1225. descriptors that refer to the terminal.
  1226.  
  1227. Some System V implementations do not do this, although they *do* clear the
  1228. terminal's process group, which causes all subsequent references to that
  1229. terminal through "/dev/tty" to get an error.  As such, the evidence
  1230. indicates that the reason they don't generally invalidate references to the
  1231. controlling terminal is *not* that they intended to leave such references
  1232. valid, but that they just didn't bother.
  1233.  
  1234. The only programs *I* can think of that would want to be able to reference
  1235. the terminal they were started from, even after the user who started them
  1236. logged out, are not the sort of programs I would like to have running on any
  1237. machine I'm involved with.  They tend to be called things like "Trojan
  1238. horses".
  1239.  
  1240. Volume-Number: Volume 8, Number 20
  1241.  
  1242. From news  Mon Nov  3 13:35:46 1986
  1243. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1244. Newsgroups: mod.std.unix
  1245. Subject: Re: The POSIX file system
  1246. Message-Id: <6206@ut-sally.UUCP>
  1247. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1248. Date: 3 Nov 86 19:35:34 GMT
  1249. Draft-9: 2.3.folding
  1250.  
  1251. From: guy@sun.com (Guy Harris)
  1252. Date: Mon, 3 Nov 86 00:50:03 PST
  1253.  
  1254. > I came into the Unix game late, but as I understand it, various flavors
  1255. > of Unix (such as MERT, Unix' real-time cousin), implemented the file system
  1256. > completely outside the kernel, I suppose as a library of routines.
  1257.  
  1258. Yes, and no.  They did implement it outside the kernel, although not in user
  1259. mode.  The file system was implemented by a process that ran in supervisor
  1260. mode and which received messages telling it to do things like read from or
  1261. write to a file.  Other operating systems, like RSX-11 and VMS, did the same
  1262. thing.  I believe the latest descendents of MERT, and VMS, have moved the
  1263. file system back into the kernel for performance reasons.
  1264.  
  1265. >      If any sort of fundamental change is to be made to the file system for
  1266. > POSIX, I'd prefer moving towards a non-kernel file system.  In addition to
  1267. > simplifying the design of the operating system, it also allows users to
  1268. > implement layers on top of the file system, such as case insensitivity,
  1269. > wildcard expansion, network file systems, access methods, etc.  Gee, is this
  1270. > starting to sound like streams?
  1271.  
  1272. POSIX does not specify whether the file system is implemented in the kernel
  1273. or not.  Even if a particular POSIX implementation has the file system in
  1274. the kernel, it can implement things like "case insensitivity, wildcard
  1275. expansion, network file systems, access methods", etc. on top of the file
  1276. system.  One system that is nearly POSIX-compatible, called the UNIX system,
  1277. has done the last three of these (wildcard expansion in the shell - this
  1278. could also be made into a user-mode library; network file systems, such as
  1279. the Newcastle Connection and IBIS, implemented as user-mode wrappers around
  1280. calls like "open", "read", "write", etc.; access methods such as C-ISAM,
  1281. that are just user-mode libraries).
  1282.  
  1283. Remember, POSIX is an *interface* specification, not an implementation.  The
  1284. fact that many (most?)  POSIX implementations, including the UNIX
  1285. implementation, will have the file system in the kernel says nothing about
  1286. POSIX.
  1287.  
  1288. Volume-Number: Volume 8, Number 21
  1289.  
  1290. From news  Mon Nov  3 13:39:27 1986
  1291. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1292. Newsgroups: mod.std.unix
  1293. Subject: Re: Case sensitive file names: what do other systems do
  1294. Message-Id: <6207@ut-sally.UUCP>
  1295. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1296. Date: 3 Nov 86 19:39:15 GMT
  1297. Draft-9: 2.3.folding
  1298.  
  1299. From: guy@sun.com (Guy Harris)
  1300. Date: Mon, 3 Nov 86 00:51:47 PST
  1301.  
  1302. > In case you weren't aware, PC-DOS also has a mechanism for changing
  1303. > the date and time display formats based on what country you are in.
  1304. > You can set the country by using a statement such as country = 031
  1305. > (for the Netherlands) in the config.sys file.
  1306.  
  1307. Yes.  Note, however, that this still doesn't do anything about the limited
  1308. character set permitted for MS-DOS files, so it seems you're stuck if you
  1309. want to give a file a name that includes characters not in the regular ASCII
  1310. set (or even some characters *in* the regular ASCII set).
  1311.  
  1312. Volume-Number: Volume 8, Number 22
  1313.  
  1314. From news  Mon Nov  3 13:59:44 1986
  1315. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1316. Newsgroups: mod.std.unix
  1317. Subject: editorial policy for mod.std.unix
  1318. Message-Id: <6208@ut-sally.UUCP>
  1319. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1320. Date: 3 Nov 86 19:59:31 GMT
  1321. Draft-9: mod.std.unix
  1322.  
  1323. A few weeks ago I promised a statement on editorial policy.  This is it.
  1324.  
  1325. I see the purpose of being the moderator of mod.std.unix as being to keep
  1326. the signal to noise ratio high, and I see five primary ways of doing this:
  1327.  
  1328. 1) eliminating duplicate information
  1329. 2) discouraging other noise
  1330. 3) correcting factual errors
  1331. 4) spelling correction and other production work
  1332. 5) encouraging diversity
  1333.  
  1334. Lately I've tried to accomplish these by
  1335.  
  1336. 1) rejections
  1337. 2) rejections and editorial comments
  1338. 3) editorial comments and occasional rejections
  1339. 4) direct textual correction and extra articles (such as this one)
  1340. 5) articles introducing new subjects
  1341.  
  1342.  
  1343. More comments on some of these methods later in this article, but 
  1344. first what happens to an article I receive for submission:
  1345.  
  1346. If it is rejected (about ten per cent are), I mail a reply either
  1347. explaining why or suggesting a better place to submit it (or, often,
  1348. both).  Sometimes this results in cycles of correspondence and even
  1349. sometimes in other articles by the same submittor that are posted.
  1350. This is desirable, but a rejection is almost always more work than
  1351. an acceptance, often much more.
  1352.  
  1353. The most common reason for rejection is duplication of information:
  1354. in that case I mail a reply pointing out something to the effect that
  1355. "what you wrote has already been remarked on by x and y in articles
  1356. that arrived after the one you're following up to:  do you still want
  1357. yours posted?"
  1358.  
  1359.  
  1360. If an article is approved, it is posted exactly as submitted with
  1361. the following possible exceptions:
  1362.  
  1363.     Some header lines of the posted article, such as Subject:,
  1364.     References, Keywords:, and Summary: are derived from header
  1365.     lines of the submission, such as Subject:, References:,
  1366.     In-Reply-To:, Keywords:, and Summary:.  Information from
  1367.     other header lines of the submission, such as From:, Date:,
  1368.     and Organization:, are preserved in the first few lines of
  1369.     the text of the posted article (the submittor's real name,
  1370.     if it can be found readily, is included in the From: line).
  1371.  
  1372.     Preliminary comments of the submittor that are addressed
  1373.     directly to the moderator (such as "submit this if you
  1374.     think it is appropriate") are removed.
  1375.  
  1376.     A Volume-Number: line is appended to the posted article.
  1377.  
  1378.     Readily apparent spelling errors (their vs. there, its
  1379.     vs. it's, here vs. hear, etc.) are corrected.  Network
  1380.     addresses (as found in signatures) that clearly will not
  1381.     work (such as user@ibm.arpa) are fixed, when known.
  1382.     Long or irrelevant signature lines are elided.
  1383.  
  1384.     Finally, comments by the moderator may be interspersed.
  1385.     They are always clearly marked.  [ Like this.  -mod ]
  1386.  
  1387. Other than as noted here, nothing is added to and nothing is deleted
  1388. from a submitted article when it is posted.
  1389.  
  1390. I've received a number of submissions that say something to the
  1391. effect of "post what parts of this you think appropriate."
  1392. Sorry, I don't do that.  I don't have time or inclination to edit for
  1393. content (just interspersing comments now and then takes a noticeable
  1394. amount of time), and the only way I could plausibly do it anyway would
  1395. be to edit an article and send it back to the submittor for approval
  1396. before posting.  The few times I've tried this have been dismal
  1397. failures due to the slow delivery speeds and high failure rate of the
  1398. UUCP mail network in addition to the amount of editing time involved.
  1399.  
  1400.  
  1401. Now, a few more involved comments, working more or less backwards.
  1402.  
  1403. I've gotten several letters lately regarding interspersed comments
  1404. by the moderator in recent articles (three for, two against).
  1405. One, which interpreted the interspersed comments as the moderator
  1406. taking sides, pointed out that that should be done in personally
  1407. signed (i.e., not signed by the moderator) followup articles.
  1408. In fact, that is my usual practice when I do take sides, as seen
  1409. in previous volumes of mod.std.unix.
  1410.  
  1411. Recent interspersed comments by the moderator have been for three
  1412. purposes:  to recapitulate information that the submittor doesn't seem
  1413. to have noticed but which nonetheless has been brought up at length by
  1414. other posters (this is to keep the other posters from having to say it
  1415. all again);  to correct factual errors (so other posters don't have to
  1416. do it); and to discourage ad hominem attacks and other irrelevant
  1417. rhetorical techniques that lead only to more noise and less technical
  1418. content.  Some have mistaken the last two of these for taking sides in
  1419. argument.  Those who have done so should examine the recent volume and
  1420. notice the lack of correlation between the side of the case sensitive
  1421. file name argument and article is on and the number of interspersed
  1422. comments by the moderator.
  1423.  
  1424.  
  1425. There has been a spate of submissions recently involving ad hominem
  1426. attacks (name calling, if you will) on opponents named or unnamed.
  1427. Those using personal names have been rejected.  Those not doing so have
  1428. been posted with comments by the moderator discouraging the practice.
  1429. Experience indicates to me that the former approach works better.  From
  1430. now on I will reject any article containing personal attacks on anyone
  1431. (or any group) named or unnamed, regardless of the content or lack
  1432. thereof of the rest of the article.  (If this happens to you, you can
  1433. always edit it yourself and resubmit it.)
  1434.  
  1435. It is evidently necessary to point out that there is a difference
  1436. between attacking an argument and attacking the person who made it.
  1437. It is ok to say an argument is "utterly loony."  It is not ok to
  1438. say someone who made an argument is "utterly loony" (or a cretin,
  1439. an idiot, lazy, etc.).
  1440.  
  1441. Why not?  Because such verbiage is irrelevant to a technical discussion
  1442. and will only cause the someone to at least be offended and probably
  1443. to followup with equally irrelevant verbiage, thus reducing the
  1444. technical content of the newsgroup not once but twice or many times.
  1445. It is probably unnecessary to point out that derogatory and untechnical
  1446. verbiage even applying to arguments should be used sparingly, if at all.
  1447.  
  1448. Why do I care?  Because I still suffer through reading net.unix
  1449. and net.unix-wizards and I don't want this newsgroup to descend
  1450. to that level.
  1451.  
  1452.  
  1453. By the way, remember that I don't get paid for moderating.  It takes
  1454. less time than some have thought (due to use of a really baroque
  1455. shell script), but that time is still taken from other things I'm
  1456. trying to do (like earn a living).
  1457.  
  1458. Finally, remember that the networks are flaky (and I've even been
  1459. known to manage to lose articles):  if you submit something and don't
  1460. see it in the newsgroup or get a reply in a week or two, it's probably
  1461. worth resubmitting it.
  1462.  
  1463. Moderator, John S. Quarterman
  1464.  
  1465. Volume-Number: Volume 8, Number 23
  1466.  
  1467. From news  Mon Nov  3 14:05:40 1986
  1468. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1469. Newsgroups: mod.std.unix
  1470. Subject: Job Control and Window Sizes: a common ground solution
  1471. Message-Id: <6209@ut-sally.UUCP>
  1472. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1473. Date: 3 Nov 86 20:05:27 GMT
  1474. Draft-9: job.control
  1475.  
  1476. From: dave%garfield.mun.cdn%ubc.csnet@RELAY.CS.NET (David Janes)
  1477. Date: Sun, 2 Nov 86 11:29:02 pst
  1478.  
  1479. The tty driver should provide a character i/o interface to the outside
  1480. world, and nothing else.
  1481.  
  1482. SIGWINCH, SIGSTOP, SIGCONT, etc. all have a similar purpose: to
  1483. inform the user process that there has been a change in the `environment' 
  1484. that the process is using. (The real purpose of SIGCONT, besides 
  1485. putting a process back in run queue, is to inform a process that its 
  1486. output screen has been dirtied.) In addition to signals, ioctls have been 
  1487. added to ask the tty driver about it's environment: how big is my screen, 
  1488. and so on.  All these are currently implemented as tty driver `aids', and 
  1489. really have no place there.
  1490.  
  1491. The Solution: an `environment' file should be available for
  1492. every tty device (including pseudo-ttys.)
  1493. All changes to the tty's environment are reflected into this
  1494. file. If the window size is changed (by whatever), the window
  1495. size part of that file is modified. If the screen is `dirtied',
  1496. a `dirty screen' flag is set, and so on. 
  1497.  
  1498. The environment file is a normal UNIX file. Some programs like init,
  1499. and so on may need to be modified to keep this file with the
  1500. right protections and so on, but this is basically minor.
  1501.  
  1502. Processes (including the kernel for some implementations) which change 
  1503. the environment of the tty merely update this file when they
  1504. make those changes.
  1505.  
  1506. One kernel change must be added. A SIGIO signal should be
  1507. sent when this file is modified to all interested processes (who
  1508. declare the interest via `fnctl' or some similar mechanism.)
  1509. This change can be justified outside the concept of `environments'
  1510. as a reasonable extension to the SIGIO facility.
  1511.  
  1512. The stopping and restarting of processes can be implemented 
  1513. sensibly and independantly of this scheme.
  1514.  
  1515. NOTES:
  1516. [1]    this could be added to system V to make job control as `nice'
  1517.     to the user as Berkeley job control, and still be entirely backwards
  1518.     compatable.
  1519.  
  1520. [2]    window management process (even if implemented in the kernel)
  1521.     simply write their changes to the environment file if
  1522.     the screen size gets changed.
  1523.  
  1524. [3]    simple window management, which doesn't redraw screens,
  1525.     can be implemented under the same scheme. Thus, many styles
  1526.     of `job control' (in the broad sense) may be implemented.
  1527.  
  1528. dave
  1529. --
  1530. .o.o.  The             UUCP: {utcsri,ihnp4,allegra,philabs}!garfield!dave
  1531. .:O:.  Mercenary     CDNNET: David Janes <dave@garfield.mun.cdn>
  1532. .o.o.  Programmer    "There can only be one!"
  1533.  
  1534. Volume-Number: Volume 8, Number 24
  1535.  
  1536. From news  Mon Nov  3 14:10:37 1986
  1537. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1538. Newsgroups: mod.std.unix
  1539. Subject: Re: Case sensitive file names
  1540. Message-Id: <6210@ut-sally.UUCP>
  1541. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1542. Date: 3 Nov 86 20:10:17 GMT
  1543. Draft-9: 2.3.folding
  1544.  
  1545. From: @SUMEX-AIM.ARPA:MRC@PANDA (Mark Crispin)
  1546. Date: Sun 2 Nov 86 10:54:35-PST
  1547. Postal-Address: 1802 Hackett Ave.; Mountain View, CA  94043-4431
  1548. Phone: +1 (415) 968-1052
  1549.  
  1550. Jacob Hallen -
  1551.  
  1552.      You missed the point, I think.  Very few if any of us in the
  1553. case-independence camp are arguing that case should be coerced into
  1554. all upper (e.g. TOPS-20) or all lower (e.g. what you have to do with
  1555. a Unix file server in a case-independent network environment).  You
  1556. should be allowed to create a file called ReadMe.
  1557.  
  1558.      What we are asking for is that if you try to access the ReadMe
  1559. file by specifying "readme" or "Readme" or "README" or even "rEADmE"
  1560. you should get the ReadMe file instead of a file not found error.
  1561. Furthermore, if you open "readme", "Readme", etc. for write, it should
  1562. supercede the ReadMe file and the resulting file should have the
  1563. original case of ReadMe.
  1564.  
  1565.      In other words, finding a file for read will match any case.
  1566. Finding a file for write will match any case, supercede any such older
  1567. file, and will preserve the case of that older file.  The only way to
  1568. change the case would be with rename; the source name would be case
  1569. independent but the destination case would be preserved.  Of course,
  1570. you could also change the case by deleting ReadMe and then opening
  1571. README for write...
  1572.  
  1573.      This gives you all the directory advantages of a case-dependent
  1574. filesystem.  The only "feature" you lose is the ability to create a
  1575. separate Readme, ReadMe, readme, and README set of files.  I personally
  1576. believe that anybody who creates files which differ from case deserves
  1577. to be shot or at least have his employment terminated with extreme
  1578. prejudice.  [ I suggest readers interpret that last sentence as a
  1579. hypothetical statement applying to none of them.  -mod ]
  1580.  
  1581.      There are filesystems that behave in this manner, and they are
  1582. quite pleasant to use.  Please, if you support case-dependence, don't
  1583. give the "mixed case filesystems" class of arguments.  The only two
  1584. arguments you really have are (1) it is a "feature" (however dubious)
  1585. that you can create Makefile and makefile as separate files in the
  1586. same directory, and (2) Unix does it this way.
  1587. -------
  1588.  
  1589. Volume-Number: Volume 8, Number 25
  1590.  
  1591. From news  Mon Nov  3 14:12:24 1986
  1592. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1593. Newsgroups: mod.std.unix
  1594. Subject: Re: case sensitive filenames
  1595. Message-Id: <6211@ut-sally.UUCP>
  1596. References: <5860@ut-sally.UUCP> <6107@ut-sally.UUCP>
  1597. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1598. Date: 3 Nov 86 20:12:11 GMT
  1599. Draft-9: 2.3.folding
  1600.  
  1601. From: seismo!utai!utcsri!mcgill-vision!mouse
  1602. Date: Thu, 30 Oct 86 05:28:02 EST
  1603.  
  1604. In article <6107@ut-sally.UUCP> mckenney@sri-unix.arpa (Paul E. McKenney) writes:
  1605. [that what he said above leaves unaddressed]
  1606. > o    Whether the eighth bit on characters within a filename should be
  1607. >     significant.  The developers of BSD 4.[23] must have had some good
  1608. >     reason for making it insignificant, but the only reason that comes
  1609. >     to mind is that most terminals cannot easily specify the eighth bit
  1610. >     (just like some older terminals cannot easily specify lower
  1611. >     case!).
  1612.  
  1613. There are also programs (the shell comes to mind) that use the eighth
  1614. bit for their own purposes.  I believe the shell uses it as a quote
  1615. indicator.  Although it is not relevant to filenames, I seem to recall
  1616. seeing some code along the lines of curses that used the eighth bit to
  1617. indicate highlighting.  Also, all the 7-bit characters can be specified
  1618. to (say) rm by careful use of quotes or backslashes.  With most
  1619. terminals, this is not possible for 8th-bit-set characters, and even if
  1620. the terminal and tty driver could handle it, as I implied above the
  1621. shell would strip it anyway.  So you *couldn't* do anything with such
  1622. files.
  1623.  
  1624.                     der Mouse
  1625.  
  1626. USA: {ihnp4,decvax,akgua,utzoo,etc}!utcsri!mcgill-vision!mouse
  1627.      think!mosart!mcgill-vision!mouse
  1628. Europe: mcvax!decvax!utcsri!mcgill-vision!mouse
  1629. ARPAnet: think!mosart!mcgill-vision!mouse@harvard.harvard.edu
  1630.  
  1631. Volume-Number: Volume 8, Number 26
  1632.  
  1633. From news  Mon Nov  3 14:14:56 1986
  1634. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1635. Newsgroups: mod.std.unix
  1636. Subject: Re: A convention for -file
  1637. Message-Id: <6212@ut-sally.UUCP>
  1638. References: <6110@ut-sally.UUCP> <6029@ut-sally.UUCP>
  1639. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1640. Date: 3 Nov 86 20:14:39 GMT
  1641. Draft-9: 1003.2.getopt
  1642.  
  1643. [ I'm not positive anything in this article has not been said before,
  1644. but it's a useful summary.  -mod ]
  1645.  
  1646. From: nike!pyramid!pyrtech!trwrb!desint!geoff (Geoff Kuenning)
  1647. Date: Wed, 29 Oct 86 01:02:04 pst
  1648. Organization: SAH Consulting, Manhattan Beach, CA
  1649.  
  1650. In article <6110@ut-sally.UUCP> weemba@brahms.berkeley.edu (Matthew P Wiener)
  1651. writes:
  1652.  
  1653. > Date: Fri, 24 Oct 86 14:27:50 PDT
  1654. > Organization: University of California, Berkeley
  1655. > In article <6029@ut-sally.UUCP> Mark Horton writes:
  1656. > >    Since many commands take names beginning with "-" as flags,
  1657. > >        file names beginning with "-" don't always work.
  1658. > There's a real easy fix to the current random collection of special
  1659. > flags that handle filenames beginning with a dash: always interpret
  1660. > two dashes at the beginning of a command line argument as the name for
  1661. > the file obtained by eliding the two dashes into one.  Thus
  1662.  
  1663. There're at least two reasons not to do this:  (1) it's unnecessary, and
  1664. (2) it conflicts with the standard already established for getopt(3).
  1665.  
  1666. It's unnecessary because you can *always* specify a file beginning with
  1667. "-" as "./-file".  I find this much easier to remember.
  1668.  
  1669. The second reason is that getopt(3) already explicitly defines an argument
  1670. of "--" as delimiting the end of the switches.  It is provided specifically
  1671. to handle the case when an argument begins with a dash.
  1672.  
  1673. Thus, for example, to grep(1) for commands that take a "-i" switch, we
  1674. would use:
  1675.  
  1676.     egrep -- -i /usr/man/u_man/man1/*
  1677.  
  1678. (Note that this applies only on System V;  BSD uses an older convention.
  1679. Also note that some System V documentation incorrectly lists the obsolete
  1680. "-e" switch for this purpose;  "-e" doesn't work, but "--" does.)
  1681. -- 
  1682.  
  1683.     Geoff Kuenning
  1684.     {hplabs,ihnp4}!trwrb!desint!geoff
  1685.  
  1686. Volume-Number: Volume 8, Number 27
  1687.  
  1688. From news  Mon Nov  3 18:56:58 1986
  1689. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1690. Newsgroups: mod.std.unix
  1691. Subject: Re: missing routines
  1692. Message-Id: <6215@ut-sally.UUCP>
  1693. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1694. Date: 4 Nov 86 00:56:45 GMT
  1695. Draft-9: 1003.2.getopt 1003.2.popen
  1696.  
  1697. From: gwyn@brl.arpa (VLD/VMB) (Douglas A. Gwyn)
  1698. Date:     Mon, 3 Nov 86 11:31:40 EST
  1699.  
  1700. getopt() -- this would depend on adoption of the AT&T "command language
  1701. syntax standard", which is in the domain of 1003.2.  This may happen.
  1702.  
  1703. curses -- this lies outside the scope of X3J11 and 1003.1.  It would
  1704. perhaps be worth standardizing in some other 1003.n working group.
  1705.  
  1706. popen() -- this was discussed by X3J11 and excluded, on the grounds that
  1707. non-UNIX vendors would find themselves under pressure from customers
  1708. to make popen() useful rather than just a stub, and the inability to
  1709. do this would lead to unhappiness.  Similar arguments against system()
  1710. were somewhat weaker, and although its return value semantics were
  1711. reworked, system() survived since it is implementable in a non-trivial
  1712. way far more often than popen().
  1713.  
  1714. I don't know what problems Mark could have with <memory.h>, since
  1715. it isn't in the X3J11 draft proposed standard, nor with memccpy(),
  1716. which doesn't exist.  If he meant memcpy(), X3J11 permits SVID
  1717. semantics for that now.  (The previous "Rob Pike special" is also
  1718. defined, under the name memmove(), since there was no consensus for
  1719. preferring either of the two possible specifications for the function.
  1720. I suspect in many implementations memmove() and memcpy() will be
  1721. synonymous.)
  1722.  
  1723. P.S.  The X3J11 draft proposed standard intended for public review and
  1724. comment has been printed, but has to receive some sort of official
  1725. approval (X3?) before it is actually sent out to the public.  This
  1726. will take something like a month longer than originally anticipated,
  1727. as I understand it.  Patience!
  1728.  
  1729. Volume-Number: Volume 8, Number 28
  1730.  
  1731. From news  Mon Nov  3 19:34:36 1986
  1732. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1733. Newsgroups: mod.std.unix
  1734. Subject: public-domain implementation of V8 "newer"
  1735. Message-Id: <6216@ut-sally.UUCP>
  1736. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1737. Date: 4 Nov 86 01:34:23 GMT
  1738. Draft-9: 1003.2.newer
  1739.  
  1740. From: gwyn@brl.arpa (VLD/VMB) (Douglas A. Gwyn)
  1741. Date:     Mon, 3 Nov 86 10:37:13 EST
  1742.  
  1743. /*
  1744.     newer -- test file modification dates
  1745.  
  1746.     last edit:    86/03/30    D A Gwyn
  1747. */
  1748. #ifndef lint
  1749. static char    SCCS_ID[] = "@(#)newer.c    1.1";
  1750. #endif
  1751.  
  1752. #include    <sys/types.h>
  1753. #include    <sys/stat.h>
  1754.  
  1755. #define    EXIT    _exit            /* non-STDIO exit(), if available */
  1756.  
  1757. #define    STDERR    2            /* standard error file descriptor */
  1758.  
  1759. extern void    EXIT();
  1760. extern int    stat(), write();
  1761.  
  1762. main( argc, argv )
  1763.     int            argc;
  1764.     char            *argv[];
  1765.     {
  1766.     static char        usage[] = "Usage: newer file1 file2\n";
  1767.     static struct stat    file1;    /* file1 statistics */
  1768.     static struct stat    file2;    /* file2 statistics */
  1769.  
  1770.     if ( argc != 3 )
  1771.         {            /* wrong number of arguments */
  1772.         (void)write( STDERR, usage, sizeof usage - 1 );
  1773.         EXIT( 3 );
  1774.         }
  1775.  
  1776.     if ( stat( argv[1], &file1 ) != 0 )
  1777.         EXIT( 2 );        /* file1 doesn't exist */
  1778.  
  1779.     if ( stat( argv[2], &file2 ) != 0 )
  1780.         EXIT( 0 );        /* file2 doesn't exist */
  1781.  
  1782. #ifdef lint
  1783.     return file1.st_mtime < file2.st_mtime ? 1 : 0;
  1784. #else
  1785.     EXIT( file1.st_mtime < file2.st_mtime ? 1 : 0 );
  1786. #endif
  1787.     }
  1788.  
  1789. Volume-Number: Volume 8, Number 29
  1790.  
  1791. From news  Mon Nov  3 19:37:06 1986
  1792. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1793. Newsgroups: mod.std.unix
  1794. Subject: Re: extern identifier length
  1795. Message-Id: <6217@ut-sally.UUCP>
  1796. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1797. Date: 4 Nov 86 01:36:54 GMT
  1798. Draft-9: 8.0
  1799.  
  1800. From: gwyn@brl.arpa (VLD/VMB) (Douglas A. Gwyn)
  1801. Date:     Mon, 3 Nov 86 11:42:19 EST
  1802.  
  1803. Neil Webber asked why POSIX does not suffer from the constraint that
  1804. led X3J11 to reluctantly require only 6-character monocase extern
  1805. identifier uniqueness.  I think the basic answer is that POSIX is
  1806. intended to be a UNIX, or UNIX look-alike, interface standard, and
  1807. that "layered" implementations on top of other operating systems,
  1808. while not precluded by POSIX, are not specifically catered to.
  1809. Thus, a much narrower class of operating system linkers and object
  1810. module formats is involved, and it is felt that those few that don't
  1811. already support long extern identifiers can be changed to do so,
  1812. since the POSIX implementors on such systems are in a position to
  1813. accomplish this (unlike implementors of many layered systems).
  1814.  
  1815. Volume-Number: Volume 8, Number 30
  1816.  
  1817. From news  Mon Nov  3 19:38:54 1986
  1818. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1819. Newsgroups: mod.std.unix
  1820. Subject: Re: The POSIX file system
  1821. Message-Id: <6219@ut-sally.UUCP>
  1822. References: <6206@ut-sally.UUCP>
  1823. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1824. Date: 4 Nov 86 01:38:41 GMT
  1825. Draft-9: 2.3.folding
  1826.  
  1827. From: jbs@eddie.mit.edu (Jeff Siegal)
  1828. Date: Mon, 3 Nov 86 17:44:44 EST
  1829. Organization: MIT, EE/CS Computer Facilities, Cambridge, MA
  1830.  
  1831. In article <6206@ut-sally.UUCP> guy@sub.com (Guy Harris)
  1832. >[...]  The file system was implemented by a process that ran in supervisor
  1833. >mode and which received messages telling it to do things like read from or
  1834. >write to a file.  Other operating systems, like RSX-11 and VMS, did the same
  1835. >thing.  I believe the latest descendents of MERT, and VMS, have moved the
  1836. >file system back into the kernel for performance reasons.
  1837.  
  1838. Quite far off, actually (at least in the case of VMS).  Current
  1839. versions of VMS have replaced the disk filesystem ACP (which
  1840. previously was a separate process) with the XQP, a separate instance
  1841. of which exists in _each_process_ (the code is shared).  This resulted
  1842. in some significant performance _improvements_, and a filesystem which
  1843. extends fairly easily and quite completely (including record/file
  1844. locking, etc.) over different machines (using DEC's inter-system CI
  1845. bus).
  1846.  
  1847. Jeff Siegal
  1848.  
  1849. Volume-Number: Volume 8, Number 31
  1850.  
  1851. From news  Tue Nov  4 11:23:07 1986
  1852. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1853. Newsgroups: mod.std.unix
  1854. Subject: Re: The POSIX file system
  1855. Message-Id: <6224@ut-sally.UUCP>
  1856. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1857. Date: 4 Nov 86 17:22:50 GMT
  1858. Draft-9: 2.3.folding
  1859.  
  1860. From: garry@tcgould.tn.cornell.edu (Garry Wiegand)
  1861. Date: Tue, 4 Nov 86 00:45:47 EST
  1862. Organization: Cornell Engineering && Flying Moose Graphics
  1863.  
  1864. In a recent article jbs@eddie.mit.edu (Jeff Siegal) wrote:
  1865. >In article <6206@ut-sally.UUCP> guy@sub.com (Guy Harris)
  1866. >>[...]  I believe the latest descendents of MERT, and VMS, have moved the
  1867. >>file system back into the kernel for performance reasons.
  1868. >
  1869. >Quite far off, actually (at least in the case of VMS).  Current
  1870. >versions of VMS have replaced the disk filesystem ACP (which
  1871. >previously was a separate process) with the XQP, a separate instance
  1872. >of which exists in _each_process_ (the code is shared).  [...]
  1873.  
  1874. Sorry to quibble, but the original posting was accurate. There is now
  1875. a piece of the kernel which Dec has labelled the "XQP". The code runs
  1876. in the context of a user-process, as is indistinguishably true of every
  1877. other system service. The stated reason for making the move was increased
  1878. performance. That the cluster software was easier to write was probably
  1879. a bonus.
  1880.  
  1881. garry wiegand   (garry%cadif-oak@cu-arpa.cs.cornell.edu)
  1882.  
  1883. Volume-Number: Volume 8, Number 32
  1884.  
  1885. From news  Tue Nov  4 11:28:35 1986
  1886. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1887. Newsgroups: mod.std.unix
  1888. Subject: Re: file times and shell commands
  1889. Message-Id: <6225@ut-sally.UUCP>
  1890. References: <6177@ut-sally.UUCP>
  1891. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1892. Date: 4 Nov 86 17:28:22 GMT
  1893. Draft-9: 1003.2.newer
  1894.  
  1895. From: arnold@emory.arpa  (Arnold D. Robbins)
  1896. Date: Mon, 3 Nov 86 13:20:48 EST
  1897. Organization: Math & Computer Science, Emory University, Atlanta
  1898.  
  1899. In article <6177@ut-sally.UUCP>:
  1900. >From: mayer@rochester.arpa  (Jim Mayer)
  1901. >Date: Wed, 29 Oct 86 22:15:54 est
  1902. >
  1903. >[....]
  1904. >
  1905. >There doesn't appear to be any decent way to compare the last modified
  1906. >times of files from the shell.  I have written programs to do this,
  1907. >but that makes any scripts I write using the programs essentially
  1908. >unexportable.
  1909. >
  1910. >There are several approaches to fixing the problem:
  1911. >
  1912. >1. Extend the "test" command, perhaps by borrowing the "-newer" syntax
  1913. >   of "find".
  1914. >[....]
  1915.  
  1916. The Korn shell did just this. In addition to the standard options listed
  1917. in the (System V) test(1) man page, there are four more options:
  1918.  
  1919.     -L    [ -L file ]; true if file is a symbolic link
  1920.     -nt    [ file1 -nt file2 ]; true if file1 is newer than file 2
  1921.     -ot    [ file1 -ot file2 ]; true if file1 is older than file 2
  1922.     -ef    [ file1 -ef file2 ]; true if file1 and file 2 same device/inode
  1923.  
  1924. The -L option will always be false on System V. The -ef goes through symbolic
  1925. links; you have to use [ f1 -ef f2 -a ! -L f1 -a ! -L f2 ] to be absolutely
  1926. sure.
  1927.  
  1928. >[....]
  1929. >All three work, however the second points out a problem with the
  1930. >Bourne shell: there is no "not" operator!
  1931.  
  1932. As has been pointed out in other forums, the S5 /bin/sh and the ksh both
  1933. support shell functions:
  1934.  
  1935.     not () {        # also "function not {" in ksh
  1936.         if "$@"
  1937.         then return 1
  1938.         else return 0
  1939.         fi
  1940.     }
  1941.  
  1942.     if not x y z a ...
  1943.     then
  1944.         whatever
  1945.     fi
  1946.  
  1947. Older /bin/sh versions leave you no choice:
  1948.  
  1949.     if x y z a ...
  1950.     then    :
  1951.     else
  1952.         whatever
  1953.     fi
  1954.  
  1955. A standard "not" operator would be nice, but shell functions and the test
  1956. stuff outlined above would be even better! (No, let's not start a debate
  1957. about shell functions vs. aliases vs. other shell features. We've already
  1958. been through that once on unix-wizards a while back.)
  1959. -- 
  1960. Arnold Robbins
  1961. CSNET:    arnold@emory    BITNET:    arnold@emoryu1
  1962. ARPA:    arnold%emory.csnet@csnet-relay.arpa
  1963. UUCP:    { akgua, decvax, gatech, sb1, sb6, sunatl }!emory!arnold
  1964.  
  1965. Volume-Number: Volume 8, Number 33
  1966.  
  1967. From news  Tue Nov  4 11:36:36 1986
  1968. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  1969. Newsgroups: mod.std.unix
  1970. Subject: Re: Case sensitive file names
  1971. Message-Id: <6226@ut-sally.UUCP>
  1972. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  1973. Date: 4 Nov 86 17:36:22 GMT
  1974. Draft-9: 2.3.folding
  1975.  
  1976. From: chris@mimsy.umd.edu (Chris Torek)
  1977. Date: Tue, 4 Nov 86 07:33:44 EST
  1978.  
  1979. We seem to have three proposals:
  1980.  
  1981. CS: Case sensitive file systems.  This is what all major Unix variants
  1982.     (V6, V7, SysIII, SysV, 2BSD, and 4BSD) now support.
  1983.  
  1984. CC: Case coercive file systems (file names forced to all upper or all
  1985.     lower case).
  1986.  
  1987. CR: Case retaining but otherwise insensitive file systems (new names
  1988.     are created according to the given case; matches are not case
  1989.     sensitive).
  1990.  
  1991. I sincerely hope that no one is seriously suggesting POSIX adopt
  1992. CC: no one seems to like such systems much.  That leaves CS and
  1993. CR.  The case for CR appears to be that those who have used both
  1994. CS and CR prefer CR.  This may be true; I have seen no studies,
  1995. but the anecdotes do seem to favour it.  I have used such a system,
  1996. and did not think it so wonderful, but for the sake of argument,
  1997. let us assume that CR really is objectively better than CS---so
  1998. much so that 5BSD and System V Release N+1 will have CR style file
  1999. systems.  Fine.
  2000.  
  2001. But as I understand it, POSIX is intended to be an interface
  2002. specification for something that resembles `Unix' (whatever `Unix'
  2003. may be).  If that is indeed the case, the only sensible choice is
  2004. CS, for, as I noted above, this is what all major Unix variants
  2005. *do*.  *They all agree:* file names are case sensitive.  Should
  2006. we make standard something that no one uses?  I say no!  When
  2007. 5BSD and Release N+1 come out, then we can create a new standard
  2008. to describe these wonderful new systems, but until then, let
  2009. us write something that describes what we have now.
  2010.  
  2011. I believe that the first standard for *anything* that already exists
  2012. should describe the existing implementations, at least wherever
  2013. they agree.  Afterward, feel free to invent new improved standards,
  2014. so as to foist progress upon vendors.  Indeed, it might not be a
  2015. bad idea to publish two standards virtually simultaneously: That
  2016. Which Is, and That Which Should Be.  But list first That Which Is.
  2017.  
  2018. [ There really are (or at least were) two discussions going on here:
  2019. one about what should be in POSIX, the other about what UNIX should do.
  2020. I haven't seen any recent arguments that POSIX should do anything but
  2021. reflect what UNIX currently does, i.e., case sensitive file names
  2022. (really file names as uninterpreted byte streams).  -mod ]
  2023.  
  2024. -- 
  2025. In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
  2026. UUCP:    seismo!umcp-cs!chris
  2027. CSNet:    chris@umcp-cs        ARPA:    chris@mimsy.umd.edu
  2028.  
  2029. Volume-Number: Volume 8, Number 34
  2030.  
  2031. From news  Tue Nov  4 13:17:49 1986
  2032. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2033. Newsgroups: mod.std.unix
  2034. Subject: Re: Case sensitive file names
  2035. Message-Id: <6229@ut-sally.UUCP>
  2036. References: <6210@ut-sally.UUCP>
  2037. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2038. Keywords: horse dead UNIX dmr small simple
  2039. Summary: UNIX (dmr) philosophy -- and beating a dead horse
  2040. Date: 4 Nov 86 19:17:34 GMT
  2041. Draft-9: 2.3.folding
  2042.  
  2043. From: campbell%maynard.UUCP@harvisr.harvard.edu (Larry Campbell)
  2044. Date: Tue, 4 Nov 86 10:19:11 EST
  2045. Organization: The Boston Software Works, Inc.
  2046.  
  2047. >From: @SUMEX-AIM.ARPA:MRC@PANDA (Mark Crispin)
  2048.  
  2049. >     What we are asking for is that if you try to access the ReadMe
  2050. >file by specifying "readme" or "Readme" or "README" or even "rEADmE"
  2051. >you should get the ReadMe file instead of a file not found error.
  2052. >Furthermore, if you open "readme", "Readme", etc. for write, it should
  2053. >supercede [sic] the ReadMe file and the resulting file should have the
  2054. >original case of ReadMe.
  2055. >
  2056. >     In other words, finding a file for read will match any case.
  2057. >Finding a file for write will match any case, supercede [sic] any such older
  2058. >file, and will preserve the case of that older file.  The only way to
  2059. >change the case would be with rename; the source name would be case
  2060. >independent but the destination case would be preserved.  Of course,
  2061. >you could also change the case by deleting ReadMe and then opening
  2062. >README for write...
  2063.  
  2064. >     There are filesystems that behave in this manner, and they are
  2065. >quite pleasant to use.  Please, if you support case-dependence, don't
  2066. >give the "mixed case filesystems" class of arguments.  The only two
  2067. >arguments you really have are (1) it is a "feature" (however dubious)
  2068. >that you can create Makefile and makefile as separate files in the
  2069. >same directory, and (2) Unix does it this way.
  2070.  
  2071. Sorry to keep beating this dead horse, but some people just haven't
  2072. yet caught on to one of the principle design fundamentals of UNIX.
  2073.  
  2074.     "Keep it small and simple."
  2075.  
  2076. As has already been pointed out, the system (I'm deliberately avoiding
  2077. the term "kernel") treats filenames as uninterpreted strings of bytes.
  2078. Adding case folding to the system adds complexity to the system that
  2079. provides only a tiny benefit (is it really that hard to type the correct
  2080. filename?).
  2081.  
  2082. I think everyone agrees that creating "Makefile" and "makefile" in the
  2083. same directory is braindamaged.  What I disagree with is the notion
  2084. that the system should be in the business of preventing this.  Should
  2085. the C compiler enforce a certain Hamming distance between identifiers?
  2086.  
  2087. Note also that case folding is only "simple" in some languages.  As has
  2088. already been pointed out, there are languages (like German) where case
  2089. folding is decidedly complex.  And in an international environment, the
  2090. case folding algorithm may need to be different for each user.
  2091.  
  2092. I wish I could remember who said this, but someone once pointed out
  2093. that "One of the reasons Dennis Ritchie is a genius is that whenever
  2094. someone says `Wouldn't it be nice if UNIX had feature X?', instead
  2095. of saying `Wow, yeah, I'll go hack that in', he says, `Yep, sure would.'"
  2096. -- 
  2097. Larry Campbell       MCI: LCAMPBELL          The Boston Software Works, Inc.
  2098. UUCP: {alliant,wjh12}!maynard!campbell      120 Fulton Street, Boston MA 02109
  2099. ARPA: campbell%maynard.uucp@harvisr.harvard.edu     (617) 367-6846
  2100.  
  2101. Volume-Number: Volume 8, Number 35
  2102.  
  2103. From news  Tue Nov  4 21:13:05 1986
  2104. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2105. Newsgroups: mod.std.unix
  2106. Subject: Re: case sensitive filenames
  2107. Message-Id: <6232@ut-sally.UUCP>
  2108. References: <5860@ut-sally.UUCP> <6107@ut-sally.UUCP>, <6211@ut-sally.UUCP>
  2109. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2110. Date: 5 Nov 86 03:12:53 GMT
  2111. Draft-9: 2.3.folding
  2112.  
  2113. From: pyramid!utzoo!henry (Henry Spencer)
  2114. Date: Tue, 4 Nov 86 19:48:36 CST
  2115.  
  2116. > There are also programs (the shell comes to mind) that use the eighth
  2117. > bit for their own purposes.  I believe the shell uses it as a quote
  2118. > indicator...
  2119.  
  2120. I believe that in recent times, AT&T has made strenuous efforts to stamp
  2121. out such extraneous uses of the 8th bit, so that full 8-bit character sets
  2122. could be used.  I know other vendors have as well.  So this objection will
  2123. not be valid much longer, even if it remains valid today.
  2124.  
  2125.                 Henry Spencer @ U of Toronto Zoology
  2126.                 {allegra,ihnp4,decvax,pyramid}!utzoo!henry
  2127.  
  2128. Volume-Number: Volume 8, Number 36
  2129.  
  2130. From news  Wed Nov  5 08:55:11 1986
  2131. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2132. Newsgroups: mod.std.unix
  2133. Subject: Re: mod.std.unix P1003 job control proposal (now vhangup, auto-nice)
  2134. Message-Id: <6234@ut-sally.UUCP>
  2135. References: <6192@ut-sally.UUCP>
  2136. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2137. Date: 5 Nov 86 14:54:41 GMT
  2138. Draft-9: job.control
  2139.  
  2140. From: seismo!munnari!yabbie.rmit.oz!rcodi@sally.utexas.edu (Ian Donaldson)
  2141. Date: Tue, 4 Nov 86 09:05:35ligt 
  2142.  
  2143. > From: pyramid!nsc!hplabs!hpda!hpisoa1!davel (Dave Lennert)
  2144. > Date: Wed, 29 Oct 86 10:07:47 -0800
  2145.  
  2146. I spoke about HUP's sent when an _exit is done, not realising at the time
  2147. that it is only done by a sesion-group leader, and only to
  2148. the same process-group, obviously (it is now) excluding those
  2149. processes running in background.
  2150.  
  2151. > This key feature is preserved in the POSIX specification.  Perhaps I
  2152. > don't understand your statement.
  2153.  
  2154. I withdraw the statement.
  2155.  
  2156. In the same article, I wrote: 
  2157.  
  2158. > > vhangup() will provide clean terminals on a bsd system,
  2159. > > and we have improved vhangup further to not just turn off READ/WRITE bits,
  2160. > > but to actually redirect the file references to /dev/null (which has
  2161. > > the advantage of also dropping DTR reliably). 
  2162. > vhangup() is indeed desirable.  It is not required in POSIX because it is 
  2163. > not supported on System V and, indeed, breaks System V compatiblity.
  2164.  
  2165. I forgot to add the other advantage of my vhangup(), in that
  2166. any read's by processes from the terminal return EOF rather than
  2167. a read-error, and any writes go to the bit-bucket, rather than
  2168. producing a write-error.  This is very desirable in stuations where
  2169. you have started something in foreground (eg: make, without redirecting I/O) and
  2170. you want it to -complete- in background, rather than crash because
  2171. it cannot write diagnostics or output...
  2172. Of course, you cannot -see- the output, but that is another topic
  2173. (along the lines of login-suspension - see ravings in net.unix-wizards
  2174. about 6 months ago).
  2175.  
  2176. Some programs of course would need to be trained to not repeatedly
  2177. read beyond EOF assuming somebody is hitting ^D, otherwise they
  2178. will do-so forever.  Berkeley 4.2bsd Csh and Mail already have been
  2179. trained, and exit if a certain large number of consecutive EOF's are read.
  2180. There are probably others.
  2181. We have not felt need to modify any more programs, though there is the stray
  2182. program that just sits there all day, once a fortnight perhaps.
  2183. Readnews seems to be an often offendor (2.10.3).
  2184.  
  2185. I also wrote:
  2186.  
  2187. > > Infinite-loop processes don't cause problems with system-response because
  2188. > > they are automatically niced (something that is long-needed in UNIX 
  2189. > > systems).
  2190. > Note that this is NOT desirable on, e.g., realtime systems where that
  2191. > long running process may be critical.  I'm also getting tired of having
  2192. > my rwhod reniced automatically.
  2193. >     Dave Lennert                ucbvax!hpda!davel               [UUCP]
  2194.  
  2195. Granted, it probably -isn't- desirable at some sites, or perhaps even
  2196. some particular users at certain sites, but it is necessary for
  2197. any site that has lots of cpu-intensive tasks mixed in with lots
  2198. of heavily interactive (eg: vi) sessions.
  2199.  
  2200. The auto-nicing that I have seen in 4.2 (not sure who added it) whereby
  2201. a process gets niced by 1 every 40 cpu seconds until the nice reaches +15
  2202. is NOT the sort of thing I am talking about.  The obvious problem with
  2203. this algorithm is that it makes no distinctions on what it nices -
  2204. it nices compiles (ok, good), but it also nices vi (bad), and eventually
  2205. nices the shell (worse, as everything you start inherits the nice
  2206. from the shell).  It also makes no distinction on -who- it nices;
  2207. except that root is never niced (neither are other users, provided
  2208. they are running at elevated priority).  This means that all non-root owned
  2209. daemons get niced also.
  2210.  
  2211. I experimentally implemented a smarter, but still very simple auto-nicing
  2212. algorithm that works well here nearly all of the time:  it is an
  2213. extension of the one above, except that interactive processes are
  2214. identified very simply by the fact that they do tty input (sounds logical).
  2215.  
  2216. A process is only niced if it consumes N cpu seconds since last doing
  2217. some tty input (we have N set small, to 5 cpu seconds). 
  2218. This means that an interactive shell is rarely ever
  2219. niced, and vi always has a good response time regardless of what
  2220. else is going on in the system (unless you're doing complicated
  2221. length string searches or the like).  Another "quick hack" allowed
  2222. all uid's less-than a certain number (say 2) to be immue to
  2223. auto-nicing - this got around the daemon problem, altough very
  2224. unelegantly.
  2225.  
  2226. The kernel mods were trivial, amounting to less than a screenful
  2227. of code all-up.  In a nutshell it was one mod to clock.c 
  2228. (kern_clock.c for 4bsd), to increment the nice if the conditions
  2229. warrant it; and another mod to ttyread() to reset the nice
  2230. and the accumulated cpu time since the last ttyread().
  2231.  
  2232. I have watched people breath discontent over the net with vi's response time, 
  2233. and all the hack's that they've tried (including a suid root pre-elevate-nice 
  2234. command).  Vi is only mentioned because it is common to almost all
  2235. systems.  The problem is much deeper than just vi.
  2236.  
  2237. Any system that treats non-interactive jobs the same as interactive jobs
  2238. is sure to have a rotten response-time.  Interactive jobs are not
  2239. jobs that are just "associated" with a terminal either.  People
  2240. expecting to do half-hour compiles from the terminal soon learn
  2241. that there is no advantage in doing-so, and it is better to come back
  2242. later and free up the terminal for somebody else to use (productively).
  2243.  
  2244. > Note that this is NOT desirable on, e.g., realtime systems where that
  2245. > long running process may be critical.  
  2246.  
  2247. Perhaps, but then my version of auto-nice may solve most of such
  2248. problems anyway.  If the program on the real-time system communicates
  2249. with other than tty's in an "interactive" fashion, then this could be 
  2250. incorporated into the algorithm quite easily.  Lots of things could be 
  2251. incorporated into the algorithm - such as a per-user nice-rate and
  2252. nice-limit.
  2253.  
  2254. People will never learn - just telling them to "nice" their jobs
  2255. rarely works.  They either forget to, or just don't do it on principle.
  2256.  
  2257. SVR2 has no way of renicing a job other than restarting it
  2258. (counter-productive), and telling somebody to change their nice on the
  2259. humungous compile they just started after they've left and gone home is
  2260. also often very difficult (read impossible), leaving a very slow
  2261. system.
  2262.  
  2263. Vi and similar programs on our systems nearly always have a
  2264. good response time - the times that they don't would most probably
  2265. be attributed to excess paging and swapping activity and filesystem I/O.
  2266.  
  2267. > I'm also getting tired of having
  2268. > my rwhod reniced automatically.
  2269.  
  2270. Maybe it wouldn't be with the algoritm I mentioned (I've never used
  2271. rwhod so I can't answer that).
  2272.  
  2273. At least auto-nicing of some variety I have mentioned should
  2274. be provided as a standard -option-.  Those who don't like it
  2275. can turn it off, but I'll bet your boots that they will be
  2276. in a minority once they've tried it.  Not having the option
  2277. at all is not very nice (excuse the pun :-).
  2278.  
  2279. Ian Donaldson
  2280.  
  2281. Volume-Number: Volume 8, Number 37
  2282.  
  2283. From news  Wed Nov  5 09:03:56 1986
  2284. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2285. Newsgroups: mod.std.unix
  2286. Subject: Re: case sensitive file names
  2287. Message-Id: <6235@ut-sally.UUCP>
  2288. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2289. Date: 5 Nov 86 15:03:27 GMT
  2290. Draft-9: 2.3.folding
  2291.  
  2292. From: seismo!hadron!jsdy@sally.utexas.edu (Joseph S. D. Yao)
  2293. Cc: jsdy@sally.utexas.edu
  2294. Date: Tue, 4 Nov 86 21:16:04 est
  2295.  
  2296. >From: @SUMEX-AIM.ARPA:MRC@PANDA  (Mark Crispin)
  2297. >Date: Mon 20 Oct 86 05:42:50-PDT
  2298. >     On the DEC-20 and Unix file servers, it's single case and hyphens.
  2299. >I end up using something like "tokyo-paper.first-draft".
  2300.  
  2301. This sounds like a local convention.  Unix filenames may contain
  2302. any ASCII character, including upper and lower cases, except for
  2303. NUL and '/'.
  2304.  
  2305. >nobody uses mixed case on our Unix-based file server.  The Leaf (Xerox
  2306. >Lisp machine file access protocol) server on Unix was modified to coerce
  2307. >all filenames to be entirely lowercase on the Unix machine's disk and to
  2308. >coerce it back to all uppercase in the other direction.  There were/are
  2309. >two reasons:
  2310. > (1) transfers to/from the third file server, a DEC-20, were hopeless
  2311. >     otherwise since the Unix system would insist that two identical files
  2312. >     were different because the case of the names didn't match
  2313. > (2) the users found the case dependence to be a serious problem.
  2314.  
  2315. We now see the source of the discrepancy.  (2) obviously came first:
  2316. people who were used to the older (I did NOT say antique ;-) ) file
  2317. system on the 20's, and wanted not to worry about filename conversion,
  2318. tried to make the restrictions on Unix file names a combination of
  2319. the DEC-20's and what they PERCEIVED as the Unix conventions.  This
  2320. indubitably has caused further consternation among people familiar
  2321. with one or the other but not both systems.
  2322.  
  2323. The Leaf server apparently gives this version of Unix a modified file
  2324. system with an attempt at monocase restriction.  I have no idea how
  2325. prevalent it is, but my off-hand observation is "not very."  I don't
  2326. think arguments based on what it does can be very compelling.
  2327. -- 
  2328.  
  2329.     Joe Yao        hadron!jsdy@seismo.{CSS.GOV,ARPA,UUCP}
  2330.             jsdy@hadron.COM (not yet domainised)
  2331.  
  2332. Volume-Number: Volume 8, Number 38
  2333.  
  2334. From news  Wed Nov  5 09:06:09 1986
  2335. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2336. Newsgroups: mod.std.unix
  2337. Subject: Re: The POSIX file system
  2338. Message-Id: <6236@ut-sally.UUCP>
  2339. References: <6193@ut-sally.UUCP>
  2340. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2341. Summary: No matter where the layer, the layers idea is good.
  2342. Date: 5 Nov 86 15:05:40 GMT
  2343. Draft-9: 2.3.folding
  2344.  
  2345. From: seismo!hadron!jsdy@sally.utexas.edu (Joseph S. D. Yao)
  2346. Date: Tue, 4 Nov 86 23:03:27 est
  2347. Organization: Hadron, Inc., Fairfax, VA
  2348.  
  2349. In article <6193@ut-sally.UUCP>:
  2350. >From: rgenter@labs-b.bbn.com (Rick Genter)
  2351. >Date: 30 Oct 86 09:57:13 EST (Thu)
  2352. >
  2353. >... various flavors of Unix (such as MERT, Unix' real-time cousin), 
  2354. >implemented the file system completely outside the kernel, I suppose as a
  2355. >library of routines.  ...
  2356. >     If any sort of fundamental change is to be made to the file system for
  2357. >POSIX, I'd prefer moving towards a non-kernel file system.  In addition to
  2358. >simplifying the design of the operating system, it also allows users to
  2359. >implement layers on top of the file system, such as case insensitivity,
  2360. >wildcard expansion, network file systems, access methods, etc.  Gee, is this
  2361. >starting to sound like streams?
  2362.  
  2363. The details of implementation, such as in or out of the kernel,
  2364. and streams, are really irrelevant.  Having the file system as
  2365. a separate, layerable part of the system interface as a whole
  2366. is a wonderful idea.  This conforms with ideas of modularity,
  2367. motherhood, apple pie, and so forth.  Both 4bsd and s5 have, in
  2368. succeeding implementations, tried to isolate FS code at least
  2369. by file in the os:sys directories.
  2370.  
  2371. Recent versions of the Unix(R) operating systems even implement
  2372. file system switches, which are the next great step, and would
  2373. probably do everything that Rick or anyone else would like, even
  2374. to mounting MS-DOS, VMS, TOPS-20, or whatever file systems.  (Yes,
  2375. even 4.2+ FS's on traditional Unix FS's!)  But I haven't seen much
  2376. about them since they were first ballyhooed; and AT&T even seems
  2377. to be withdrawing theirs.  (They won't document it, saying that
  2378. they don't want anyone to use it because it might go away.)  Perhaps
  2379. this just means that they're thinking of adopting the Sun version
  2380. as a "standard"?  Does anyone know anything about this?
  2381. -- 
  2382.  
  2383.     Joe Yao        hadron!jsdy@seismo.{CSS.GOV,ARPA,UUCP}
  2384.             jsdy@hadron.COM (not yet domainised)
  2385.  
  2386. Volume-Number: Volume 8, Number 39
  2387.  
  2388. From news  Wed Nov  5 09:20:53 1986
  2389. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2390. Newsgroups: mod.std.unix
  2391. Subject: Re: A convention for -file
  2392. Message-Id: <6237@ut-sally.UUCP>
  2393. References: <6197@ut-sally.UUCP>
  2394. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2395. Summary: why?
  2396. Date: 5 Nov 86 15:20:23 GMT
  2397. Draft-9: 1003.2.getopt
  2398.  
  2399. From: seismo!hadron!jsdy@sally.utexas.edu (Joseph S. D. Yao)
  2400. Date: Tue, 4 Nov 86 23:13:22 est
  2401. Organization: Hadron, Inc., Fairfax, VA
  2402.  
  2403. In article <6197@ut-sally.UUCP>:
  2404. >From: seismo!unido!exunido!hmm (Hans-Martin Mosner)
  2405. >Date: Sat, 1 Nov 86 03:10:54 +0100
  2406. >                     ...  So if I happen to have a file
  2407. >"-rf" in my home directory and do a "rm *f", I'm out of luck :-)
  2408. >I have no solution for this, though...
  2409.  
  2410. At least two others have mentioned that something like ./*f does
  2411. wonders (if you are aware that it's needed).  My question is, does
  2412. anyone have a need for files that start with '-'?  Or is an ounce
  2413. of prevention (not using such files) still worth a pound of cure?
  2414. (Ignore troff font files: I try to.)
  2415.  
  2416. Side note:  the Instructional WorkBench (IWB), in its Unix(R)
  2417. Fundamentals course, makes specific note that one should avoid
  2418. making files starting with '+' or '-'.  It makes this the specific
  2419. subject of one of its programmed-learning questions.
  2420. -- 
  2421.  
  2422.     Joe Yao        hadron!jsdy@seismo.{CSS.GOV,ARPA,UUCP}
  2423.             jsdy@hadron.COM (not yet domainised)
  2424.  
  2425. Volume-Number: Volume 8, Number 40
  2426.  
  2427. From news  Wed Nov  5 09:24:50 1986
  2428. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2429. Newsgroups: mod.std.unix
  2430. Subject: Re: job control
  2431. Message-Id: <6238@ut-sally.UUCP>
  2432. References: <6176@ut-sally.UUCP> <6014@ut-sally.UUCP> <6001@ut-sally.UUCP> <5965@ut-sally.UUCP> <5932@ut-sally.UUCP> <5991@ut-sally.UUCP>
  2433. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2434. Date: 5 Nov 86 15:24:17 GMT
  2435. Draft-9: job.control
  2436.  
  2437. From: seismo!hadron!jsdy@sally.utexas.edu (Joseph S. D. Yao)
  2438. Date: Tue, 4 Nov 86 22:47:30 est
  2439. Organization: Hadron, Inc., Fairfax, VA
  2440.  
  2441. In article <6176@ut-sally.UUCP> you write:
  2442. >From: seismo!mcvax!jack
  2443. >Organization: AMOEBA project, CWI, Amsterdam
  2444. >Date: Tue, 28 Oct 86 23:39:03 +0100
  2445. >
  2446. >*CURRENT JOB CONTROL IMPLEMENTATIONS ARE HORRIBLE. HORRIBLE! 
  2447. >HORRIBLE!!!!!!!!*
  2448. >Both solutions are filled with horrible tricks like closing
  2449. >tty's and re-opening them and then doing funny ioctl()s and the closing
  2450. >them again and then reopening then and then...
  2451. >It is of course a praiseworthy feat that the folks at HP managed to
  2452. >sqeeze those two horrible, inconsistent, unintellegible mechanisms
  2453. >into one poor kernel, but I'm afraid the result is horrible**2.
  2454. >>From now on, you can find me in the "job control is horrible" camp.
  2455.  
  2456. Jack, one gets the vague feeling you dislike these implementations,
  2457. without the least notion why.  Could you please meditate, or take a
  2458. pill, or whatever soothes you, and then tell us exactly why you feel
  2459. this way?  (You may wish to take frequent mellow breaks.)  Perhaps
  2460. you could also tell us what you feel defines a non-horrible job
  2461. control implementation.  Thank you!
  2462. -- 
  2463.  
  2464.     Joe Yao        hadron!jsdy@seismo.{CSS.GOV,ARPA,UUCP}
  2465.             jsdy@hadron.COM (not yet domainised)
  2466.  
  2467. Volume-Number: Volume 8, Number 41
  2468.  
  2469. From news  Wed Nov  5 09:26:51 1986
  2470. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2471. Newsgroups: mod.std.unix
  2472. Subject: Re: A convention for -file
  2473. Message-Id: <6239@ut-sally.UUCP>
  2474. References: <6172@ut-sally.UUCP>
  2475. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2476. Date: 5 Nov 86 15:26:26 GMT
  2477. Draft-9: 1003.2.getopt
  2478.  
  2479. From: seismo!mcvax!guido (Guido van Rossum)
  2480. Date: Wed, 05 Nov 86 11:24:11 +0100
  2481.  
  2482. What nobody seems to have noticed about the proposed "solution" to file
  2483. names starting with "-" by prefixing another "-", is that it would break
  2484. shell file name expansion.  If you have a file "-foo" in your directory,
  2485. the call
  2486.     $ blurfl *
  2487. will see an option "-foo" rather than a file "--foo".  You can't build
  2488. a remedy into the shell's file name generation mechanism unless you plan
  2489. to fix all software that ever processes an argv list at the same time
  2490. (or build knowledge about programs' command conventions into the shell).
  2491.  
  2492. By the way, prefixing with "./" doesn't work at all times either: the
  2493. argument need not be a file.  Ever tried to grep for "-1"?  (Grep has a
  2494. solution built in: grep -e).
  2495.  
  2496.     Guido van Rossum, CWI, Amsterdam <guido@mcvax.uucp>
  2497.  
  2498. Volume-Number: Volume 8, Number 42
  2499.  
  2500. From news  Wed Nov  5 13:14:28 1986
  2501. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2502. Newsgroups: mod.std.unix
  2503. Message-Id: <6242@ut-sally.UUCP>
  2504. Subject: Re: Case sensitive file names
  2505. References: <6198@ut-sally.UUCP> <6002@ut-sally.UUCP> <5860@ut-sally.UUCP>
  2506. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2507. Date: 5 Nov 86 19:13:51 GMT
  2508. Draft-9: 2.3.folding
  2509.  
  2510. From: seismo!allegra!phri!roy@sally.UTEXAS.EDU (Roy Smith)
  2511. Date: Wed, 5 Nov 86 09:36:15 EST
  2512.  
  2513. > From: seismo!enea!chalmers.UUCP!jacob (Jacob Hallen)
  2514. > Given the names Makefile, Readme and Instructions these files will
  2515. > appear first in the listing where they are easy to find.
  2516.  
  2517.     Doesn't that assume an ASCII collating sequence?
  2518.  
  2519. Roy Smith, {allegra,philabs}!phri!roy
  2520. System Administrator, Public Health Research Institute
  2521. 455 First Avenue, New York, NY 10016
  2522.     
  2523. Volume-Number: Volume 8, Number 43
  2524.  
  2525. From news  Wed Nov  5 16:13:17 1986
  2526. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2527. Newsgroups: mod.std.unix
  2528. Subject: Re: public-domain implementation of V8 "newer"
  2529. Message-Id: <6246@ut-sally.UUCP>
  2530. References: <6216@ut-sally.UUCP>
  2531. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2532. Date: 5 Nov 86 22:12:53 GMT
  2533. Draft-9: 1003.2.newer
  2534.  
  2535. From: harvard!ho3cad!ekb (Eric Bustad)
  2536. Date: Wed, 5 Nov 86 15:40:42 CST
  2537.  
  2538. This version of "newer" will say that one file is newer that the
  2539. other when they are both exactly the same age.  Is this a bug or
  2540. does the V8 version of "newer" act this way also?
  2541.  
  2542. = Eric Bustad
  2543.   AT&T Bell Laboratories
  2544.   Holmdel NJ 07733-1988
  2545.   (201)949-6257
  2546.   ekb@ho3cad.ATT.COM or ihnp4!ho3cad!ekb
  2547.  
  2548. Volume-Number: Volume 8, Number 44
  2549.  
  2550. From news  Thu Nov  6 19:37:19 1986
  2551. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2552. Newsgroups: mod.std.unix
  2553. Subject: Re:  public-domain implementation of V8 "newer"
  2554. Message-Id: <6269@ut-sally.UUCP>
  2555. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2556. Date: 7 Nov 86 01:37:05 GMT
  2557. Draft-9: 1003.2.newer
  2558.  
  2559. From: gwyn@brl.arpa (VLD/VMB) (Douglas A. Gwyn)
  2560. Date:     Thu, 6 Nov 86 18:48:26 EST
  2561.  
  2562. The 8th Ed. UNIX manual says that a zero return code is returned if
  2563. the first file's mod time is AT LEAST AS RECENT as the second's (as
  2564. well as under other circumstances).  I take this to mean that in case
  2565. of an exact tie, the first file is considered "newer" than the second.
  2566. I don't know why it's specified this way.
  2567.  
  2568. Volume-Number: Volume 8, Number 45
  2569.  
  2570. From news  Thu Nov  6 21:32:46 1986
  2571. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2572. Newsgroups: mod.std.unix
  2573. Subject: Re: public-domain implementation of V8 "newer"
  2574. Message-Id: <6272@ut-sally.UUCP>
  2575. References: <6216@ut-sally.UUCP>, <6246@ut-sally.UUCP>
  2576. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2577. Date: 7 Nov 86 03:32:30 GMT
  2578. Draft-9: 1003.2.newer
  2579.  
  2580. From: pyramid!utzoo!henry (Henry Spencer)
  2581. Date: Thu, 6 Nov 86 20:53:27 CST
  2582.  
  2583. > This version of "newer" will say that one file is newer that the
  2584. > other when they are both exactly the same age.  Is this a bug or
  2585. > does the V8 version of "newer" act this way also?
  2586.  
  2587. The V8 newer does in fact return success (exit status 0) when the files
  2588. are exactly the same age.  The name is not entirely right; it should be
  2589. something like "up_to_date_with", in an ideal world.  The behavior would
  2590. not appear to be a bug, since it is consistent with the wording of the
  2591. manual page.
  2592.  
  2593.                 Henry Spencer @ U of Toronto Zoology
  2594.                 {allegra,ihnp4,decvax,pyramid}!utzoo!henry
  2595.  
  2596. Volume-Number: Volume 8, Number 46
  2597.  
  2598. From news  Fri Nov  7 07:55:30 1986
  2599. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2600. Newsgroups: mod.std.unix
  2601. Subject: Re: Case sensitive file names
  2602. Message-Id: <6279@ut-sally.UUCP>
  2603. References: <6226@ut-sally.UUCP>
  2604. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2605. Date: 7 Nov 86 13:55:01 GMT
  2606. Draft-9: 2.3.folding
  2607.  
  2608. From: mcvax!axis!philip@seismo.css.gov (Philip Peake)
  2609. Date: Fri, 7 Nov 86 09:41:00 -0100
  2610. Organization: Axis Digital, 135 rue d'Aguesseau, Boulogne, 92100, FRANCE
  2611.  
  2612. In article <6226@ut-sally.UUCP>:
  2613. >From: chris@mimsy.umd.edu (Chris Torek)
  2614. >Date: Tue, 4 Nov 86 07:33:44 EST
  2615. >
  2616. >We seem to have three proposals:
  2617. >
  2618. >CS: Case sensitive file systems.  This is what all major Unix variants
  2619. >    (V6, V7, SysIII, SysV, 2BSD, and 4BSD) now support.
  2620. >
  2621. >CC: Case coercive file systems (file names forced to all upper or all
  2622. >    lower case).
  2623. >
  2624. >CR: Case retaining but otherwise insensitive file systems (new names
  2625. >    are created according to the given case; matches are not case
  2626. >    sensitive).
  2627. >
  2628. >I sincerely hope that no one is seriously suggesting POSIX adopt
  2629. >CC: no one seems to like such systems much.
  2630.  
  2631. This one line invalidates completely the rest of this article.
  2632. WHY do people trying to defend one of their pet ideas always claim
  2633. than 'no one' wants the opposite?
  2634.  
  2635. There is at least ONE person whod DOES want such filesystems - me!
  2636. And I DO suggest that POSIX adopt such a system.
  2637.  
  2638. Philip
  2639.  
  2640. [ Nor are arguments consisting solely of "I want it" very useful.  -mod ]
  2641.  
  2642. Volume-Number: Volume 8, Number 47
  2643.  
  2644. From news  Fri Nov  7 07:57:39 1986
  2645. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2646. Newsgroups: mod.std.unix
  2647. Subject: Re: A convention for -file
  2648. Message-Id: <6280@ut-sally.UUCP>
  2649. References: <6239@ut-sally.UUCP>
  2650. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2651. Date: 7 Nov 86 13:57:13 GMT
  2652. Draft-9: 1003.2.getopt
  2653.  
  2654. From: weemba@brahms.berkeley.edu (Matthew P Wiener)
  2655. Date: Fri, 7 Nov 86 03:02:53 PST
  2656. Organization: University of California, Berkeley
  2657.  
  2658. In article <6239@ut-sally.UUCP> seismo!mcvax!guido (Guido van Rossum) writes:
  2659. >What nobody seems to have noticed about the proposed "solution" to file
  2660. >names starting with "-" by prefixing another "-", is that it would break
  2661. >shell file name expansion.
  2662.  
  2663. Of course, but it is trivial (if ugly) to get around, using backquotes.
  2664.  
  2665. The reason I am interested is because it came up years ago.  I overloaded
  2666. the command line with arguments so that my program could run on our high
  2667. speed batch only machine.  And there was one die hard from our batch machine
  2668. who liked punctuation marks as his first character.  (The other machine had
  2669. a completely different argument convention, so there were different taboo
  2670. names.)  And yes, I had strings and post-filename flags in the command line
  2671. to boot.
  2672.  
  2673. If getopt is to be the standard, a -+ flag to turn flags back on should be
  2674. added.  Except for -- -+, meaning file -+.  (But then, somebody is going to
  2675. break on that by having a null name show up in between a -- and -+ from an
  2676. uncareful $variable expansion.  Weee!)
  2677.  
  2678. ucbvax!brahms!weemba    Matthew P Wiener/UCB Math Dept/Berkeley CA 94720
  2679.  
  2680. Volume-Number: Volume 8, Number 48
  2681.  
  2682. From news  Sat Nov  8 17:17:08 1986
  2683. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2684. Newsgroups: mod.std.unix
  2685. Subject: Re: Case sensitive file names
  2686. Message-Id: <6304@ut-sally.UUCP>
  2687. References: <6226@ut-sally.UUCP>
  2688. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2689. Date: 8 Nov 86 23:16:52 GMT
  2690. Draft-9: 2.3.folding
  2691.  
  2692. From: seismo!enea!chalmers.UUCP!jacob (Jacob Hallen)
  2693. Date: Fri, 7 Nov 86 23:35:50 -0100
  2694. Organization: Dept. of CS, Chalmers, Sweden
  2695.  
  2696. >We seem to have three proposals:
  2697. >
  2698. >CS: Case sensitive file systems.  This is what all major Unix variants
  2699. >    (V6, V7, SysIII, SysV, 2BSD, and 4BSD) now support.
  2700. >
  2701. >CC: Case coercive file systems (file names forced to all upper or all
  2702. >    lower case).
  2703. >
  2704. >CR: Case retaining but otherwise insensitive file systems (new names
  2705. >    are created according to the given case; matches are not case
  2706. >    sensitive).
  2707. >
  2708.  
  2709. There is a serious flaw in the CR case! You lose orthogonality in
  2710. the interpretation of commands since creations, moves, copies and
  2711. some other file operations will interpret arguments literally while
  2712. other commands will have their arguments interpreted in the flexible way.
  2713. A move by the way is a good example since one argument will be treated
  2714. in one way and the other in the other way.
  2715.  
  2716. Jacob Hallen
  2717.  
  2718. Volume-Number: Volume 8, Number 49
  2719.  
  2720. From news  Sat Nov  8 19:58:46 1986
  2721. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2722. Newsgroups: mod.std.unix
  2723. Subject: File extents in multiples
  2724. Message-Id: <6305@ut-sally.UUCP>
  2725. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2726. Date: 9 Nov 86 01:58:30 GMT
  2727. Draft-9: performance.files
  2728.  
  2729. From: ihnp4!uiucdcs!mycroft.GSD!ccvaxa!aglew (Andy Glew)
  2730. Date: Fri, 7 Nov 86 09:08:43 CST
  2731.  
  2732. Extending files in multiples of a basic unit
  2733. --------------------------------------------
  2734.  
  2735. A comment on some of the proposals for high-performance file systems
  2736. under UNIX that I've seen coming out of the various standardization efforts.
  2737. Most have the concept of `extents` or `units` - providing for automatic
  2738. extension of file space in pieces of some minimum size. But there
  2739. is nothing to say that the system can't allocate extents larger than
  2740. the minimum, that are not multiples of the minimum.
  2741.  
  2742. What happens if we are storing a large data structure in the file, and we want
  2743. to be sure that we can read in the whole data structure in one gulp? Say that
  2744. this dataset is 4 tracks long. Obviously, we specify a minimum extent of 4
  2745. tracks. But what if the system gives us 5 tracks in an extent? Then we start
  2746. the transfer, and have to pause in the middle?
  2747.  
  2748. Seems to me that it would be desirable to be able to say that all extents
  2749. should be a MULTIPLE of some basic number of blocks. Then you can use
  2750. anticipatory fseek'ing to guarantee fast transfer when you want it. Of course,
  2751. the possible multiples would be sharply constrained, but with a
  2752. getminimumextentsize() primitive portable programs could be written,
  2753. assuming extents have to be multiples of that size.
  2754.  
  2755. Volume-Number: Volume 8, Number 50
  2756.  
  2757. From news  Sat Nov  8 20:02:48 1986
  2758. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2759. Newsgroups: mod.std.unix
  2760. Subject: Re:  Job Control
  2761. Message-Id: <6306@ut-sally.UUCP>
  2762. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2763. Date: 9 Nov 86 02:02:32 GMT
  2764. Draft-9: job.control
  2765.  
  2766. From: ihnp4!iwtpu!katzung (Brian Katzung)
  2767. Date: Sat, 8 Nov 86 14:59:33 CST
  2768.  
  2769.      I guess I'm being sort of lazy... I haven't even figured out the
  2770. relationship between "P1003" and "POSIX" (I got in late on the discussion),
  2771. [ IEEE P1003 is the committee; P1003.1 is the subcommittee that produced
  2772. the POSIX Trial Use Standard.  -mod ]
  2773. but I wanted to point out one shortcoming of the 4.xBSD implementation of
  2774. job control so that it might be avoided in the future.
  2775.  
  2776.      The wait3 system call has provisions for informing the parent when a
  2777. child is suspended, but not when it resumes.  Thus, if an agent other than
  2778. the parent resumes the child, the parent doesn't know about it.  This is
  2779. rare, but not unimaginable.  I've had applications that could have been
  2780. enhanced if the mechanism were "balanced".
  2781.  
  2782.      I haven't checked 4.3, but the 4.2 csh, in particular, won't send a
  2783. STOP or TSTP to a process that it believes is already stopped.
  2784. -- Brian Katzung  ihnp4!{laidbak,iwtpu}!katzung
  2785.  
  2786. Volume-Number: Volume 8, Number 51
  2787.  
  2788. From news  Sat Nov  8 21:02:18 1986
  2789. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  2790. Newsgroups: mod.std.unix
  2791. Subject: Guest Moderator
  2792. Message-Id: <6307@ut-sally.UUCP>
  2793. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2794. Date: 9 Nov 86 03:02:02 GMT
  2795. Draft-9: mod.std.unix
  2796.  
  2797. Since I'm going away for a few weeks to do some consulting,
  2798. there will be a guest moderator.  He's John B. Chambers,
  2799. and has done this several times before.  Please send submissions
  2800. to ut-sally!std-unix or std-unix@sally.utexas.edu (we're both
  2801. in those aliases) instead of to my personal addresses.
  2802.  
  2803. Volume-Number: Volume 8, Number 52
  2804.  
  2805. From news  Mon Nov 17 12:48:15 1986
  2806. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  2807. Newsgroups: mod.std.unix
  2808. Subject: Re: file times and shell commands
  2809. Message-Id: <6367@ut-sally.UUCP>
  2810. References: <6177@ut-sally.UUCP>
  2811. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2812. Date: 17 Nov 86 18:48:02 GMT
  2813. Draft-9: 1003.2.newer
  2814.  
  2815. >From gatech!gitpyr!nomad@seismo.UUCP Mon Nov 10 10:46:07 1986
  2816. Date: Mon, 10 Nov 86 09:29:38 est
  2817. From: Jay Joiner <gatech!gitpyr!nomad@seismo.UUCP>
  2818. News-Path: gatech!ut-sally!std-unix
  2819.  
  2820. About the file times question, how about using ls -t to put the files in
  2821. time order, then scanning the list with awk to find out whether the
  2822. files in question are in the right order or not.
  2823.  
  2824. Jay Joiner
  2825.  
  2826.  
  2827. Volume-Number: Volume 8, Number 53
  2828.  
  2829. From news  Mon Nov 17 12:49:19 1986
  2830. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  2831. Newsgroups: mod.std.unix
  2832. Subject: Re: Case sensitive file names
  2833. Message-Id: <6368@ut-sally.UUCP>
  2834. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2835. References: 
  2836. Date: 17 Nov 86 18:49:07 GMT
  2837. Draft-9: 2.3.folding
  2838.  
  2839. >From im4u!rbj@icst-cmr.ARPA Mon Nov 10 16:31:53 1986
  2840. Date: Mon, 10 Nov 86 16:40:48 EST
  2841. From: Root Boy Jim <im4u!rbj@icst-cmr.ARPA>
  2842.  
  2843. Re: Volume-Number: Volume 8, Number 25
  2844. >      This gives you all the directory advantages of a case-dependent
  2845. > filesystem.  The only "feature" you lose is the ability to create a
  2846. > separate Readme, ReadMe, readme, and README set of files.  I personally
  2847. > believe that anybody who creates files which differ from case deserves
  2848. > to be shot or at least have his employment terminated with extreme
  2849. > prejudice.  [ I suggest readers interpret that last sentence as a
  2850. > hypothetical statement applying to none of them.  -mod ]
  2851.  
  2852. There are several uses I can think of:
  2853.  
  2854.     1) linking: cd /etc; ln passwd PASSWD
  2855.         This makes it less likely that I will lose my passwd
  2856.         file even if I do `rm p*'.
  2857.     2) old versions: cd /etc; cp passwd PASSWD
  2858.         Keeps a backup version. Note that these two uses may
  2859.         conflict if I decide to `cp /dev/null PASSWD'!
  2860.     3) filename completion: using (1) an the 4.3 csh, I can type
  2861.         `vi /etc/P<ESC><RET>'. Ok, ok, emacs then :-)
  2862.     4) intermediate files: instead of picking a new name, I can
  2863.         just change case. Yes I know I can use other methods.
  2864.  
  2865. While I generally think it undesirable to depend on case for human 
  2866. distinction, it comes in quite handy sometimes. I have seen the same
  2867. trick used in C programs as well, #defining foo to union_name.Foo.
  2868. Before you flame the usage, my source is the Berkeley VLSI tools.
  2869.  
  2870.     (Root Boy) Jim Cottrell        <rbj@icst-cmr.arpa>
  2871.     Was John Hinckley allowed to watch `Taxi Driver' last night?
  2872.  
  2873.  
  2874. Volume-Number: Volume 8, Number 54
  2875.  
  2876. From news  Mon Nov 17 12:50:21 1986
  2877. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  2878. Newsgroups: mod.std.unix
  2879. Subject: Re: mod.std.unix P1003 job control proposal (Brett Galloway)
  2880. Message-Id: <6369@ut-sally.UUCP>
  2881. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2882. References: 
  2883. Date: 17 Nov 86 18:50:09 GMT
  2884. Draft-9: job.control
  2885.  
  2886. >From nsc!hplabs!hpda!hpisoa1!davel@pyramid.UUCP Wed Nov 12 16:57:34 1986
  2887. Cc: gorodish!guy@sun.UUCP
  2888. Date: Wed, 12 Nov 86 10:42:53 -0800
  2889.  
  2890. > guy@sun.com (Guy Harris) writes:
  2891. > > vhangup() is indeed desirable.  It is not required in POSIX because it is 
  2892. > > not supported on System V and, indeed, breaks System V compatiblity.
  2893. > Only if you define "System V compatibility" as "behaves exactly the same as
  2894. > some particular implementation of System V".  
  2895.  
  2896. It is true that vhangup() does not break any documented behavior in 
  2897. System V or the SVID.  However, the System V implementations I am familiar 
  2898. with (mainly ATT VAX releases) allow access to open login tty file 
  2899. descriptors after logout (/dev/tty is the exception).
  2900.  
  2901. Again, vhangup() is, in my opinion, preferable for security reasons.  I
  2902. do not consider the alternate behavior present in at least some System V
  2903. ports worth requiring.  
  2904.  
  2905. > "vhangup" does two things; it
  2906. > sends a SIGHUP to the process group of the terminal in question (which is,
  2907. > in fact, similar to what S5 does automatically) and it invalidates file
  2908. > descriptors that refer to the terminal.
  2909. > Some System V implementations do not do this, ...
  2910.  
  2911. I'm curious; could you list some of the System V implementations which 
  2912. disallow access to the login tty (via, e.g., stdout, not /dev/tty) after
  2913. logout?  I.e., System V's that have vhangup()-like behavior?
  2914.  
  2915. -Dave Lennert   HP   ihnp4!hplabs!hpda!davel
  2916.  
  2917.  
  2918. Volume-Number: Volume 8, Number 55
  2919.  
  2920. From news  Mon Nov 17 12:52:04 1986
  2921. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  2922. Newsgroups: mod.std.unix
  2923. Subject: Re: mod.std.unix P1003 job control proposal (now vhangup, auto-nice)
  2924. Message-Id: <6370@ut-sally.UUCP>
  2925. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2926. References: 
  2927. Date: 17 Nov 86 18:51:48 GMT
  2928. Draft-9: job.control
  2929.  
  2930. >From nsc!hplabs!hpda!hpisoa1!davel@pyramid.UUCP Fri Nov 14 22:04:25 1986
  2931. Date: Fri, 14 Nov 86 14:40:04 -0800
  2932.  
  2933. > From: ihnp4!iwtpu!katzung (Brian Katzung)
  2934. > Date: Sat, 8 Nov 86 14:59:33 CST
  2935. >      The wait3 system call has provisions for informing the parent when a
  2936. > child is suspended, but not when it resumes.  Thus, if an agent other than
  2937. > the parent resumes the child, the parent doesn't know about it.  This is
  2938. > rare, but not unimaginable.  I've had applications that could have been
  2939. > enhanced if the mechanism were "balanced".
  2940.  
  2941. You'd also want to sent SIGCLD under these circumstances, to be complete.
  2942.  
  2943. We actually breadboarded exactly this internally at HP.  We decided not
  2944. to include it in our product or in our POSIX proposal.  This is because
  2945. we wanted to provide an interface that is capable of supporting a 4.2
  2946. compatible interface on top of it.  This would require a way to turn off
  2947. these enhancements.  E.g., the proposal already contains the following:
  2948.  
  2949.     - send SIGCLD on child death        [Sys V compatible]
  2950.     - send SIGCLD on child death or stop    [4.2 compatible]
  2951.  
  2952. We didn't want to add:
  2953.  
  2954.     - send SIGCLD on child death or stop or continue
  2955.  
  2956. Similarly for wait3() [now known as wait2()].
  2957.  
  2958. I'm not saying this additional functionality isn't useful.  I just feel
  2959. that it is not so useful that I wanted to further complicate the
  2960. interface for it.
  2961.  
  2962. Also note that we wanted to provide an interface that could be easily
  2963. implemented on top of existing 4.2.
  2964.  
  2965. Anyway, that was our reasoning.
  2966.  
  2967. -Dave Lennert   HP   ihnp4!hplabs!hpda!davel
  2968.  
  2969.  
  2970. Volume-Number: Volume 8, Number 56
  2971.  
  2972. From news  Fri Nov 21 15:09:20 1986
  2973. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  2974. Newsgroups: mod.std.unix
  2975. Subject: Re: Case sensitive file names
  2976. Message-Id: <6410@ut-sally.UUCP>
  2977. References: <6210@ut-sally.UUCP>
  2978. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  2979. Date: 21 Nov 86 21:08:45 GMT
  2980. Draft-9: 2.3.folding
  2981.  
  2982. >From uw-beaver!uw-vlsi!mprvaxa!ubc-vision!utai!utcsri!mcgill-vision!mouse@nike.UUCP Wed Nov 19 04:57:50 1986
  2983. Date: Sun, 16 Nov 86 02:46:16 EST
  2984. From: der Mouse  <uw-beaver!ubc-vision!mcgill-vision!mouse@nike.UUCP>
  2985.  
  2986. > Please, if you support case-dependence, don't give the "mixed case
  2987. > filesystems" class of arguments.  The only two arguments you really
  2988. > have are (1) it is a "feature" (however dubious) that you can create
  2989. > Makefile and makefile as separate files in the same directory, and
  2990. > (2) Unix does it this way.
  2991.  
  2992. I think everyone arguing over case sensitivity is missing something.
  2993. Why treat letters specially?  For example, UNIX treats a and A
  2994. differently just as it treats = and % differently.  I see no reason to
  2995. restrict filenames to [a-zA-Z0-9] and a few special characters like .
  2996. and -; and given that uniformity case folding makes as much (or as
  2997. little) sense as folding 0123456789 onto !"#$%&'()* (to pick a
  2998. particularly silly example).
  2999.  
  3000. I would say that (1) is not particularly useful, but it can be nice to
  3001. be able to create files named D.mcgill-X04T2 and D.mcgill-X04t2 in the
  3002. same directory.  This is less of an issue, though; it's just as easy to
  3003. make a program use base-36 as base-62 or base-126.
  3004.  
  3005.                     der Mouse
  3006.  
  3007. USA: {ihnp4,decvax,akgua,utzoo,etc}!utcsri!mcgill-vision!mouse
  3008.      think!mosart!mcgill-vision!mouse
  3009. Europe: mcvax!decvax!utcsri!mcgill-vision!mouse
  3010. ARPAnet: think!mosart!mcgill-vision!mouse@harvard.harvard.edu
  3011.  
  3012.  
  3013. Volume-Number: Volume 8, Number 57
  3014.  
  3015. From news  Fri Nov 21 15:12:21 1986
  3016. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  3017. Newsgroups: mod.std.unix
  3018. Subject: Re: Case sensitive file names
  3019. Message-Id: <6412@ut-sally.UUCP>
  3020. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3021. References: 
  3022. Date: 21 Nov 86 21:11:54 GMT
  3023. Draft-9: 2.3.folding
  3024.  
  3025. >From bu-cs!bzs@harvard.UUCP Wed Nov 19 07:19:28 1986
  3026. Date: Tue, 18 Nov 86 21:35:03 EST
  3027. From: bu-cs!bu-cs.BU.EDU!bzs@harvard.UUCP (Barry Shein)
  3028.  
  3029.  
  3030. The problem with a file system where you cannot have ReadMe and
  3031. README is that you are throwing away possibilities. This also
  3032. means that I cannot have tmp01234A, tmp01234B, ... , tmp01234a, ...
  3033.  
  3034. I fear that although many people have applications that are small and
  3035. have small requirements they should not place restrictions on those
  3036. with large requirements, use your imagination, consider MasterCard's
  3037. data base for a moment or some of the multi-library catalog systems
  3038. people are building, they may need (and have machines that have no
  3039. trouble with) many thousands of files who's names may serve as primary
  3040. keys (why not, it's one way to guarantee write-through on update...)
  3041.  
  3042. Next they'll be telling us we should only allow 16-bit ints because
  3043. any number larger than 16-bits is hard to type in and error prone
  3044. anyhow.
  3045.  
  3046. I still suggest the use of 'stty lcase' if that's what you want
  3047. (alias run 'stty -lcase; \!* ; stty lcase' :-)
  3048.  
  3049.     -Barry Shein, Boston University
  3050.  
  3051.  
  3052.  
  3053. Volume-Number: Volume 8, Number 58
  3054.  
  3055. From news  Fri Nov 21 15:23:37 1986
  3056. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  3057. Newsgroups: mod.std.unix
  3058. Subject: Re: A convention for -file
  3059. Message-Id: <6414@ut-sally.UUCP>
  3060. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3061. References: 
  3062. Date: 21 Nov 86 21:23:22 GMT
  3063. Draft-9: 1003.2.getopt
  3064.  
  3065. >From munnari!runx.oz!dave@seismo.UUCP Thu Nov 20 01:38:54 1986
  3066. Date: Wed, 19 Nov 86 22:15:59 AEST
  3067. From: munnari!runx.oz!dave@seismo.UUCP (Dave Horsfall)
  3068.  
  3069. It is writ:
  3070.     Side note:  the Instructional WorkBench (IWB), in its Unix(R)
  3071.     Fundamentals course, makes specific note that one should avoid
  3072.     making files starting with '+' or '-'.  It makes this the specific
  3073.     subject of one of its programmed-learning questions.
  3074.     
  3075. EVERY Unix manual I've seen has said something like "It is unwise
  3076. to use file names starting with '-'".  And I've used Unix since
  3077. good ol' Edition 5 ...  Don't people read manuals anymore?
  3078.  
  3079.  
  3080. Dave Horsfall
  3081. Sun Computer Australia
  3082.  
  3083.  
  3084.  
  3085. Volume-Number: Volume 8, Number 59
  3086.  
  3087. From news  Fri Nov 21 15:27:48 1986
  3088. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  3089. Newsgroups: mod.std.unix
  3090. Subject: Re: Case sensitive file names
  3091. Message-Id: <6415@ut-sally.UUCP>
  3092. References: <6368@ut-sally.UUCP>
  3093. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3094. Date: 21 Nov 86 21:27:19 GMT
  3095. Draft-9: 2.3.folding
  3096.  
  3097. Date: Thu, 20 Nov 86 08:39:02 -0200
  3098. From: mcvax!crin!tombre@seismo.UUCP (Karl Tombre)
  3099. Organization: C.R.I.N., Nancy, France
  3100.  
  3101. On use of case in filenames :
  3102.  
  3103. >There are several uses I can think of:
  3104. >
  3105. >    1) linking: cd /etc; ln passwd PASSWD
  3106. >        This makes it less likely that I will lose my passwd
  3107. >        file even if I do `rm p*'.
  3108. >    2) old versions: cd /etc; cp passwd PASSWD
  3109. >        Keeps a backup version. Note that these two uses may
  3110. >        conflict if I decide to `cp /dev/null PASSWD'!
  3111. >    3) filename completion: using (1) an the 4.3 csh, I can type
  3112. >        `vi /etc/P<ESC><RET>'. Ok, ok, emacs then :-)
  3113. >    4) intermediate files: instead of picking a new name, I can
  3114. >        just change case. Yes I know I can use other methods.
  3115. >
  3116.  
  3117. Well and how about directories? I know at least 2 tools using cases in their
  3118. directories : rn (News directory) and mail mode in Unipress emacs (Messages
  3119. directory). So I generalized this use. All my directories begin with
  3120. uppercase, the other files with lowercase. This provides an easy way to
  3121. separate directory from file. Of course, that's what I do in my home
  3122. directory, I let /usr, /etc and so on remain in lower case :-)
  3123.  
  3124.  
  3125.  
  3126. Volume-Number: Volume 8, Number 60
  3127.  
  3128. From jbc  Thu Dec  4 09:18:32 1986
  3129. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  3130. Newsgroups: mod.std.unix
  3131. Subject: Re: file times and shell commands
  3132. Summary: Another way to do it
  3133. Message-Id: <6495@ut-sally.UUCP>
  3134. References: <6177@ut-sally.UUCP> <6196@ut-sally.UUCP>
  3135. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3136. Date: 4 Dec 86 15:18:16 GMT
  3137. Draft-9: 1003.2.newer
  3138.  
  3139. From: glc@akgua.UUCP (glc)
  3140. Date: 30 Nov 86 16:02:09 GMT
  3141. Organization: AT&T Technologies/Bell Labs, Atlanta
  3142.  
  3143. > > There doesn't appear to be any decent way to compare the last modified
  3144. > > times of files from the shell...
  3145. > Before everybody starts inventing their own names for this, it should be
  3146. > noted that V8 already has a program for this, newer(1).  
  3147.  
  3148. The newer(1) program is a very good solution to the problem.  For
  3149. those who (for whatever reason) do not wish to implement it, there
  3150. is an alternate method using the "make" command.
  3151.  
  3152. Make(1) has the "-q" option which causes it to return zero or
  3153. non-zero after checking the dependencies.  Here is an example:
  3154.  
  3155.   if echo "$DEPENDENT:$CONTROL;:" | make -f - -q
  3156.     then # The dependent file is up-to-date
  3157.     else # The control file is newer that the dependent file
  3158.   fi
  3159.  
  3160. Cheers,
  3161.   Lindsay
  3162.  
  3163. Lindsay Cleveland  (akgua!glc) (404) 447-3909   Cornet 583-3909
  3164. AT&T Technologies/Bell Laboratories ... Atlanta, Ga
  3165.  
  3166.  
  3167.  
  3168. Volume-Number: Volume 8, Number 61
  3169.  
  3170. From jbc  Thu Dec  4 09:20:23 1986
  3171. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  3172. Newsgroups: mod.std.unix
  3173. Subject: Re: case sensitive filenames
  3174. Message-Id: <6496@ut-sally.UUCP>
  3175. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3176. References: 
  3177. Date: 4 Dec 86 15:20:01 GMT
  3178. Draft-9: 2.3.folding
  3179.  
  3180. Date: Mon, 1 Dec 86 13:49:52 PST
  3181. From: guy@Sun.COM (Guy Harris)
  3182.  
  3183. > 4.2BSD refuses to namei a file with 8-bit character(s) because that's a good
  3184. > sign that the directory entry has been thumped.  The super-user is allowed
  3185. > to namei files with 8-bit characters.
  3186.  
  3187. 4.2BSD refuses to namei a file with 8-bit character(s) because files like
  3188. that are a royal pain to deal with, due to both the Bourne and C shell
  3189. stripping all arguments to 7 bits before passing them to programs - not
  3190. because they are most likely to appear in smashed directory entries.  The
  3191. super-user is NOT allowed to namei files with 8-bit characters; the error
  3192. returned in 4.2BSD is EPERM, but that doesn't mean it won't be given to the
  3193. super-user.  The error was changed to EINVAL in 4.3BSD.
  3194.  
  3195. The point still stands, however, that the kernel shouldn't enforce
  3196. restrictions like this.  The System V Release 3 Bourne shell has been fixed
  3197. to handle 8-bit arguments, so you can use "rm -i *" or something like that
  3198. if you want to remove files with 8-bit characters in their names.  Some
  3199. Japanese companies have also fixed the C shell to handle files with names
  3200. containing 8-bit characters.
  3201.  
  3202.  
  3203. Volume-Number: Volume 8, Number 62
  3204.  
  3205. From jbc  Thu Dec  4 09:23:01 1986
  3206. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Guest Moderator, John B. Chambers)
  3207. Newsgroups: mod.std.unix
  3208. Subject: You wanted weirdnix....
  3209. Message-Id: <6497@ut-sally.UUCP>
  3210. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3211. References: 
  3212. Date: 4 Dec 86 15:22:48 GMT
  3213. Draft-9: Weirdnix
  3214.  
  3215. From: scgvaxd!stb!michael@seismo.UUCP
  3216. Date: Tue Nov 25 17:39:33 1986
  3217.  
  3218.  
  3219. Ok, lets look at read() and write().
  3220. 1. There is no requirement that anything written will be available for a
  3221. read().
  3222. 2. There is no requirement that read/write return everything that they can.
  3223.  
  3224. In general, you can't require this. The terminal lines are a good example; 
  3225. writting to a terminal will not result in it being readable; the terminal
  3226. drivers only return a line at a time no matter how much is requested. Or
  3227. at least, thats what the docs say (I've never actually tested it, but it
  3228. seems that if it were false, then type ahead would not work as well.)
  3229.  
  3230. In general, it is probably safe to require that anything written to a file
  3231. should be available to a subsequent read provided that the read is done on
  3232. a file descriptor corresponding to the same name, or a link to the same
  3233. named file that was written to, all providing that it is a regular file.
  3234. Certainly not for device or special files.
  3235.  
  3236. Incidently, don't think that 2 is obvious; my first unix programs assumed
  3237. that the O/S would return a number of bytes so that the reads would be
  3238. re-aligned on a 512 byte boundary, and that I had to call read() multiple
  3239. times until I had gotten everything. I was quite suprised to find that
  3240. other people had written stuff that did not do this, and even more
  3241. suprised to find that it actually worked. No :-)
  3242.  
  3243.         Michael Gersten
  3244.  
  3245.  
  3246.  
  3247. Volume-Number: Volume 8, Number 63
  3248.  
  3249. From jsq  Wed Dec 10 10:19:11 1986
  3250. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3251. Newsgroups: mod.std.unix
  3252. Subject: IEEE 1003.1 P.55
  3253. Message-Id: <6543@ut-sally.UUCP>
  3254. References: <5836@ut-sally.UUCP>
  3255. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3256. Date: 10 Dec 86 16:18:35 GMT
  3257. Draft-9: TZ.P.055
  3258.  
  3259. [ This is a reposting of P.55, the P1003.1 Timezones proposal,
  3260. due to recent interest coinciding with the meeting of P1003
  3261. going on this week in Atlantic City.  -mod ]
  3262.  
  3263. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3264. Date: 29 Sep 86 19:14:18 GMT
  3265.  
  3266. There are several decisions needed regarding timezones and 1003.1:
  3267.  
  3268. Which proposal should be accepted (P.55 or the one forthcoming from HP)?
  3269.  
  3270. If P.55:
  3271. Accept settz 4.5.3?
  3272. Add 4.5.4 or incorporate third paragraph in 4.5.3?
  3273. Details of Errors and References.
  3274. Suggested Appendices:
  3275.     Olsen's implementation?
  3276.     List of names of timezones?
  3277.  
  3278. The rest of this article is the text of Proposal 55.
  3279.  
  3280. IEEE 1003.1 P.55:
  3281.  
  3282. Time Zone Proposal based on work by Robert Elz and Arthur Olsen.
  3283. Submitted by John S. Quarterman.  Proposal number assigned 19 Sept. 1986.
  3284.  
  3285. Add 4.5.3 and 4.5.4 to the standard and perhaps also
  3286. document Arthur Olsen's implementation in an Appendix.
  3287.  
  3288. Note that all of 4.5.4 except the last paragraph of 4.5.4.2, the last
  3289. sentence of 4.5.4.3, and all of 4.5.4.4 and 4.5.4.5, is intended to
  3290. track X3J11.  I.e., the purpose of 4.5.4 is to constrain ctime() and
  3291. localtime() further than X3J11, not to change what X3J11 says about them.
  3292.  
  3293. % is used to indicate the section sign.  Italics are implied in the
  3294. normal format of the POSIX document.
  3295.  
  3296.  
  3297. 4.5.3    Set Local Time Conversion
  3298. Function:  settz()
  3299.  
  3300. 4.5.3.1    Synopsis
  3301.     int settz(p)
  3302.     char *p;
  3303.  
  3304. 4.5.3.2    Description
  3305.     The settz() function determines the conversion from GMT
  3306. of the local times returned by localtime() and ctime().
  3307. When called with a NULL pointer argument (p==0), settz
  3308. shall select the appropriate local time conversion for the
  3309. location of the host machine on which the call is executed.
  3310. When called with a null string (p!=0 && *p=='\0'), settz
  3311. shall select no conversion for localtime, making localtime()
  3312. and gmtime() equivalent and ctime() and asctime(gmtime())
  3313. equivalent.  When called with a non-null string (p!=0 && *p!='\0'),
  3314. settz may set the conversion according to that string.
  3315. The format of the string and the conversions it may specify
  3316. are implementation specific.  If an implementation accepts
  3317. non-null string arguments to settz, the implementation
  3318. should allow users to define their own conversions
  3319. rather than restricting conversions to a standard set.
  3320. If settz is called with a string for which the implementation
  3321. can not find a conversion, settz shall return -1, but the
  3322. conversion it sets is implementation defined and may be one of
  3323. GMT, the executing machine's local time, or local time for
  3324. the area where the implementation was performed.
  3325.  
  3326. 4.5.3.3    Returns
  3327.     Upon successful completion, settz() returns 0, otherwise -1,
  3328. and errno is set to indicate the error.
  3329.  
  3330. 4.5.3.4  Errors
  3331.     If the function returns -1 the value stored in errno may be
  3332. interpreted as follows:
  3333.  
  3334. [EFAULT]    The argument p points outside the process's allocated
  3335.     addresss space.
  3336.  
  3337. 4.5.3.5  References
  3338. time() %4.5.1, localtime(), ctime() %4.5.4.
  3339.  
  3340.  
  3341. 4.5.4  Get Local Time
  3342. Functions:  localtime(), ctime()
  3343.  
  3344. 4.5.4.1  Synopsis
  3345.     #include <time.h>
  3346.  
  3347.     struct tm *localtime(timer)
  3348.     char *ctime(timer)
  3349.     time_t *timer;
  3350.  
  3351. 4.5.4.2  Description
  3352.     The localtime() function converts the calendar time pointed to
  3353. by timer to local time in the form of a string.  It is equivalent to
  3354.     asctime(localtime(timer))
  3355.  
  3356.     The local time conversion is specified by a call on settz().
  3357. If localtime() or ctime() is called and settz() has not been called
  3358. since the last exec(), the localtime() or ctime() call shall call
  3359. settz(getenv("TZ")) before performing the local time conversion.
  3360. The local time conversion should be accurate for all times
  3361. from the base time of the time() function up to the time
  3362. the call is made.  Future times should be converted as accurately
  3363. as possible with available political information.  Daylight savings
  3364. time should be taken into account in both cases.
  3365.  
  3366. 4.5.4.3  Returns
  3367.     The localtime() function returns a pointer to that object.
  3368.     The ctime() function returns the pointer returned by the
  3369. asctime() function with that broken-down time as argument.
  3370.     On unsuccessful completion of either function, a NULL pointer
  3371. shall be returned and errno is set to indicate the error.
  3372.  
  3373. 4.5.4.4  Errors
  3374.     If either function returns a NULL pointer the value stored in
  3375. errno may be interpreted as follows:
  3376.  
  3377. [EFAULT]    The argument points outside the process's allocated
  3378.     address space.
  3379.  
  3380. 4.5.4.5  References
  3381. time() %4.5.1, settz() %4.5.3.
  3382.  
  3383. Volume-Number: Volume 7, Number 8
  3384.  
  3385.  
  3386. Volume-Number: Volume 8, Number 64
  3387.  
  3388. From jsq  Sat Dec 13 11:42:07 1986
  3389. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3390. Newsgroups: mod.std.unix
  3391. Subject: ctime - HP proposal
  3392. Message-Id: <6572@ut-sally.UUCP>
  3393. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3394. References: 
  3395. Date: 13 Dec 86 17:41:53 GMT
  3396. Draft-9: TZ
  3397.  
  3398. From: utah-cs!hplabs!hpfcla!hpfclj!hpfcdg!rgt (Ron Tolley)
  3399. Date: Wed, 10 Dec 86 18:51:58 est
  3400.  
  3401. The HP proposal  boils down to five  changes to the RFC.001  Timezone
  3402. Interface  by Robert Elz.  I have  listed  these in order of  importance
  3403. with  exception  of the  first  (which  is  really  just a  change  to a
  3404. comment).  As it turns out they are also in the order  that  they  would
  3405. appear in RFC.001.
  3406.  
  3407. [ RFC.001 has been superseded by P.55, which I reposted recently.  -mod ]
  3408.  
  3409. <(1) Replace (if it makes any difference) the paragraph>
  3410.  
  3411. So, I'm going to propose something that could be inserted into
  3412. P1003 (with the obvious extra definitions that I'm going to
  3413. leave out on the assumption that everyone knows what they are,
  3414. like the definition of the struct "tm").
  3415.  
  3416. <with the paragraph>
  3417.  
  3418. So, I'm going to propose something that could be inserted into
  3419. P1003 (with the obvious extra definitions that I'm going to
  3420. leave out on the assumption that everyone knows what they are.)
  3421.  
  3422. <(2) Replace the paragraph>
  3423.  
  3424. Implementations shall provide the following functions:
  3425.  
  3426.     struct tm *gmtime(t) time_t *t;
  3427.     struct tm *localtime(t) time_t *t;
  3428.     int settz(p) char *p;
  3429.     char *asctime(tp) struct tm *tp;
  3430.     char *ctime(t) time_t *t;
  3431.  
  3432. <with the following paragraphs>
  3433.  
  3434. The "tm" structure shall be defined as:
  3435.  
  3436.     struct tm {
  3437.         int tm_sec;    /\(** seconds (0 - 59) \(**/
  3438.         int tm_min;    /\(** minutes (0 - 59) \(**/
  3439.         int tm_hour;    /\(** hours (0 - 23) \(**/
  3440.         int tm_mday;    /\(** day of month (1 - 31) \(**/
  3441.         int tm_mon;    /\(** month of year (0 - 11) \(**/
  3442.         int tm_year;    /\(** year \- 1900 \(**/
  3443.         int tm_wday;    /\(** day of week (Sunday = 0) \(**/
  3444.         int tm_yday;    /\(** day of year (0 - 365) \(**/
  3445.         int tm_isdst;    /\(** is DST in effect? \(**/
  3446.         long tm_tzadj;    /\(** time zone adjustment \(**/
  3447.         char *tm_tnptr;    /\(** points to time zone name \(**/
  3448.     };
  3449.  
  3450. where  tm_isdst is non-zero if a time zone  adjustment  such as Daylight
  3451. Savings Time is in effect,  tm_tzadj is the  difference  between GMT and
  3452. local  time  expressed  in  seconds,  and  tm_tnptr  points  to a string
  3453. containing the time zone abbreviation.
  3454.  
  3455. The tm_isdst,  tm_tzadj, and tm_tnptr members of the tm structure may be
  3456. viewed as equivalents to the daylight,  timezone, and tzname[]  external
  3457. variables  however  their  values  track  those  in the  rest  of the tm
  3458. structure.
  3459.  
  3460. Implementations shall provide the following functions:
  3461.  
  3462.     struct tm *gmtime(t) time_t *t;
  3463.     struct tm *localtime(t) time_t *t;
  3464.     int settz(p) char *p;
  3465.     char *asctime(tp) struct tm *tp;
  3466.     char *ctime(t) time_t *t;
  3467.     int strftime (p, n, f, tp) char *p, int n, char *f, struct tm *tp;
  3468.     int strctime (p, n, f, t) char *p, int n, char *f, time_t *t;
  3469.     time_t mktime (tp) struct tm *tp;
  3470.  
  3471. <(3) Add after the paragraph describing ctime the following paragraphs>
  3472.  
  3473. strftime:  supports  formatted  output of date and time,  according to a
  3474. user-supplied  format string.  Locale-specific  values such as month and
  3475. weekday names are provided  according to the currently  defined  locale.
  3476. (The  method  of  setting  locale  will  be  addressed   elsewhere.  The
  3477. setlocale  or  nl_init   routines  are   currently   available  in  some
  3478. implementations.)  Strftime  limits the length of the return string p to
  3479. be  no  greater  than  n  characters  (including  the  terminating  null
  3480. character).  The  actual  number  of  characters   (excluding  the  null
  3481. character)  included in p is returned by each  successful  call.  Unlike
  3482. asctime, no newline is automatically appended to the formatted string.
  3483.  
  3484. strctime:  also supports formatting but takes time_t *t as an argument.
  3485.  
  3486. format:  uses field  descriptors  similar to those in the first argument
  3487. to printf(3S).  Numeric  output fields are of fixed size (zero padded if
  3488. necessary).  All other  characters  are  copied  to the  output  without
  3489. change.  Field descriptors are expanded as follows:
  3490.  
  3491.     %a is replaced by the abbreviated weekday name
  3492.  
  3493.     %A is replaced by the full weekday name
  3494.  
  3495.     %b is replaced by the abbreviated month name
  3496.  
  3497.     %B is replaced by the full month name
  3498.  
  3499.     %c is replaced by the appropriate date and time representation
  3500.  
  3501.     %d is replaced by the day of the month as a decimal number (01
  3502.        to 31)
  3503.  
  3504.     %H is replaced by the hour (24-hour clock) as a decimal number
  3505.        (00 to 23)
  3506.  
  3507.     %I is replaced by the hour (12-hour clock) as a decimal number
  3508.        (01 to 12)
  3509.  
  3510.     %j is replaced by the day of the year as a decimal number (001
  3511.        to 366)
  3512.  
  3513.     %m is replaced by the month as a decimal number (01 to 12)
  3514.  
  3515.     %M is replaced by the minute as a decimal number (00 to 59)
  3516.  
  3517.     %n is replaced by a new-line character
  3518.  
  3519.     %p is replaced by the equivalent of AM or PM
  3520.  
  3521.     %r is replaced by the appropriate (12-hour clock) time
  3522.        representation
  3523.  
  3524.     %S is replaced by seconds as a decimal number (00 to 59)
  3525.  
  3526.     %t is replaced by a tab character
  3527.  
  3528.     %U is replaced by the week number of the year with Sunday as the
  3529.        first day of the week (00 to 52)
  3530.  
  3531.     %V is replaced by the week number of the year with Monday as the
  3532.        first day of the week (00 to 52)
  3533.  
  3534.     %w is replaced by the weekday as a decimal number [0 (Sunday) to 6]
  3535.  
  3536.     %x is replaced by the appropriate date representation
  3537.  
  3538.     %X is replaced by the appropriate time representation
  3539.  
  3540.     %y is replaced by the year without century (00 to 99)
  3541.  
  3542.     %Y is replaced by the year with century
  3543.  
  3544.     %Z is replaced by the time zone name
  3545.  
  3546.     %% is replaced by %
  3547.  
  3548. <(4) Add the following paragraph after those mentioned in (3)>
  3549.  
  3550. mktime:  computes a long integer time value from a time value  contained
  3551. in a "tm" structure.  The values of tm_wday and tm_yday are  overwritten
  3552. during this computation.
  3553.  
  3554. <(5) Remove all references to settz().  Localtime will use the value of TZ
  3555. to determine the what local time means.  If TZ is not set, then localtime
  3556. will return a best guess at localtime.>
  3557.  
  3558. Ron Tolley
  3559.  
  3560. Volume-Number: Volume 8, Number 65
  3561.  
  3562. From jsq  Sat Dec 13 11:54:22 1986
  3563. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3564. Newsgroups: mod.std.unix
  3565. Subject: Re: IEEE 1003.1 P.55
  3566. Message-Id: <6574@ut-sally.UUCP>
  3567. References: <5836@ut-sally.UUCP> <6543@ut-sally.UUCP>
  3568. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3569. Date: 13 Dec 86 17:54:06 GMT
  3570. Draft-9: TZ.P.055
  3571.  
  3572. From: seismo!gatech!emory!arnold@sally.utexas.edu (Arnold D. Robbins {EUCC})
  3573. Date: Fri, 12 Dec 86 13:36:36 EST
  3574. Organization: Math & Computer Science, Emory University, Atlanta
  3575.  
  3576.     Shouldn't there be some indication in errno that no conversion
  3577. was found [ by settz -mod ]? Otherwise, how is one's code supposed to know
  3578. that the string passed to settz() was valid and settz() couldn't find a
  3579. conversion? Both return -1!
  3580.  
  3581. [ Maybe EINVAL?  -mod ]
  3582.  
  3583. >4.5.4.2  Description
  3584. >    The localtime() function converts the calendar time pointed to
  3585.         ^^^^^^^^^^^
  3586. I think that this should be 'ctime', as that is the functionality
  3587. desribed by the next two lines:
  3588.  
  3589. >by timer to local time in the form of a string.  It is equivalent to
  3590. >    asctime(localtime(timer))
  3591.  
  3592. Otherwise, the proposal looks good to me!
  3593. ---
  3594. Arnold Robbins
  3595. CSNET:    arnold@emory    BITNET:    arnold@emoryu1
  3596. ARPA:    arnold%emory.csnet@csnet-relay.arpa
  3597. UUCP:    { akgua, decvax, gatech, sb1, sb6, sunatl }!emory!arnold
  3598.  
  3599.  
  3600. Volume-Number: Volume 8, Number 66
  3601.  
  3602. From jsq  Sat Dec 13 12:01:17 1986
  3603. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3604. Newsgroups: mod.std.unix
  3605. Subject: time for time details
  3606. Message-Id: <6575@ut-sally.UUCP>
  3607. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3608. Date: 13 Dec 86 18:00:47 GMT
  3609. Draft-9: TZ
  3610.  
  3611. From: utah-cs!hplabs!hpfcla!hpfclj!hpfcdg!rgt (Ron Tolley)
  3612. Date: Thu, 11 Dec 86 18:16:53 est
  3613.  
  3614. GMT and UTC are not the same.
  3615.  
  3616. The  following  is a list of leap  seconds  which  have  been  added  to
  3617. Universal Coordinated Time (UTC) in order to keep it relatively close to
  3618. solar time.  Note that with  Greewich Mean Time, such  corrections  were
  3619. made  by  stretching  or  contracting  the  length  of  seconds.  UTC is
  3620. generally available through time standards, GMT not readily available.
  3621.  
  3622.     1)    1972 June 30 23:59:60
  3623.     2)    1972 June 30 23:59:61
  3624.     3)    1973 June 30 23:59:60
  3625.     4)    1974 June 30 23:59:60
  3626.     5)    1975 June 30 23:59:60
  3627.     6)    1976 June 30 23:59:60
  3628.     7)    1977 June 30 23:59:60
  3629.     8)    1978 June 30 23:59:60
  3630.     9)    1979 June 30 23:59:60
  3631.     10)    1981 June 30 23:59:60
  3632.     11)    1982 June 30 23:59:60
  3633.     12)    1983 June 30 23:59:60
  3634.     13)    1985 June 30 23:59:60
  3635.  
  3636. This is data derived from an AP story from May 1985.  No data since then
  3637. is known.  There is also no indication  whether the insertions were made
  3638. in local time or in UTC.  Local time is  assumed.  (Wouldn't  Australia,
  3639. Newfoundland,  and other half-hour-off places have fun with inserting an
  3640. extra second in the middle of a pseudo-random hour.)
  3641.  
  3642. This  information  has been pieced  together from scattered  sources.  I
  3643. reserve the right to be proven wrong.
  3644.  
  3645. Ron Tolley
  3646.  
  3647. Volume-Number: Volume 8, Number 67
  3648.  
  3649. From jsq  Tue Dec 23 10:50:58 1986
  3650. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3651. Newsgroups: mod.std.unix
  3652. Subject: Re: time for time details
  3653. Message-Id: <6706@ut-sally.UUCP>
  3654. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3655. Date: 23 Dec 86 16:50:43 GMT
  3656. Draft-9: TZ
  3657.  
  3658. From: guy@sun.com (Guy Harris)
  3659. Date: Sat, 13 Dec 86 14:14:04 PST
  3660.  
  3661. > GMT and UTC are not the same.
  3662.  
  3663. However, it's not clear whether the term "GMT", when used in documents
  3664. describing the way UNIX handles time, refers to GMT or to the time that
  3665. would be kept by a clock set to local British time at some point when
  3666. British Summer Time is not in effect and then left to run free.
  3667.  
  3668. Since, as you point out, GMT is not readily available from time sources, and
  3669. since most hardware and most implementations don't know how to stretch or
  3670. shrink seconds, I suspect most implementations definitely don't provide real
  3671. live GMT.  In fact, since most hardware doesn't receive any UTC broadcasts,
  3672. most implementations don't provide real live UTC, either.  (Some machines
  3673. don't even do that great a job at providing *any* sort of
  3674. precise-to-the-second indication of current time, given the tendency of
  3675. their clocks to drift, or the fact that their clocks are set from somebody's
  3676. wristwatch.)
  3677.  
  3678. This is all somewhat irrelevant to machines that don't synchronize with UTC
  3679. and don't know about leap seconds.  Machines that do synchronize with UTC
  3680. will have to worry about whether particular time zones follow UTC or not.
  3681. If they insert the leap seconds at the same instant that UTC does, there's
  3682. no real problem; if they don't, the offset between UTC and local time
  3683. presumably just slowly drifts from being an even number of half-hours.
  3684.  
  3685. Volume-Number: Volume 8, Number 68
  3686.  
  3687. From jsq  Tue Dec 23 11:01:14 1986
  3688. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3689. Newsgroups: mod.std.unix
  3690. Subject: Adding leap seconds to UTC
  3691. Message-Id: <6707@ut-sally.UUCP>
  3692. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3693. Date: 23 Dec 86 17:00:59 GMT
  3694. Draft-9: TZ
  3695.  
  3696. From: harvard!EDDIE.MIT.EDU!mit-eddie!cullvax!drw (Dale Worley)
  3697. Date: Mon, 15 Dec 86 14:27:02 est
  3698.  
  3699. The leap second would have to be added at the same time everywhere
  3700. (about 00:00 "GMT"), otherwise UTC wouldn't be "coordinated", i.e.,
  3701. the same everywhere.  If it sounds weird to stick an extra second in a
  3702. random hour in Australia, think of what would happen if UTC was
  3703. different between Australia and Britain by one second for several
  3704. hours of a random day!
  3705.  
  3706. Dale
  3707.  
  3708. Volume-Number: Volume 8, Number 69
  3709.  
  3710. From jsq  Tue Dec 23 11:05:15 1986
  3711. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3712. Newsgroups: mod.std.unix
  3713. Subject: Re: strftime et al.
  3714. Message-Id: <6708@ut-sally.UUCP>
  3715. References: <6572@ut-sally.UUCP>
  3716. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3717. Date: 23 Dec 86 17:05:01 GMT
  3718. Draft-9: TZ.strftime
  3719.  
  3720. From: chris@mimsy.umd.edu (Chris Torek)
  3721. To: std-unix@sally.utexas.edu, hpfcdg!rgt%hplabs.csnet@relay.cs.net
  3722. Date: Mon, 15 Dec 86 16:25:27 EST
  3723.  
  3724. The time string formats seem to express a fair number of similar
  3725. numeric entities:
  3726. ...
  3727. >    %H is replaced by the hour (24-hour clock) as a decimal number
  3728. >       (00 to 23)
  3729. >    %I is replaced by the hour (12-hour clock) as a decimal number
  3730. >       (01 to 12)
  3731. ...
  3732. >    %U is replaced by the week number of the year with Sunday as the
  3733. >       first day of the week (00 to 52)
  3734. >    %V is replaced by the week number of the year with Monday as the
  3735. >       first day of the week (00 to 52)
  3736. >    %w is replaced by the weekday as a decimal number [0 (Sunday) to 6]
  3737. ...
  3738. >    %y is replaced by the year without century (00 to 99)
  3739. >    %Y is replaced by the year with century
  3740.  
  3741. Now, time conversion may or may not be anywhere near as complex a
  3742. task as terminal control, but it seems to me that we may be repeating
  3743. the mistake made with termcap, repaired in terminfo.  Rather than
  3744. defining a specific set of numeric values, perhaps strftime, like
  3745. terminfo, should have a small calculator built in.  Then, e.g.,
  3746. `%y' and `%Y' are unnecessary.  `%y' could push the year-with-century,
  3747. and `%{100}' the value 100; invoking mod (`%%'? the name may prove
  3748. problematical) and `%2d' could then produce the year-without-century.
  3749. -- 
  3750. In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
  3751. UUCP:    seismo!mimsy!chris    ARPA/CSNet:    chris@mimsy.umd.edu
  3752.  
  3753. Volume-Number: Volume 8, Number 70
  3754.  
  3755. From jsq  Tue Dec 23 11:10:25 1986
  3756. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3757. Newsgroups: mod.std.unix
  3758. Subject: 1003.2 Quarterly Report
  3759. Message-Id: <6709@ut-sally.UUCP>
  3760. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3761. Date: 23 Dec 86 17:10:10 GMT
  3762. Draft-9: 1003.2.Quarterly.Report
  3763.  
  3764. From: seismo!amdahl!hlj@sally.utexas.edu (Hal Jespersen)
  3765. Cc: meccts!posix@sally.utexas.edu
  3766. Date: Sun, 14 Dec 86 15:02:33 PST
  3767.  
  3768. John, here is the quarterly report from 1003.2, which you may post to
  3769. mod.std.unix, if you feel it is of general interest.  I'm copying the
  3770. posix mailing list, FYI.  The actual list of commands I refer to in this
  3771. report will be in my next posting.  That should get some comments, I'd
  3772. think.
  3773.  
  3774.  
  3775.            P1003.2 Working Group Quarterly Report-December 1986
  3776.  
  3777.                               Hal Jespersen
  3778.  
  3779.                             Amdahl Corporation
  3780.  
  3781.  
  3782.        December 14, 1986
  3783.  
  3784.        The P1003.2 Shell and Utilities Working Group met in
  3785.        Atlantic City, NJ, December 8 and 9, 1986.  The meeting was
  3786.        one and a half days, concurrent with 1003.3 and the 1003.1
  3787.        Real Time Subcommittee, and prior to the 1003.1 Working
  3788.        Group meeting.
  3789.  
  3790.        The following were the highlights of the meeting:
  3791.  
  3792.           + Three proposals for command groups were received and
  3793.             reviewed.  AT&T presented their System V Interface
  3794.             Definition (SVID) grouping-a base, plus extensions.
  3795.             Doug Gwyn of the U.S. Army presented his idea of a
  3796.             single command group, with recommended inclusions.  The
  3797.             X/OPEN Group forwarded its list of commands, divided
  3798.             into a mandatory group and an optional software
  3799.             development group.  The Working Group adopted this
  3800.             latter approach for its Draft 2:  an ``Execution
  3801.             Environment'' and an optional ``Software Development
  3802.             Environment.'' A mandatory ``Application Installation
  3803.             Environment'' is also being considered.
  3804.  
  3805.           + The Working Group tentatively approved the contents of
  3806.             the command environments.  From a list of 141 common
  3807.             commands, it categorized them as follows:
  3808.  
  3809.               __________________________________________________
  3810.              |            |  Included |  Excluded |  Undecided |
  3811.              |____________|___________|___________|____________|
  3812.              | Execution  |     58    |     18    |      34    |
  3813.              |____________|___________|___________|____________|
  3814.              | Development|     17    |      3    |      11    |
  3815.              |____________|___________|___________|____________|
  3816.  
  3817.           + Both AT&T and X/OPEN have offered the use of their
  3818.             command documentation as a basis for the proposed
  3819.             standard.  Non-disclosure agreements are being analyzed
  3820.             for IEEE's approval.
  3821.  
  3822.           + Draft 2 of the proposed standard will include command
  3823.             descriptions for all commands selected in this meeting.
  3824.             The initial source will be the SVID.
  3825.  
  3826.           + The Working Group encountered its first pressure to
  3827.             accommodate international character sets, date formats,
  3828.             collating sequences, etc.  A proposal on ``regular
  3829.             expressions'' will be forwarded to the /usr/group
  3830.             Technical Committee on Internationalization for its
  3831.             comments and recommendations.
  3832.  
  3833.        The next meeting is scheduled for April 20 and 21, 1987, in
  3834.        Toronto.  It will be two full days, beginning at 9:00 am
  3835.        each day.  The 1003.1 meeting will follow for the remainder
  3836.        of the week.
  3837.  
  3838.        Subsequent meetings:
  3839.  
  3840.           + June 24 through 26, 1987, in Seattle.  (1003.1 will
  3841.             precede.)
  3842.  
  3843.           + September 14 through 16, 1987 (dates approximate), in
  3844.             the Boston vicinity.
  3845.  
  3846.  
  3847.                                      Hal Jespersen
  3848.                                      Amdahl Corp.
  3849.                                      M/S 316
  3850.                                      1250 East Arques Ave
  3851.                                      Sunnyvale, CA 94088
  3852.                                      ...{ihnp4|hplabs|seismo|decwrl}!amdahl!hlj
  3853.                                      (408) 746-8288
  3854.  
  3855.  
  3856. Volume-Number: Volume 8, Number 71
  3857.  
  3858. From jsq  Tue Dec 23 11:19:43 1986
  3859. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3860. Newsgroups: mod.std.unix
  3861. Subject: 1003.2 Command Groups
  3862. Message-Id: <6710@ut-sally.UUCP>
  3863. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3864. Date: 23 Dec 86 17:19:30 GMT
  3865. Draft-9: 1003.2.Command.Groups
  3866.  
  3867. From: seismo!amdahl!hlj@sally.utexas.edu (Hal Jespersen)
  3868. Date: Sun, 14 Dec 86 15:49:17 PST
  3869.  
  3870. The following commands were considered by the 1003.2 Working Group
  3871. for inclusion in Draft 2.
  3872.  
  3873. Strong Support for INCLUSION in "Execution Environment" (mandatory)
  3874.  
  3875.     ar          awk        basename      cat        cd
  3876.     chgrp          chmod        chown      cmp        comm
  3877.     cp          cut        date      dd        diff
  3878.     dirname          echo        ed          egrep        expr
  3879.     false          find        getopts      grep        join
  3880.     kill          ln        logname      ls        mkdir
  3881.     mkfifo          mv        od          paste        pr
  3882.     pwd          rm        rmdir      sed        sh
  3883.     sleep          sort        stty      sum        tar
  3884.     tee          test        touch      tr        true
  3885.     tty          umask        uname      uniq        wait
  3886.     wc
  3887.  
  3888. Strong Support for INCLUSION in "Software Development Environment"
  3889. (optional)
  3890.  
  3891.     admin          cc        delta      get        ld
  3892.     lex          make        prs          rmdel        sact
  3893.     size          time        unget      val        what
  3894.     xargs          yacc
  3895.  
  3896. Strong Support for EXCLUSION (from either environment)
  3897.  
  3898.     as          banner        cal          calendar    cu
  3899.     dis          mknod        news      nl        red
  3900.     rsh          sdb        shl          uucp        uulog
  3901.     uuname          uupick        uustat      uuto        uux
  3902.     vi          wall        write
  3903.  
  3904. No Decision Yet
  3905.  
  3906.     at          batch        cancel      cflow        chroot
  3907.     col          cpio        cpp          crontab    csplit
  3908.     cxref          df        dircmp      du        env
  3909.     ex          file        id          line        lint
  3910.     lorder          lp        lpstat      m4        mail
  3911.     mailx          mesg        newgrp      nm        nohup
  3912.     pack          passwd        pcat      pg        prof
  3913.     ps          spell        split      strip        su
  3914.     tabs          tail        tsort      unpack    who
  3915.  
  3916. For those who haven't kept up with the 1003.2 charter, a brief word of
  3917. explanation.  We have tended to exclude commands that are not useful
  3918. when called from application C programs and shell scripts; vi and sdb
  3919. are good examples of these.
  3920.  
  3921. The total list of commands considered was provided by the X/OPEN Group,
  3922. which seemed like a reasonable starting point.
  3923.  
  3924. The Working Group solicits your opinions on these groupings and on the
  3925. specific commands selected for each.
  3926.  
  3927.  
  3928.                 Hal Jespersen
  3929.                 (408) 746-8288
  3930.                 ...{ihnp4|hplabs|seismo|decwrl}!amdahl!hlj
  3931.                 Amdahl Corporation
  3932.                 Mailstop 316
  3933.                 1250 East Arques Avenue
  3934.                 Sunnyvale, CA 94088-3470
  3935.  
  3936.  
  3937. Volume-Number: Volume 8, Number 72
  3938.  
  3939. From jsq  Tue Dec 23 11:26:48 1986
  3940. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  3941. Newsgroups: mod.std.unix
  3942. Subject: Re: time for time details
  3943. Message-Id: <6711@ut-sally.UUCP>
  3944. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  3945. Date: 23 Dec 86 17:26:33 GMT
  3946. Draft-9: TZ
  3947.  
  3948. From: seismo!nbires!vianet!devine (Bob Devine)
  3949. Date: Wed, 17 Dec 86 19:39:53 EST
  3950.  
  3951.   This is in response to Ron Tolley's article that appeared in mod.std.unix
  3952. last week.  My reply corrects the errors.
  3953.  
  3954. Bob Devine
  3955.  
  3956. ------------------------------------------------------------------
  3957.  
  3958. > GMT and UTC are not the same.
  3959.  
  3960.   Yes they are (within a very small delta).  GMT (Greenwich Mean Time)
  3961. is maintained by the UK while UTC (Universal Coordinated Time) is maintained
  3962. by the International Time Bureau in Paris (BIH).  The WWV* broadcasts in the
  3963. US are not exactly UTC but neither is GMT.  However, they are within
  3964. nanoseconds of UTC.  WWV (and WWVB and WWVH) are the US's official
  3965. distributors of the time according to the US's clocks.
  3966.  
  3967.   Some confusion results from the use of "GMT".   In common usage, it
  3968. means what time it is in the timezone centered on the Greenwich Observatory
  3969. which defines zero degrees longitude.  It also means the official UK
  3970. time.  GMT is no longer the global standard for time; UTC is (since 1972).
  3971.  
  3972.   UTC is an average of all the contributing countrys' clocks (US, UK,
  3973. France, Italy, Japan etc all contribute to UTC).  The change of UTC
  3974. to stay close to UT1 (the "spinning earth" time) is through the adding
  3975. or subtracting of leap seconds.  BIH makes recommendations for such
  3976. leap seconds and it is up to the individual countries to follow them.
  3977. I don't know of any case where a leap second recommedation was not
  3978. followed by a country for its clocks; it doesn't make sense to disregard them.
  3979.  
  3980.  
  3981. > The  following  is a list of leap  seconds  which  have  been  added  to
  3982. > Universal Coordinated Time (UTC) in order to keep it relatively close to
  3983. > solar time.  Note that with  Greewich Mean Time, such  corrections  were
  3984. > made  by  stretching  or  contracting  the  length  of  seconds.  UTC is
  3985. > generally available through time standards, GMT not readily available.
  3986. > This is data derived from an AP story from May 1985.  No data since then
  3987. > is known.  There is also no indication  whether the insertions were made
  3988. > in local time or in UTC.  Local time is  assumed.  (Wouldn't  Australia,
  3989. > Newfoundland,  and other half-hour-off places have fun with inserting an
  3990. > extra second in the middle of a pseudo-random hour.)
  3991.  
  3992.   A second is not stretched/contracted for leap second adjustments.  The
  3993. selected minute will have 59 or 61 seconds.  There are agreements as to
  3994. which minute is selected and the BIH issues its recommendation far in
  3995. advance selecting the minute.  Currently, and unless the earth goes wacko,
  3996. a second is usually added once a year.
  3997.  
  3998. Bob Devine
  3999.  
  4000. Volume-Number: Volume 8, Number 73
  4001.  
  4002. From jsq  Tue Dec 23 12:21:14 1986
  4003. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  4004. Newsgroups: mod.std.unix
  4005. Subject: Re: ctime - HP proposal - bug
  4006. Message-Id: <6712@ut-sally.UUCP>
  4007. References: <6572@ut-sally.UUCP>
  4008. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  4009. Date: 23 Dec 86 18:20:48 GMT
  4010. Draft-9: TZ
  4011.  
  4012. From: colonel%buffalo.csnet@relay.cs.net 
  4013. Date: Tue, 16 Dec 86 12:29:00 EST
  4014.  
  4015. > From: utah-cs!hplabs!hpfcla!hpfclj!hpfcdg!rgt (Ron Tolley)
  4016. > Date: Wed, 10 Dec 86 18:51:58 est
  4017. > The HP proposal  boils down to five  changes to the RFC.001  Timezone
  4018. > Interface  by Robert Elz.  ...
  4019. >
  4020. >     %U is replaced by the week number of the year with Sunday as the
  4021. >        first day of the week (00 to 52)
  4022. >     %V is replaced by the week number of the year with Monday as the
  4023. >        first day of the week (00 to 52)
  4024.  
  4025. While I like the overall idea, this part needs work.
  4026.  
  4027. 1. Is week 01 the first complete week?  Or is week 00 the first full week
  4028.    or fragment of one?
  4029.  
  4030. 2. If the year begins on Saturday and ends on Monday, it will have 54
  4031.    weeks.  Obviously they cannot be numbered 00 to 52!
  4032.  
  4033. By the way, how about using %P for AM/PM and %p for am/pm?
  4034.  
  4035. Volume-Number: Volume 8, Number 74
  4036.  
  4037. From jsq  Tue Dec 23 20:10:23 1986
  4038. From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman)
  4039. Newsgroups: mod.std.unix
  4040. Subject: End of Volume 8 of mod.std.unix
  4041. Message-Id: <6714@ut-sally.UUCP>
  4042. Organization: IEEE P1003 Portable Operating System for Computer Environments Committee
  4043. Date: 24 Dec 86 02:09:45 GMT
  4044. Draft-9: mod.std.unix
  4045.  
  4046. This is the end of Volume 8 of mod.std.unix (aka std-unix@sally.utexas.edu).
  4047. Volume 9 will commence with the new year.  Submissions arriving meanwhile
  4048. will be saved for later posting.
  4049.  
  4050. Volume-Number: Volume 8, Number 75
  4051.  
  4052.