home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume19 / shape / part04 < prev    next >
Text File  |  1989-05-31  |  59KB  |  1,849 lines

  1. Subject:  v19i017:  A software configuration management system, Part04/33
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Axel Mahler <unido!coma!axel>
  7. Posting-number: Volume 19, Issue 17
  8. Archive-name: shape/part04
  9.  
  10.  
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 4 (of 33)."
  19. # Contents:  man/man1/rcs2afs.1 man/man3/affiles.3 man/man3/aflock.3
  20. #   man/man3/afsetops.3 man/man3/afsets.3 src/Makefile
  21. #   src/afs/afsymtab.c src/afs/lcs.main.c src/misc/Makefile
  22. #   src/shape/sighand.c src/vc/vadm.h src/vc/vadm_utils.c src/vc/vl.c
  23. #   src/vc/vl.h tutorial/trouble.ms
  24. # Wrapped by rsalz@papaya.bbn.com on Thu Jun  1 19:26:51 1989
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f 'man/man1/rcs2afs.1' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'man/man1/rcs2afs.1'\"
  28. else
  29. echo shar: Extracting \"'man/man1/rcs2afs.1'\" \(3547 characters\)
  30. sed "s/^X//" >'man/man1/rcs2afs.1' <<'END_OF_FILE'
  31. X...
  32. X... Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  33. X...  and U. Pralle
  34. X... 
  35. X... This software is published on an as-is basis. There is ABSOLUTELY NO
  36. X... WARRANTY for any part of this software to work correctly or as described
  37. X... in the manuals. We do not accept any liability for any kind of damage
  38. X... caused by use of this software, such as loss of data, time, money, or 
  39. X... effort.
  40. X... 
  41. X... Permission is granted to use, copy, modify, or distribute any part of
  42. X... this software as long as this is done without asking for charge, and
  43. X... provided that this copyright notice is retained as part of the source
  44. X... files. You may charge a distribution fee for the physical act of
  45. X... transferring a copy, and you may at your option offer warranty
  46. X... protection in exchange for a fee.
  47. X... 
  48. X... Direct questions to: Tech. Univ. Berlin
  49. X...              Wilfried Koch
  50. X...              Sekr. FR 5-6 
  51. X...              Franklinstr. 28/29
  52. X...              D-1000 Berlin 10, West Germany
  53. X... 
  54. X...              Tel: +49-30-314-22972
  55. X...              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  56. X... 
  57. X...
  58. X... $Header: rcs2afs.1[1.0] Thu Feb 23 19:01:44 1989 uli@coma published $
  59. X... 
  60. X... Log for /u/shape/dist-tape/bin/rcs2afs.1[1.0]
  61. X...     Thu Feb 23 19:01:44 1989 uli@coma published $
  62. X...  --- empty log message ---
  63. X...
  64. X.UC
  65. X.TH RCS2AFS 1 rcs2afs
  66. X.SH NAME
  67. Xrcs2afs \- convert an RCS file into an AFS file
  68. X.SH SYNOPSIS
  69. X\fBrcs2afs\fR [\ \fI-hq\fR\ ]\ [\ \fI-preserve\fR\ ]\ [\ \fI-mode\fR\ mode ]\ [\ \fI-incremental\fR\ ] name\|.\|.
  70. X.SH DESCRIPTION
  71. X.PP
  72. X\fBrcs2afs\fR is a tool for converting an existing RCS file into an
  73. XAFS file. Comment leader and symbolic names are preserved. Existing busy
  74. Xversions are temorarily saved and restored after completion.
  75. X.PP
  76. XThe following \fIoptions\fR are recognized:
  77. X.IP "\fB\-h\fR"
  78. Xprint shorthand instructions about using \fBrcs2afs\fR.
  79. X.PP
  80. X.IP "\fB\-q\fR"
  81. Xquiet operation. No messages are printed on standard output. If any
  82. Xerror occurs during execution, \fBrcs2afs\fR assumes a fatal error
  83. Xand exits (sometimes ungracefully). Otherwise the user will be
  84. Xinformed and must confirm the continuation.
  85. X.PP
  86. X.IP "\fB\-preserve\fR"
  87. XCauses \fBrcs2afs\fR to preserve RCS version numbering. If this option
  88. Xis not given, AFS version numbering is used, especially no holes
  89. Xappear in version numbering.
  90. X.PP
  91. X.IP "\fB\-mode\fR mode"
  92. XCauses \fBrcs2afs\fR to save AFS versions with mode \fImode\fR. If this
  93. Xoption is not given, \fI mode \fR defaults to 644.
  94. X.PP
  95. X.IP "\fB\-incremental\fR"
  96. XCauses \fBrcs2afs\fR to convert only those RCS version that are
  97. Xnot member of its AFS counterpart. If this option is not given,
  98. Xthe existing AFS file will be deleted and the entire RCS file 
  99. Xis converted. \fBThis option is currently not implemented\fR. 
  100. X.RE
  101. X.SH SEE ALSO
  102. Xsave(1), retrv(1), vl(1), vadm(1), csh(1), chmod(1), af_intro(3), 
  103. Xaf_archive(5)
  104. X.PP
  105. XRecommended reading: A. Mahler, A. Lampen, \fI\(lqAn Integrated
  106. XToolkit for Engineering Software Configurations\(rq\fR, Proceedings of
  107. Xthe ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical
  108. XSoftware Development Environments
  109. X.SH BUGS
  110. X\fBRcs2afs\fR gives up on branches in RCS files.
  111. X.br
  112. XBecause \fBrcs2afs\fR is implemented as a csh(1) script, it's execution
  113. Xis painfully slow. Other bugs are yet unknown. Please report any bugs
  114. Xto the author.
  115. X.SH NOTES
  116. XA converter for sccs archives is yet unavailable. To convert
  117. Xsccs archive files use first sccstorcs(8).
  118. X.SH AUTHOR
  119. XUli Pralle
  120. X.br
  121. XTechnical University Berlin
  122. X.sp
  123. X\fIUUCP:\fR        uli@coma.uucp (unido!coma!uli)
  124. X.br
  125. X\fIBITNET:\fR    uli@db0tui62
  126. END_OF_FILE
  127. if test 3547 -ne `wc -c <'man/man1/rcs2afs.1'`; then
  128.     echo shar: \"'man/man1/rcs2afs.1'\" unpacked with wrong size!
  129. fi
  130. # end of 'man/man1/rcs2afs.1'
  131. fi
  132. if test -f 'man/man3/affiles.3' -a "${1}" != "-c" ; then 
  133.   echo shar: Will not clobber existing file \"'man/man3/affiles.3'\"
  134. else
  135. echo shar: Extracting \"'man/man3/affiles.3'\" \(3578 characters\)
  136. sed "s/^X//" >'man/man3/affiles.3' <<'END_OF_FILE'
  137. X...
  138. X... Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  139. X...  and U. Pralle
  140. X... 
  141. X... This software is published on an as-is basis. There is ABSOLUTELY NO
  142. X... WARRANTY for any part of this software to work correctly or as described
  143. X... in the manuals. We do not accept any liability for any kind of damage
  144. X... caused by use of this software, such as loss of data, time, money, or 
  145. X... effort.
  146. X... 
  147. X... Permission is granted to use, copy, modify, or distribute any part of
  148. X... this software as long as this is done without asking for charge, and
  149. X... provided that this copyright notice is retained as part of the source
  150. X... files. You may charge a distribution fee for the physical act of
  151. X... transferring a copy, and you may at your option offer warranty
  152. X... protection in exchange for a fee.
  153. X... 
  154. X... Direct questions to: Tech. Univ. Berlin
  155. X...              Wilfried Koch
  156. X...              Sekr. FR 5-6 
  157. X...              Franklinstr. 28/29
  158. X...              D-1000 Berlin 10, West Germany
  159. X... 
  160. X...              Tel: +49-30-314-22972
  161. X...              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  162. X... 
  163. X.TH AF_FILES 3 "" \n(dy.\n(mo.\n(yr
  164. X.SH NAME
  165. Xaf_files \(em filesystem primitives for attributed software objects
  166. X.SH SYNOPSIS
  167. X\fB#include <stdio.h>
  168. X.br
  169. X#include <afs.h>
  170. X.sp
  171. Xaf_crkey (syspath, name, type, key)
  172. X.br
  173. Xchar    *syspath, *name, *type;
  174. X.br
  175. XAf_key    *key;
  176. X.sp
  177. XFILE *af_open (key, mode)
  178. X.br
  179. XAf_key    *key;
  180. X.br
  181. Xchar    *mode;
  182. X.sp
  183. Xaf_close (filedes)
  184. X.br
  185. XFILE    *filedes;
  186. X.sp
  187. Xaf_link (srckey, destkey);
  188. X.br
  189. XAf_key    *srckey, *destkey;
  190. X.sp
  191. Xaf_rm (key);
  192. X.br
  193. XAf_key    *key;
  194. X.sp
  195. Xaf_restore (key, restoredkey)
  196. X.br
  197. XAf_key    *key, *restoredkey;
  198. X.SH DESCRIPTION
  199. X\fIAf_crkey\fR creates an object key for a regular \s-1UNIX\s+1
  200. Xfile identified by name, type and system path.
  201. XIf the named \s-1UNIX\s+1 file does not exist, an empty file is created.
  202. XUse \fIaf_dropkey\fR to free the allocated memory associated with
  203. X\fIkey\fR.
  204. X.PP
  205. X\fIAf_open\fR opens the ASO pointed to by \fIkey\fR.
  206. XA pointer to the corresponding FILE-structure is returned.
  207. X\fIMode\fR has to be \(lqr[+]\(rq, \(lqw[+]\(rq or \(lqa[+]\(rq,
  208. Xsee \fIfopen(3)\fR for further details.
  209. XUpon error, \fIaf_open\fR returns NULL.
  210. X.PP
  211. X\fIAf_close\fR closes an ASO (see \fIfclose(3)\fR).
  212. X.PP
  213. X\fBNote:\fR Non-busy ASOs can only be opened with mode \(lqr\(rq.
  214. XIf a non-busy ASO is opened, it will be placed
  215. Xin a temporary file due to storage of versions as deltas.
  216. XThis temporary file will be removed on execution of the corresponding
  217. X\fIaf_close\fR.
  218. X.PP
  219. X\fIAf_link\fR ... 
  220. X.PP
  221. X\fIAf_rm\fR removes the specified ASO. Multiple links to ASOs
  222. Xare not supported yet, so that \fIaf_rm\fR always does a physical
  223. Xremoval.
  224. XYou have to have a lock (see af_lock(3)) set on the ASO that
  225. Xshall be deleted by \fIaf_rm\fR.
  226. XASOs with the state attribute set to \fBaccessed\fR or
  227. X\fBfrozen\fR cannot be removed.
  228. XBe careful, if you keep multiple keys of one object (perhaps in different
  229. Xsets) \fIaf_rm\fR invalidates \fBall\fR keys of the removed object.
  230. X.PP
  231. X\Af_restore\fR is used to restore formerly saved derived ASOs
  232. Xinto their old location. This function cannot be applied to
  233. Xsource objects. \fIAf_restore\fR returns the key of the restored version
  234. Xin the buffer \fIrestoredkey\fR.
  235. X.SH SEE ALSO
  236. Xfopen(3), fclose(3), af_dropkey(3), af_lock(3)
  237. X.SH DIAGNOSTICS
  238. XUpon error, \-1 or a nil pointer (depending on the return type) is returned
  239. Xand \fIaf_errno\fR is set to the corresponding error number.
  240. X.SH BUGS
  241. X\fIAf_link\fR is not yet implemented.
  242. X.LP
  243. X\fIAf_open\fR and \fIaf_restore\fR may not be able to update the
  244. Xaccess date of the specified ASO. This error is ignored internally.
  245. X
  246. END_OF_FILE
  247. if test 3578 -ne `wc -c <'man/man3/affiles.3'`; then
  248.     echo shar: \"'man/man3/affiles.3'\" unpacked with wrong size!
  249. fi
  250. # end of 'man/man3/affiles.3'
  251. fi
  252. if test -f 'man/man3/aflock.3' -a "${1}" != "-c" ; then 
  253.   echo shar: Will not clobber existing file \"'man/man3/aflock.3'\"
  254. else
  255. echo shar: Extracting \"'man/man3/aflock.3'\" \(3088 characters\)
  256. sed "s/^X//" >'man/man3/aflock.3' <<'END_OF_FILE'
  257. X...
  258. X... Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  259. X...  and U. Pralle
  260. X... 
  261. X... This software is published on an as-is basis. There is ABSOLUTELY NO
  262. X... WARRANTY for any part of this software to work correctly or as described
  263. X... in the manuals. We do not accept any liability for any kind of damage
  264. X... caused by use of this software, such as loss of data, time, money, or 
  265. X... effort.
  266. X... 
  267. X... Permission is granted to use, copy, modify, or distribute any part of
  268. X... this software as long as this is done without asking for charge, and
  269. X... provided that this copyright notice is retained as part of the source
  270. X... files. You may charge a distribution fee for the physical act of
  271. X... transferring a copy, and you may at your option offer warranty
  272. X... protection in exchange for a fee.
  273. X... 
  274. X... Direct questions to: Tech. Univ. Berlin
  275. X...              Wilfried Koch
  276. X...              Sekr. FR 5-6 
  277. X...              Franklinstr. 28/29
  278. X...              D-1000 Berlin 10, West Germany
  279. X... 
  280. X...              Tel: +49-30-314-22972
  281. X...              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  282. X... 
  283. X.TH AF_LOCK 3 "" \n(dy.\n(mo.\n(yr
  284. X.SH NAME
  285. Xaf_lock \(em mechanism for reserving update rights in the Attribute Filesystem
  286. X.SH SYNOPSIS
  287. X\fB#include <afs.h>
  288. X.sp
  289. XAf_user *af_lock (key, locker, mode)
  290. X.br
  291. XAf_key    *key;
  292. X.br
  293. XAf_user    *locker;
  294. X.br
  295. Xint    mode;
  296. X.sp
  297. XAf_user *af_unlock (key, mode)
  298. X.br
  299. XAf_key    *key;
  300. X.br
  301. Xint    mode;
  302. X.sp
  303. XAf_user *af_testlock (key, mode)
  304. X.br
  305. XAf_key    *key;
  306. X.br
  307. Xint    mode;
  308. X.br
  309. X.SH DESCRIPTION
  310. XThis manual page describes the interface to the AFS locking mechanism.
  311. XA lock can either be set for a whole line of development (mode
  312. X\fIAF_GLOBALLOCK\fR) or for a single version (mode \fIAF_VERSIONLOCK\fR).
  313. XLocking the busy version is equivalent to setting a global lock on
  314. Xa line of development.
  315. XA new version can only be generated (see \fIaf_saverev\fR)
  316. Xif the line of development was previously locked for updating.
  317. XOnly one user can have the update permission for a line of development.
  318. XThis mechanism avoids concurrent updates in one line of development.
  319. XAny ASO can only be removed (see \fIaf_rm\fR) if it has
  320. Xbeen locked previously.
  321. X.PP
  322. X\fIAf_lock\fR reserves the update permission
  323. Xfor the user identified by \fIlocker\fR.
  324. XOn successful completion a buffer identical to \fIlocker\fR is returned,
  325. Xa NULL pointer otherwise.
  326. X.PP 
  327. X\fIAf_unlock\fR cancels a formerly established reservation of update rights.
  328. XOnly the \fIowner\fR or the \fIlocker\fR of an ASO (identified by the
  329. XAf_user structure that was given to the corresponding call of \fIaf_lock\fR)
  330. Xare allowed to do this.
  331. XOn successful completion, \fIaf_unlock\fR returns a buffer containing the
  332. Xidentification of the former \fIlocker\fR.
  333. XThis may be empty, if the ASO had not been locked.
  334. XUpon error, a NULL pointer is returned.
  335. X.PP
  336. X\fRAf_testlock\fR returns a buffer containing an identification of the
  337. Xcurrent locker of the specified ASO.
  338. XIt returns an empty buffer, if no lock is set.
  339. X.SH SEE ALSO
  340. Xaf_saverev(3)
  341. X.SH DIAGNOSTICS
  342. X\fIAf_lock\fR and \fIaf_unlock\fR return \-1 on error and \fIaf_errno\fR
  343. Xis set to indicate the error number.
  344. END_OF_FILE
  345. if test 3088 -ne `wc -c <'man/man3/aflock.3'`; then
  346.     echo shar: \"'man/man3/aflock.3'\" unpacked with wrong size!
  347. fi
  348. # end of 'man/man3/aflock.3'
  349. fi
  350. if test -f 'man/man3/afsetops.3' -a "${1}" != "-c" ; then 
  351.   echo shar: Will not clobber existing file \"'man/man3/afsetops.3'\"
  352. else
  353. echo shar: Extracting \"'man/man3/afsetops.3'\" \(3072 characters\)
  354. sed "s/^X//" >'man/man3/afsetops.3' <<'END_OF_FILE'
  355. X...
  356. X... Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  357. X...  and U. Pralle
  358. X... 
  359. X... This software is published on an as-is basis. There is ABSOLUTELY NO
  360. X... WARRANTY for any part of this software to work correctly or as described
  361. X... in the manuals. We do not accept any liability for any kind of damage
  362. X... caused by use of this software, such as loss of data, time, money, or 
  363. X... effort.
  364. X... 
  365. X... Permission is granted to use, copy, modify, or distribute any part of
  366. X... this software as long as this is done without asking for charge, and
  367. X... provided that this copyright notice is retained as part of the source
  368. X... files. You may charge a distribution fee for the physical act of
  369. X... transferring a copy, and you may at your option offer warranty
  370. X... protection in exchange for a fee.
  371. X... 
  372. X... Direct questions to: Tech. Univ. Berlin
  373. X...              Wilfried Koch
  374. X...              Sekr. FR 5-6 
  375. X...              Franklinstr. 28/29
  376. X...              D-1000 Berlin 10, West Germany
  377. X... 
  378. X...              Tel: +49-30-314-22972
  379. X...              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  380. X... 
  381. X.TH AF_SETOPS 3 "" \n(dy.\n(mo.\n(yr
  382. X.SH NAME
  383. Xaf_setops \(em complex operations on keysets
  384. X.SH SYNOPSIS
  385. X\fB#include <afs.h>
  386. X.sp
  387. Xaf_sortset (set1, attrname)
  388. X.br
  389. XAf_set    *set1;
  390. X.br
  391. Xchar    *attrname;
  392. X.sp
  393. Xaf_subset (set, attrbuf, subset)
  394. X.br
  395. XAf_set    *set, subset;
  396. X.br
  397. XAf_attrs *attrbuf;
  398. X.sp
  399. Xaf_copyset (source, destination)
  400. X.br
  401. XAf_set    *source, *destination;
  402. X.sp
  403. Xaf_intersect (set1, set2, newset)
  404. X.br
  405. XAf_set    *set1, *set2, *newset;
  406. X.sp
  407. Xaf_union (set1, set2, newset);
  408. X.br
  409. XAf_set    *set1, *set2, *newset;
  410. X.sp
  411. Xaf_diff (set1, set2, newset)
  412. X.br
  413. XAf_set    *set1, *set2, *newset;
  414. X.SH DESCRIPTION
  415. X\fIAf_sortset\fR sorts a given set of object keys by the values of
  416. Xthe named attribute.
  417. XThe set is sorted in increasing order.
  418. XIn \fIafs.h\fR you can find a list of attribute names, that denote the
  419. Xstandard attributes. All other attribute names are presumed to be
  420. Xuser defined attributes.
  421. XWhile sorting by the values of an user defined attribute, all ASOs
  422. Xthat do not have the named attribute are added at the end of the resulting
  423. X(sorted) set.
  424. X.br
  425. XThe length of the given attribute name is limited. This limit is
  426. Xdefined by the constant \fIAF_UDANAMLEN\fR in \fIafs.h\fR.
  427. X.PP
  428. X\fIAf_subset\fR does a retrieve operation (similar to \fIaf_find(3)\fR)
  429. Xon a given set of object keys.
  430. XThe retrieve arguments are passed in \fIattrbuf\fR which should be
  431. Xinitialized by \fIaf_initattrs(3)\fR before.
  432. X.PP
  433. X\fIAf_copyset\fR is for copying sets (really! =:-).
  434. X.PP
  435. XWith \fIaf_intersect\fR, \fIaf_union\fR and \fIaf_diff\fR you can
  436. Xbuild the intersection, the union or the difference between two sets.
  437. X.PP
  438. XSets generated by \fIaf_subset, af_intersect, af_union\fR of
  439. X\fIaf_diff\fR should be released by \fIaf_dropset\fR as soon as they
  440. Xare not used any longer.
  441. X.SH SEE ALSO
  442. Xaf_retrieve (3)
  443. X.SH DIAGNOSTICS
  444. XUpon error, \-1 is returned and \fIaf_errno\fR is set to the corresponding
  445. Xerror number.
  446. X.SH BUGS
  447. XSorting by user defined attributes bases on a simple text comparison.
  448. X.PP
  449. XA given hostname is ignored during \fIaf_subset\fR.
  450. END_OF_FILE
  451. if test 3072 -ne `wc -c <'man/man3/afsetops.3'`; then
  452.     echo shar: \"'man/man3/afsetops.3'\" unpacked with wrong size!
  453. fi
  454. # end of 'man/man3/afsetops.3'
  455. fi
  456. if test -f 'man/man3/afsets.3' -a "${1}" != "-c" ; then 
  457.   echo shar: Will not clobber existing file \"'man/man3/afsets.3'\"
  458. else
  459. echo shar: Extracting \"'man/man3/afsets.3'\" \(3043 characters\)
  460. sed "s/^X//" >'man/man3/afsets.3' <<'END_OF_FILE'
  461. X...
  462. X... Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  463. X...  and U. Pralle
  464. X... 
  465. X... This software is published on an as-is basis. There is ABSOLUTELY NO
  466. X... WARRANTY for any part of this software to work correctly or as described
  467. X... in the manuals. We do not accept any liability for any kind of damage
  468. X... caused by use of this software, such as loss of data, time, money, or 
  469. X... effort.
  470. X... 
  471. X... Permission is granted to use, copy, modify, or distribute any part of
  472. X... this software as long as this is done without asking for charge, and
  473. X... provided that this copyright notice is retained as part of the source
  474. X... files. You may charge a distribution fee for the physical act of
  475. X... transferring a copy, and you may at your option offer warranty
  476. X... protection in exchange for a fee.
  477. X... 
  478. X... Direct questions to: Tech. Univ. Berlin
  479. X...              Wilfried Koch
  480. X...              Sekr. FR 5-6 
  481. X...              Franklinstr. 28/29
  482. X...              D-1000 Berlin 10, West Germany
  483. X... 
  484. X...              Tel: +49-30-314-22972
  485. X...              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  486. X... 
  487. X.TH AF_SETS 3 "" \n(dy.\n(mo.\n(yr
  488. X.SH NAME
  489. Xaf_sets \(em simple operations on keysets
  490. X.SH SYNOPSIS
  491. X\fB#include <afs.h>
  492. X.sp
  493. Xaf_initset (set)
  494. X.br
  495. XAf_set    *set;
  496. X.sp
  497. Xaf_dropset (set)
  498. X.br
  499. XAf_set    *set;
  500. X.sp
  501. Xaf_nrofkeys (set)
  502. X.br
  503. XAf_set    *set;
  504. X.sp
  505. Xaf_setgkey (set, position, key)
  506. X.br
  507. XAf_set    *set;
  508. X.br
  509. Xint    position;
  510. X.br
  511. XAf_key    *key;
  512. X.sp
  513. Xaf_setaddkey (set, position, key)
  514. X.br
  515. XAf_set    *set;
  516. X.br
  517. Xint    position;
  518. X.br
  519. XAf_key    *key;
  520. X.sp
  521. Xaf_setrmkey (set, key)
  522. X.br
  523. XAf_set    *set;
  524. X.br
  525. XAf_key    *key;
  526. X.sp
  527. Xaf_setposrmkey (set, position)
  528. X.br
  529. XAf_set    *set;
  530. X.br
  531. Xint    position;
  532. X.SH DESCRIPTION
  533. X\fIAf_initset\fR creates an empty set of filekeys.
  534. X.PP
  535. X\fIAf_dropset\fR drops the given set of files and frees all memory that
  536. Xhas been allocated while building the set.
  537. X.PP
  538. X\fIAf_nrofkeys\fR returns the number of keys in the given fileset.
  539. X.PP
  540. X\fIAf_setgkey\fR delivers the filekey that is stored at position
  541. X\fIposition\fR in the identified set.
  542. XThe result is passed in the buffer \fIkey\fR.
  543. XTypically you use \fIaf_setgkey\fR to run through a set and perform
  544. Xa special action on each key.
  545. XThe following code sequence does this job:
  546. X.nf
  547. X    \fC...
  548. X    for (i = 0; i < af_nrofkeys (&set); i++) {
  549. X        af_setgkey (&set, i, &key);
  550. X        /* process key */
  551. X        ...
  552. X    }\fR
  553. X.fi
  554. X.PP
  555. X\fIAf_setaddkey\fR introduces a new filekey to an existing set at the given
  556. Xposition.
  557. XThe constant \fIAF_LASTPOS\fR given as \fIposition\fR argument
  558. Xleads to adding the new filekey at the end of the set.
  559. X.PP
  560. X\fIAf_setrmkey (af_setposrmkey)\fR removes the given filekey (the filekey at
  561. Xposition \fIposition\fR) from the specified set.
  562. X.br
  563. X\fBNote:\fR Holes that are generated by deleting single keys from a set
  564. Xare immediately eliminated by condensing the set. This means, that
  565. Xthe position of any key in a set may change because of deletion of
  566. Xanother key.
  567. X.SH SEE ALSO
  568. Xaf_retrieve (3)
  569. X.SH DIAGNOSTICS
  570. XUpon error, \-1 or a nil pointer (depending on the return type) is returned
  571. Xand \fIaf_errno\fR is set to the corresponding error number.
  572. X
  573. X
  574. END_OF_FILE
  575. if test 3043 -ne `wc -c <'man/man3/afsets.3'`; then
  576.     echo shar: \"'man/man3/afsets.3'\" unpacked with wrong size!
  577. fi
  578. # end of 'man/man3/afsets.3'
  579. fi
  580. if test -f 'src/Makefile' -a "${1}" != "-c" ; then 
  581.   echo shar: Will not clobber existing file \"'src/Makefile'\"
  582. else
  583. echo shar: Extracting \"'src/Makefile'\" \(3517 characters\)
  584. sed "s/^X//" >'src/Makefile' <<'END_OF_FILE'
  585. X#
  586. X# Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  587. X#  and U. Pralle
  588. X# 
  589. X# This software is published on an as-is basis. There is ABSOLUTELY NO
  590. X# WARRANTY for any part of this software to work correctly or as described
  591. X# in the manuals. We do not accept any liability for any kind of damage
  592. X# caused by use of this software, such as loss of data, time, money, or effort.
  593. X# 
  594. X# Permission is granted to use, copy, modify, or distribute any part of
  595. X# this software as long as this is done without asking for charge, and
  596. X# provided that this copyright notice is retained as part of the source
  597. X# files. You may charge a distribution fee for the physical act of
  598. X# transferring a copy, and you may at your option offer warranty
  599. X# protection in exchange for a fee.
  600. X# 
  601. X# Direct questions to: Tech. Univ. Berlin
  602. X#              Wilfried Koch
  603. X#              Sekr. FR 5-6 
  604. X#              Franklinstr. 28/29
  605. X#              D-1000 Berlin 10, West Germany
  606. X# 
  607. X#              Tel: +49-30-314-22972
  608. X#              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  609. X# 
  610. X#
  611. X#  This is the overall Makefile for the shape-toolkit !
  612. X#
  613. X#  Edit this file in order to get all system dependent Macro
  614. X#  definitions suitable for your system.
  615. X#
  616. X
  617. X# Define the location in your file system.
  618. X# BASEDIR shall be the directory where you loaded the tape.
  619. X# Do not modify SRCDIR, INCLUDEDIR and LIBDIR.
  620. XBASEDIR = /u/shape
  621. XSRCDIR = $(BASEDIR)/src
  622. XINCLUDEDIR = $(BASEDIR)/src/inc
  623. XLIBDIR = $(BASEDIR)/lib
  624. X
  625. X# Where and by whom shall the whole stuff be installed ?
  626. XINSTALDIR = /usr/local
  627. XINSTALLIBDIR = /usr/local/lib
  628. XINSTALINCDIR = /usr/local/include
  629. XINSTALOWNER = bin
  630. XINSTALGROUP = bin
  631. X
  632. X# Which kind of UNIX system do you work on ?
  633. X# known systems are:   BSD_4_3  SUNOS_4_0   ULTRIX_2_0
  634. XSYSTEM = BSD_4_3
  635. X
  636. X# Does your system have a syslog facility for protocolling messages ?
  637. X# (-DSYSLOG works on BSD_4_3 and on SUNOS sytems, *not* on ULTRIX)
  638. X#
  639. X# Does your system support ndbm, or only dbm ?
  640. X# ULTRIX systems support only dbm, so that you have to define "-DOLDDBM".
  641. X# Together with -DOLDDBM you have to set CLIBS = -ldbm
  642. X
  643. XDEFINES = -DSYSLOG
  644. XCLIBS =
  645. X# DEFINES = -DSYSLOG -DOLDDBM
  646. X# CLIBS = -ldbm
  647. X
  648. X# Ready !!
  649. X# Now save this Makefile and run "make" to build the toolkit.
  650. X# If you want to install it, run "make install".
  651. X
  652. XBUCKS = $$
  653. X
  654. XCC = cc -DCFFLGS='"$(BUCKS)Flags: <$<> $(CFLAGS) $$"'
  655. X
  656. XCFLAGS = -g -D$(SYSTEM) $(DEFINES) -I$(INCLUDEDIR)
  657. XLDFLAGS = -s
  658. X
  659. Xxxx:
  660. X    cd $(SRCDIR)/afs;\
  661. X    make -f $(SRCDIR)/Makefile -f Makefile.distribution all
  662. X    cd $(SRCDIR)/misc;\
  663. X    make "BASE=$(BASEDIR)" "SYSTEM=$(SYSTEM)" "CONFIG=$(DEFINES)" \
  664. X    "CLIBS=$(CLIBS)" "INSTALDIR=$(LIBDIR)" "INSTALOWNER=$(INSTALOWNER)" \
  665. X    "INSTALGROUP=$(INSTALGROUP)" install
  666. X    cd $(SRCDIR)/vc;\
  667. X    make "BASE=$(BASEDIR)" "SYSTEM=$(SYSTEM)" "CONFIG=$(DEFINES)" \
  668. X    "CLIBS=$(CLIBS)" "INSTALDIR=$(INSTALDIR)" \
  669. X    "INSTALOWNER=$(INSTALOWNER)" "INSTALGROUP=$(INSTALGROUP)" all
  670. X    cd $(SRCDIR)/shape;\
  671. X    make -f $(SRCDIR)/Makefile -f Makefile.distribution all
  672. X
  673. Xinstallation:
  674. X    cd $(SRCDIR)/afs;\
  675. X    make -f $(SRCDIR)/Makefile -f Makefile.distribution install
  676. X    cd $(SRCDIR)/misc;\
  677. X    make "BASE=$(BASEDIR)" "SYSTEM=$(SYSTEM)" "CONFIG=$(DEFINES)" \
  678. X    "CLIBS=$(CLIBS)" "INSTALDIR=$(INSTALLIBDIR)" \
  679. X    "INSTALOWNER=$(INSTALOWNER)" \
  680. X    "INSTALGROUP=$(INSTALGROUP)" install
  681. X    cd $(SRCDIR)/vc;\
  682. X    make "BASE=$(BASEDIR)" "SYSTEM=$(SYSTEM)" "CONFIG=$(DEFINES)" \
  683. X    "CLIBS=$(CLIBS)" "INSTALDIR=$(INSTALDIR)" \
  684. X    "INSTALOWNER=$(INSTALOWNER)" \
  685. X    "INSTALGROUP=$(INSATLGROUP)" install
  686. X    cd $(SRCDIR)/shape;\
  687. X    make -f $(SRCDIR)/Makefile -f Makefile.distribution install
  688. X
  689. END_OF_FILE
  690. if test 3517 -ne `wc -c <'src/Makefile'`; then
  691.     echo shar: \"'src/Makefile'\" unpacked with wrong size!
  692. fi
  693. # end of 'src/Makefile'
  694. fi
  695. if test -f 'src/afs/afsymtab.c' -a "${1}" != "-c" ; then 
  696.   echo shar: Will not clobber existing file \"'src/afs/afsymtab.c'\"
  697. else
  698. echo shar: Extracting \"'src/afs/afsymtab.c'\" \(2986 characters\)
  699. sed "s/^X//" >'src/afs/afsymtab.c' <<'END_OF_FILE'
  700. X/*
  701. X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  702. X *  and U. Pralle
  703. X * 
  704. X * This software is published on an as-is basis. There is ABSOLUTELY NO
  705. X * WARRANTY for any part of this software to work correctly or as described
  706. X * in the manuals. We do not accept any liability for any kind of damage
  707. X * caused by use of this software, such as loss of data, time, money, or 
  708. X * effort.
  709. X * 
  710. X * Permission is granted to use, copy, modify, or distribute any part of
  711. X * this software as long as this is done without asking for charge, and
  712. X * provided that this copyright notice is retained as part of the source
  713. X * files. You may charge a distribution fee for the physical act of
  714. X * transferring a copy, and you may at your option offer warranty
  715. X * protection in exchange for a fee.
  716. X * 
  717. X * Direct questions to: Tech. Univ. Berlin
  718. X *              Wilfried Koch
  719. X *              Sekr. FR 5-6 
  720. X *              Franklinstr. 28/29
  721. X *              D-1000 Berlin 10, West Germany
  722. X * 
  723. X *              Tel: +49-30-314-22972
  724. X *              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  725. X */
  726. X/*
  727. X *    Shape/AFS
  728. X *
  729. X *    afsymtab.c -- manage symbol table for AFS
  730. X *
  731. X *    Author: Andreas Lampen, TU-Berlin (andy@coma.UUCP)
  732. X *                      (andy@db0tui62.BITNET)
  733. X *
  734. X *    $Header: afsymtab.c[1.3] Wed Feb 22 16:28:20 1989 andy@coma published $
  735. X *
  736. X *    EXPORT:
  737. X *      af_entersym - add symbol to symtable
  738. X *      af_enterhost - add hostname to symtable
  739. X */
  740. X
  741. X#include <stdio.h>
  742. X#include <string.h>
  743. X#ifdef SUNOS_4_0
  744. X#include <strings.h>
  745. X#endif
  746. X
  747. X#include "typeconv.h"
  748. X#include "afsys.h"
  749. X#include "afs.h"
  750. X#include "afarchive.h"
  751. X
  752. X#ifdef MEMDEBUG
  753. Xextern FILE *memprot;
  754. X#endif
  755. X
  756. X/*==========================================================================
  757. X *    definition of hashtable for symbols
  758. X *
  759. X *==========================================================================*/
  760. X
  761. X/* af_symhash should be local; "EXPORT" only for debugging reasons */
  762. XEXPORT Af_hash af_symhash;
  763. X
  764. XEXPORT char *af_entersym (symbol)
  765. X     char *symbol;
  766. X{
  767. X  static bool hinit = FALSE; /* indicate if hashtable is yet initialized */
  768. X  int af_fhash ();
  769. X  char *foundsym;
  770. X#ifdef MEMDEBUG
  771. X  char *retsym;
  772. X#endif
  773. X
  774. X  if (symbol == (char *)0)
  775. X    return (symbol);
  776. X
  777. X  if (!hinit)
  778. X    {
  779. X      /* the reserves symbols could be added to the hashtable here */
  780. X      /* but I don't think that it's worthwhile */
  781. X      (void) af_hashinit (&af_symhash, AF_MAXSYMS, af_fhash);
  782. X      hinit = TRUE;
  783. X    }
  784. X
  785. X  /* if symbol is known */
  786. X  if ((foundsym = af_symlookup (&af_symhash, symbol, (Af_revlist *)0,
  787. X                (Af_revlist **)0)) != (char *)0)
  788. X    return (foundsym);
  789. X
  790. X#ifdef MEMDEBUG
  791. X  retsym = af_hashsym (&af_symhash, symbol, (Af_revlist *)0);
  792. X  fprintf (memprot, "SymTab (%s)\n", symbol);
  793. X  return (retsym);
  794. X#else
  795. X  return (af_hashsym (&af_symhash, symbol, (Af_revlist *)0));
  796. X#endif
  797. X}
  798. X
  799. XEXPORT char *af_enterhost (hostname)
  800. X     char *hostname;
  801. X{
  802. X  char *hostsym;
  803. X
  804. X  hostsym = af_gethostname();
  805. X
  806. X  if (strcmp (hostname, hostsym))
  807. X    return (af_entersym (hostname));
  808. X  else
  809. X    return (hostsym);
  810. X}
  811. END_OF_FILE
  812. if test 2986 -ne `wc -c <'src/afs/afsymtab.c'`; then
  813.     echo shar: \"'src/afs/afsymtab.c'\" unpacked with wrong size!
  814. fi
  815. # end of 'src/afs/afsymtab.c'
  816. fi
  817. if test -f 'src/afs/lcs.main.c' -a "${1}" != "-c" ; then 
  818.   echo shar: Will not clobber existing file \"'src/afs/lcs.main.c'\"
  819. else
  820. echo shar: Extracting \"'src/afs/lcs.main.c'\" \(3187 characters\)
  821. sed "s/^X//" >'src/afs/lcs.main.c' <<'END_OF_FILE'
  822. X/*
  823. X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  824. X *  and U. Pralle
  825. X * 
  826. X * This software is published on an as-is basis. There is ABSOLUTELY NO
  827. X * WARRANTY for any part of this software to work correctly or as described
  828. X * in the manuals. We do not accept any liability for any kind of damage
  829. X * caused by use of this software, such as loss of data, time, money, or 
  830. X * effort.
  831. X * 
  832. X * Permission is granted to use, copy, modify, or distribute any part of
  833. X * this software as long as this is done without asking for charge, and
  834. X * provided that this copyright notice is retained as part of the source
  835. X * files. You may charge a distribution fee for the physical act of
  836. X * transferring a copy, and you may at your option offer warranty
  837. X * protection in exchange for a fee.
  838. X * 
  839. X * Direct questions to: Tech. Univ. Berlin
  840. X *              Wilfried Koch
  841. X *              Sekr. FR 5-6 
  842. X *              Franklinstr. 28/29
  843. X *              D-1000 Berlin 10, West Germany
  844. X * 
  845. X *              Tel: +49-30-314-22972
  846. X *              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  847. X */
  848. X/* ================================================== */
  849. X/* ================================================== */
  850. X/*                                                    */
  851. X/* MODULE-NAME: main        KEY : ma                  */
  852. X/*                                                    */
  853. X/* ORIGINAL                                           */
  854. X/* AUTHOR : sibylle         DATE: 06/05/87            */
  855. X/*                                                    */
  856. X/* LAST UPDATE                                        */
  857. X/* AUTHOR :                 DATE:                     */
  858. X/*                                                    */
  859. X/* VERSION: 1.3                                       */
  860. X/*                                                    */
  861. X/* ================================================== */
  862. X/*                                                    */
  863. X/* PURPOSE:                                           */
  864. X/*                Prozeduraufruf                      */
  865. X/*                                                    */
  866. X/* SPECIALITIES:                                      */
  867. X/*                Aufruf erfolgt nicht mehr ueber     */
  868. X/*                main;                               */
  869. X/*                Aufrufparameter sind Strings        */
  870. X/*                statt Files                         */
  871. X/*                                                    */
  872. X/* EXCEPTIONS, ERRORS:                                */
  873. X/*                                                    */
  874. X/* ================================================== */
  875. X/*                                                    */
  876. X/*
  877. X * $Header: lcs.main.c[1.0] Wed Feb 22 16:14:28 1989 shape@coma save $
  878. X */
  879. X
  880. X# include "predef.h"
  881. X# include <stdio.h>
  882. X# include <sys/types.h>
  883. X
  884. Xextern Bool cd_init_delta();
  885. Xextern Bool cd_comp_delta();
  886. X
  887. XEXPORT lcs (sourcestr, targetstr, sourcesz, targetsz, deltafn)
  888. X     char *sourcestr, *targetstr;
  889. X     long sourcesz, targetsz;
  890. X     char *deltafn;
  891. X{
  892. X  if (cd_init_delta(sourcestr, targetstr, sourcesz, targetsz))
  893. X    {  
  894. X      if (cd_comp_delta(deltafn))
  895. X    return(0);
  896. X      else
  897. X    return (-1);
  898. X    }
  899. X  else
  900. X    return (-1);
  901. X}
  902. X
  903. X
  904. X
  905. X
  906. X
  907. X
  908. X
  909. X
  910. END_OF_FILE
  911. if test 3187 -ne `wc -c <'src/afs/lcs.main.c'`; then
  912.     echo shar: \"'src/afs/lcs.main.c'\" unpacked with wrong size!
  913. fi
  914. # end of 'src/afs/lcs.main.c'
  915. fi
  916. if test -f 'src/misc/Makefile' -a "${1}" != "-c" ; then 
  917.   echo shar: Will not clobber existing file \"'src/misc/Makefile'\"
  918. else
  919. echo shar: Extracting \"'src/misc/Makefile'\" \(3539 characters\)
  920. sed "s/^X//" >'src/misc/Makefile' <<'END_OF_FILE'
  921. X#
  922. X# Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  923. X#  and U. Pralle
  924. X# 
  925. X# This software is published on an as-is basis. There is ABSOLUTELY NO
  926. X# WARRANTY for any part of this software to work correctly or as described
  927. X# in the manuals. We do not accept any liability for any kind of damage
  928. X# caused by use of this software, such as loss of data, time, money, or effort.
  929. X# 
  930. X# Permission is granted to use, copy, modify, or distribute any part of
  931. X# this software as long as this is done without asking for charge, and
  932. X# provided that this copyright notice is retained as part of the source
  933. X# files. You may charge a distribution fee for the physical act of
  934. X# transferring a copy, and you may at your option offer warranty
  935. X# protection in exchange for a fee.
  936. X# 
  937. X# Direct questions to: Tech. Univ. Berlin
  938. X#              Wilfried Koch
  939. X#              Sekr. FR 5-6 
  940. X#              Franklinstr. 28/29
  941. X#              D-1000 Berlin 10, West Germany
  942. X# 
  943. X#              Tel: +49-30-314-22972
  944. X#              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  945. X# 
  946. X#
  947. X# $Header: Makefile[1.1] Thu Feb 23 21:24:10 1989 axel@coma published $
  948. X#
  949. X# Log for /u/shape/dist-tape/src/misc/Makefile[1.0]
  950. X#     Thu Feb 23 21:24:10 1989 axel@coma save $
  951. X#  --- empty log message ---
  952. X#  Makefile[1.1] Thu Feb 23 21:24:10 1989 axel@coma published $
  953. X#  --- empty log message ---
  954. X#
  955. X#
  956. X#  Makefile for Utility Library of shape & version control system
  957. X#  (used only for porting and installing)
  958. X
  959. X#
  960. X#  general part
  961. X
  962. X# ---> define operating system
  963. X# known systems are:   BSD_4_3   SUNOS_4_0   ULTRIX_2_0
  964. XSYSTEM = BSD_4_3 
  965. X
  966. X# ---> define config
  967. X# any combination of:
  968. X#    -DSYSLOG  -- the syslog facility shall be used for protocoling errors
  969. X#    -DOLDDBM  -- use "dbm" instead of "ndbm" (don't forget to set -ldbm)
  970. X#define c libraries
  971. X#    "CLIBS = -ldbm" is necessary when compiling with -DOLDDBM
  972. XCONFIG =
  973. XCLIBS =
  974. X
  975. X# ---> define locations of sources and executables
  976. XBASE = /u/shape
  977. XSRCDIR = $(BASE)/src/misc
  978. XLIBDIR = $(BASE)/lib
  979. XINCLUDEDIR = $(BASE)/src/inc
  980. X
  981. X# define anything you like here (e.g. /usr/local)
  982. XINSTALDIR = $(BASE)/lib
  983. XINSTALOWNER = shape
  984. XINSTALGROUP = unib
  985. XBUCKS = $$
  986. X
  987. XCC = cc -DCFFLGS='"$(BUCKS)Flags: <$<> $(CFLAGS) $$"'
  988. X
  989. XCFLAGS = -g -D$(SYSTEM) $(CONFIG) -I$(INCLUDEDIR)
  990. XLDFLAGS = -g
  991. X
  992. X#
  993. X#  Product definition part
  994. X
  995. XPRODUCT = libutil
  996. XPROGS = libutil.a
  997. XVERSION = utilversion
  998. XVERSIONPROTO = /u/shape/lib/version.c
  999. XINTEGRATOR = shape
  1000. X
  1001. X#
  1002. X#  Product definition part
  1003. X#
  1004. X
  1005. XMODULES = citeattr.c \
  1006. X      ParseArgs.c \
  1007. X      pdbutil.c \
  1008. X      hash.c
  1009. X
  1010. XDEFINES = anames.h \
  1011. X      ParseArgs.h \
  1012. X      hash.h
  1013. X
  1014. XCOMPONENTS = $(MODULES) $(DEFINES)
  1015. X
  1016. XLIBSRC  = $(MODULES)
  1017. XLIBOBJS =  ParseArgs.o pdbutil.o hash.o citeattr.o
  1018. X
  1019. XAFSINC = $(INCLUDEDIR)
  1020. X
  1021. Xall: $(PROGS)
  1022. X
  1023. Xlibutil.a: $(LIBOBJS) $(VERSION).o
  1024. X    ar ruv $@ $(LIBOBJS) $(VERSION).o; \
  1025. X    ranlib $@
  1026. X
  1027. Xclean:
  1028. X    rm -f $(LIBOBJS) $(PROGS)
  1029. X
  1030. Xinstall: all
  1031. X    @echo installing $(PROGS) in $(INSTALDIR); \
  1032. X    install -c -m 644 $(PROGS) $(INSTALDIR); \
  1033. X    ranlib $(INSTALDIR)/$(PROGS)
  1034. X
  1035. Xdepend:
  1036. X    $(CC) -M $(CFLAGS) $(MODULES) | \
  1037. X    sed -e '/\/usr\/include/d' -e 's.$(BASE).$$(BASE).g' | sort \
  1038. X    | uniq > makedep
  1039. X    echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep
  1040. X    echo '$$r makedep' >>eddep
  1041. X    echo 'w' >>eddep
  1042. X    cp Makefile Makefile.bak
  1043. X    ex - Makefile < eddep
  1044. X    rm makedep eddep
  1045. X
  1046. X
  1047. X# DO NOT DELETE THIS LINE
  1048. XParseArgs.o: ./ParseArgs.h
  1049. XParseArgs.o: ParseArgs.c
  1050. Xciteattr.o: $(BASE)/src/inc/afs.h
  1051. Xciteattr.o: $(BASE)/src/inc/afsapp.h
  1052. Xciteattr.o: $(BASE)/src/inc/afsys.h
  1053. Xciteattr.o: $(BASE)/src/inc/typeconv.h
  1054. Xciteattr.o: ./anames.h
  1055. Xciteattr.o: citeattr.c
  1056. Xhash.o: ./hash.h
  1057. Xhash.o: hash.c
  1058. Xpdbutil.o: pdbutil.c
  1059. END_OF_FILE
  1060. if test 3539 -ne `wc -c <'src/misc/Makefile'`; then
  1061.     echo shar: \"'src/misc/Makefile'\" unpacked with wrong size!
  1062. fi
  1063. # end of 'src/misc/Makefile'
  1064. fi
  1065. if test -f 'src/shape/sighand.c' -a "${1}" != "-c" ; then 
  1066.   echo shar: Will not clobber existing file \"'src/shape/sighand.c'\"
  1067. else
  1068. echo shar: Extracting \"'src/shape/sighand.c'\" \(3504 characters\)
  1069. sed "s/^X//" >'src/shape/sighand.c' <<'END_OF_FILE'
  1070. X/*
  1071. X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  1072. X *  and U. Pralle
  1073. X * 
  1074. X * This software is published on an as-is basis. There is ABSOLUTELY NO
  1075. X * WARRANTY for any part of this software to work correctly or as described
  1076. X * in the manuals. We do not accept any liability for any kind of damage
  1077. X * caused by use of this software, such as loss of data, time, money, or 
  1078. X * effort.
  1079. X * 
  1080. X * Permission is granted to use, copy, modify, or distribute any part of
  1081. X * this software as long as this is done without asking for charge, and
  1082. X * provided that this copyright notice is retained as part of the source
  1083. X * files. You may charge a distribution fee for the physical act of
  1084. X * transferring a copy, and you may at your option offer warranty
  1085. X * protection in exchange for a fee.
  1086. X * 
  1087. X * Direct questions to: Tech. Univ. Berlin
  1088. X *              Wilfried Koch
  1089. X *              Sekr. FR 5-6 
  1090. X *              Franklinstr. 28/29
  1091. X *              D-1000 Berlin 10, West Germany
  1092. X * 
  1093. X *              Tel: +49-30-314-22972
  1094. X *              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  1095. X */
  1096. X#ifndef lint
  1097. Xstatic char *RCSid = "$Header: sighand.c,v 3.1 89/02/20 16:26:46 wolfgang Exp $";
  1098. X#endif
  1099. X#ifndef lint
  1100. Xstatic char *ConfFlg = CFFLGS;    /* should be defined from within Makefile */
  1101. X#endif
  1102. X/*
  1103. X * $Log:    sighand.c,v $
  1104. X * Revision 3.1  89/02/20  16:26:46  wolfgang
  1105. X * NET-RELEASE
  1106. X * 
  1107. X * Revision 3.0  89/01/24  11:37:00  wolfgang
  1108. X * New System Generation
  1109. X * 
  1110. X * Revision 1.6  89/01/18  14:43:22  wolfgang
  1111. X * changes for lint
  1112. X * 
  1113. X * Revision 1.5  89/01/03  13:13:54  wolfgang
  1114. X * changes done for lint
  1115. X * 
  1116. X * Revision 1.4  88/12/21  15:13:02  wolfgang
  1117. X * changes done for lint
  1118. X * 
  1119. X * Revision 1.3  88/09/22  16:18:01  wolfgang
  1120. X * calls of shape_cleanup() added.
  1121. X * 
  1122. X * Revision 1.2  88/08/19  10:18:09  wolfgang
  1123. X * This version is part of a release
  1124. X * 
  1125. X */
  1126. X
  1127. X#include <signal.h>
  1128. X#include <stdio.h>
  1129. X#include "shape.h"
  1130. X
  1131. Xextern int cleanup_links();
  1132. Xextern struct linkreg *link_reg;
  1133. Xextern int errexit();
  1134. X
  1135. Xcatch_sigs () {
  1136. X/*
  1137. X * Setup signal handlers for various signals. Previous handlers
  1138. X * are saved. On receipt of a signal, the 
  1139. X * original handler for this signal will be invoked after specified
  1140. X * action has been taken.
  1141. X */
  1142. X#ifdef ULTRIX_2_0
  1143. Xvoid
  1144. X#else
  1145. Xint
  1146. X#endif
  1147. Xdie1(), die2(), die3(), die4(), die5(), die6(), 
  1148. X       die7(), die8(), die9(), die10(),
  1149. X       die11(), die12(), die13(), die14(), die15();
  1150. X
  1151. X  (void) signal (SIGINT, die2);
  1152. X  (void) signal (SIGBUS, die10);
  1153. X  (void) signal (SIGSEGV, die11);
  1154. X  (void) signal (SIGFPE, die8);
  1155. X  (void) signal (SIGTERM, die15);
  1156. X}
  1157. X
  1158. X#ifdef ULTRIX_2_0    
  1159. Xvoid
  1160. X#endif
  1161. Xdie2 () {
  1162. X  (void) signal(SIGINT,SIG_IGN);
  1163. X  errexit(23,"\0");
  1164. X}
  1165. X
  1166. X#ifdef ULTRIX_2_0    
  1167. Xvoid
  1168. X#endif
  1169. Xdie8 () {
  1170. X  (void) signal(SIGINT,SIG_IGN);
  1171. X  fprintf(stderr, "Oh! Oh! .... this was a floating exception -- goodbye.\n"); 
  1172. X  af_cleanup ();
  1173. X  cleanup_links(link_reg);
  1174. X  exit (1);
  1175. X}
  1176. X
  1177. X#ifdef ULTRIX_2_0    
  1178. Xvoid
  1179. X#endif
  1180. Xdie10 () {
  1181. X  fprintf(stderr, "Oh! Oh! .... this was a buserror -- goodbye.\n");
  1182. X  fprintf(stderr, "Dumping core.\n");
  1183. X  af_cleanup ();
  1184. X  cleanup_links(link_reg);
  1185. X  (void) kill (getpid(), SIGQUIT);
  1186. X}
  1187. X
  1188. X#ifdef ULTRIX_2_0    
  1189. Xvoid
  1190. X#endif
  1191. Xdie11 () {
  1192. X  (void) signal(SIGINT,SIG_IGN);
  1193. X  fprintf(stderr, 
  1194. X      "Oh! Oh! .... this was a segmentation violation -- goodbye.\n");
  1195. X  fprintf(stderr, "Dumping core.\n");
  1196. X  af_cleanup ();
  1197. X  cleanup_links(link_reg);
  1198. X  (void) kill (getpid(), SIGQUIT);
  1199. X}
  1200. X
  1201. X#ifdef ULTRIX_2_0    
  1202. Xvoid
  1203. X#endif
  1204. Xdie15 () {
  1205. X  (void) signal(SIGINT,SIG_IGN);
  1206. X  af_cleanup();
  1207. X  cleanup_links(link_reg);
  1208. X  exit(1);
  1209. X}
  1210. X
  1211. END_OF_FILE
  1212. if test 3504 -ne `wc -c <'src/shape/sighand.c'`; then
  1213.     echo shar: \"'src/shape/sighand.c'\" unpacked with wrong size!
  1214. fi
  1215. # end of 'src/shape/sighand.c'
  1216. fi
  1217. if test -f 'src/vc/vadm.h' -a "${1}" != "-c" ; then 
  1218.   echo shar: Will not clobber existing file \"'src/vc/vadm.h'\"
  1219. else
  1220. echo shar: Extracting \"'src/vc/vadm.h'\" \(2970 characters\)
  1221. sed "s/^X//" >'src/vc/vadm.h' <<'END_OF_FILE'
  1222. X/*
  1223. X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  1224. X *  and U. Pralle
  1225. X * 
  1226. X * This software is published on an as-is basis. There is ABSOLUTELY NO
  1227. X * WARRANTY for any part of this software to work correctly or as described
  1228. X * in the manuals. We do not accept any liability for any kind of damage
  1229. X * caused by use of this software, such as loss of data, time, money, or 
  1230. X * effort.
  1231. X * 
  1232. X * Permission is granted to use, copy, modify, or distribute any part of
  1233. X * this software as long as this is done without asking for charge, and
  1234. X * provided that this copyright notice is retained as part of the source
  1235. X * files. You may charge a distribution fee for the physical act of
  1236. X * transferring a copy, and you may at your option offer warranty
  1237. X * protection in exchange for a fee.
  1238. X * 
  1239. X * Direct questions to: Tech. Univ. Berlin
  1240. X *              Wilfried Koch
  1241. X *              Sekr. FR 5-6 
  1242. X *              Franklinstr. 28/29
  1243. X *              D-1000 Berlin 10, West Germany
  1244. X * 
  1245. X *              Tel: +49-30-314-22972
  1246. X *              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  1247. X */
  1248. X/*
  1249. X * $Header: vadm.h[3.6] Thu Feb 23 18:14:07 1989 axel@coma published $
  1250. X *
  1251. X * Log for /u/shape/dist-tape/src/vc/vadm.h[3.4]
  1252. X *     Thu Feb 23 18:14:07 1989 axel@coma published $
  1253. X *  --- empty log message ---
  1254. X *  vadm.h[3.5] Thu Feb 23 18:14:07 1989 axel@coma published $
  1255. X *  --- empty log message ---
  1256. X *  vadm.h[3.6] Thu Feb 23 18:14:07 1989 axel@coma published $
  1257. X *  --- empty log message ---
  1258. X */
  1259. X
  1260. X
  1261. X/* miscellaneous */
  1262. X#define MAIL "/usr/ucb/mail -s 'Your lock on %s was broken by %s' "
  1263. X
  1264. X/* options */
  1265. X#define Vopt_help 01
  1266. X#define Vopt_binary 02
  1267. X#define Vopt_version 010000
  1268. X#define Vopt_no_confirm 020000
  1269. X#define Vopt_quiet 040000
  1270. X
  1271. X/* actions */
  1272. X#define Varg_reserve 01
  1273. X#define Varg_unreserve 02
  1274. X#define Varg_symname 04
  1275. X#define Varg_delete 010
  1276. X#define Varg_promote 020
  1277. X#define Varg_unpromote 040
  1278. X#define Varg_change_note 0100
  1279. X#define Varg_change_description 0200
  1280. X#define Varg_set_note 0400
  1281. X#define Varg_set_description 01000
  1282. X#define Varg_lock 02000
  1283. X#define Varg_unlock 04000
  1284. X#define Varg_chmod 010000
  1285. X#define Varg_chown 020000
  1286. X#define Varg_chaut 040000
  1287. X#define Varg_setuda 0100000
  1288. X#define Varg_unsetuda 0200000
  1289. X#define Varg_setattrs 0400000
  1290. X#define Varg_setc_symbol 01000000
  1291. X#define Varg_set_intent 02000000
  1292. X
  1293. X#define SetBit(x,b) ((x) |= (b))
  1294. X#define ClearBit(x,b) ((x) &= ~(b))
  1295. X#define IsBitSet(x,b) ((x) & (b))
  1296. X#define IsBitCleared(x,b) !(IsBitSet((x),(b)))
  1297. X
  1298. X#define SetOption(b) SetBit(options, (b))
  1299. X#define ClearOption(b) ClearBit(options, (b))
  1300. X#define IsOptionSet(b) IsBitSet (options, (b))
  1301. X#define IsOptionCleared(b) IsBitCleared (options, (b))
  1302. X
  1303. X#define SetAction(b) SetBit(actions, (b))
  1304. X#define ClearAction(b) ClearBit(actions, (b))
  1305. X#define IsActionSet(b) IsBitSet (actions, (b))
  1306. X#define IsActionCleared(b) IsBitCleared (actions, (b))
  1307. X
  1308. Xstruct vc_vlist {
  1309. X  char from_version_set, to_version_set;
  1310. X  int from_generation;
  1311. X  int from_revision;
  1312. X  int to_generation;
  1313. X  int to_revision;
  1314. X  struct vc_vlist *next;
  1315. X};
  1316. X
  1317. END_OF_FILE
  1318. if test 2970 -ne `wc -c <'src/vc/vadm.h'`; then
  1319.     echo shar: \"'src/vc/vadm.h'\" unpacked with wrong size!
  1320. fi
  1321. # end of 'src/vc/vadm.h'
  1322. fi
  1323. if test -f 'src/vc/vadm_utils.c' -a "${1}" != "-c" ; then 
  1324.   echo shar: Will not clobber existing file \"'src/vc/vadm_utils.c'\"
  1325. else
  1326. echo shar: Extracting \"'src/vc/vadm_utils.c'\" \(3317 characters\)
  1327. sed "s/^X//" >'src/vc/vadm_utils.c' <<'END_OF_FILE'
  1328. X/*
  1329. X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  1330. X *  and U. Pralle
  1331. X * 
  1332. X * This software is published on an as-is basis. There is ABSOLUTELY NO
  1333. X * WARRANTY for any part of this software to work correctly or as described
  1334. X * in the manuals. We do not accept any liability for any kind of damage
  1335. X * caused by use of this software, such as loss of data, time, money, or 
  1336. X * effort.
  1337. X * 
  1338. X * Permission is granted to use, copy, modify, or distribute any part of
  1339. X * this software as long as this is done without asking for charge, and
  1340. X * provided that this copyright notice is retained as part of the source
  1341. X * files. You may charge a distribution fee for the physical act of
  1342. X * transferring a copy, and you may at your option offer warranty
  1343. X * protection in exchange for a fee.
  1344. X * 
  1345. X * Direct questions to: Tech. Univ. Berlin
  1346. X *              Wilfried Koch
  1347. X *              Sekr. FR 5-6 
  1348. X *              Franklinstr. 28/29
  1349. X *              D-1000 Berlin 10, West Germany
  1350. X * 
  1351. X *              Tel: +49-30-314-22972
  1352. X *              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  1353. X */
  1354. X#ifndef lint
  1355. Xstatic char *AFSid = "$Header: vadm_utils.c[3.3] Thu Feb 23 18:14:24 1989 axel@coma published $";
  1356. X#ifdef CFFLGS
  1357. Xstatic char *ConfFlg = CFFLGS;
  1358. X    /* should be defined from within Makefile */
  1359. X#endif
  1360. X#endif
  1361. X/*
  1362. X * Log for /u/shape/dist-tape/src/vc/vadm_utils.c[3.0]
  1363. X *     Thu Feb 23 18:14:24 1989 axel@coma published $
  1364. X *  --- empty log message ---
  1365. X *  vadm_utils.c[3.1] Thu Feb 23 18:14:24 1989 axel@coma published $
  1366. X *  --- empty log message ---
  1367. X *  vadm_utils.c[3.2] Thu Feb 23 18:14:24 1989 axel@coma save $
  1368. X *  --- empty log message ---
  1369. X *  vadm_utils.c[3.3] Thu Feb 23 18:14:24 1989 axel@coma published $
  1370. X *  --- empty log message ---
  1371. X */
  1372. X
  1373. X#include <stdio.h>
  1374. X#include <strings.h>
  1375. X#include <afs.h>
  1376. X  
  1377. X#include "vadm.h"
  1378. X#include "afsapp.h"
  1379. X#include "vadmdefs.h"
  1380. X
  1381. Xextern char *malloc();
  1382. X
  1383. X/**/
  1384. Xint GetGenerationNumber (version)
  1385. X     char *version;
  1386. X{
  1387. X  /*
  1388. X   * Returns the generation number (as an int) from a version specification
  1389. X   * (as a string), e.g.: 2.1 ==> 2
  1390. X   */
  1391. X  register int i;
  1392. X  char tmp[80];
  1393. X    
  1394. X  if ( (!version) || (! *version) || (*version == '.') ) return -1;
  1395. X
  1396. X  i = 0;
  1397. X  while (*version) {
  1398. X    if (*version == '.') {
  1399. X      tmp[i] = '\0';
  1400. X      return atoi(tmp);
  1401. X    }
  1402. X    else {
  1403. X      tmp[i] = *version;
  1404. X      version++; i++;
  1405. X    }
  1406. X  }
  1407. X  return atoi(tmp);
  1408. X}
  1409. X
  1410. X/**/
  1411. Xint GetRevisionNumber (version)
  1412. X     char *version;
  1413. X{
  1414. X  /*
  1415. X   * Returns the revision number (as an int) from a version specification
  1416. X   * (as a string), e.g.: 2.1 ==> 2
  1417. X   */
  1418. X  register int i;
  1419. X  char tmp[80];
  1420. X  register char *cp;
  1421. X  
  1422. X  if ( (!version) || (! *version) ) return -1;
  1423. X
  1424. X  if (! (cp = rindex (version, '.'))) return -1;
  1425. X
  1426. X  cp++;
  1427. X
  1428. X  if (!*cp) return -1;        /* version_num was: any.\0 */
  1429. X  
  1430. X  i = 0;
  1431. X  while (*cp) {
  1432. X    tmp[i] = *cp;
  1433. X    cp++; i++;
  1434. X  }
  1435. X  tmp[i] = '\0';
  1436. X  return atoi(tmp);
  1437. X}
  1438. X
  1439. Xlogmsg (msg) char *msg; {
  1440. X  if (!IsOptionSet(Vopt_quiet)) {
  1441. X    fprintf (stdout, "%s\n", msg);
  1442. X  }
  1443. X}
  1444. X
  1445. Xlogwng (msg) char *msg; {
  1446. X  if (!IsOptionSet(Vopt_quiet)) {
  1447. X    fprintf (stdout, "Warning: %s\n", msg);
  1448. X  }
  1449. X}
  1450. X
  1451. Xlogerr (msg) char *msg; {
  1452. X  fprintf (stderr, "%s: %s\n", progname, msg);
  1453. X}
  1454. X
  1455. XSfunc_t interrupt_action () { /* is executed by appropriate signal handler */
  1456. X
  1457. X  if (ask_confirm ("\nDo you really want to quit this ?", "yes"))
  1458. X    exit (1);
  1459. X  else
  1460. X    return;
  1461. X}
  1462. END_OF_FILE
  1463. if test 3317 -ne `wc -c <'src/vc/vadm_utils.c'`; then
  1464.     echo shar: \"'src/vc/vadm_utils.c'\" unpacked with wrong size!
  1465. fi
  1466. # end of 'src/vc/vadm_utils.c'
  1467. fi
  1468. if test -f 'src/vc/vl.c' -a "${1}" != "-c" ; then 
  1469.   echo shar: Will not clobber existing file \"'src/vc/vl.c'\"
  1470. else
  1471. echo shar: Extracting \"'src/vc/vl.c'\" \(3518 characters\)
  1472. sed "s/^X//" >'src/vc/vl.c' <<'END_OF_FILE'
  1473. X/*
  1474. X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  1475. X *  and U. Pralle
  1476. X * 
  1477. X * This software is published on an as-is basis. There is ABSOLUTELY NO
  1478. X * WARRANTY for any part of this software to work correctly or as described
  1479. X * in the manuals. We do not accept any liability for any kind of damage
  1480. X * caused by use of this software, such as loss of data, time, money, or 
  1481. X * effort.
  1482. X * 
  1483. X * Permission is granted to use, copy, modify, or distribute any part of
  1484. X * this software as long as this is done without asking for charge, and
  1485. X * provided that this copyright notice is retained as part of the source
  1486. X * files. You may charge a distribution fee for the physical act of
  1487. X * transferring a copy, and you may at your option offer warranty
  1488. X * protection in exchange for a fee.
  1489. X * 
  1490. X * Direct questions to: Tech. Univ. Berlin
  1491. X *              Wilfried Koch
  1492. X *              Sekr. FR 5-6 
  1493. X *              Franklinstr. 28/29
  1494. X *              D-1000 Berlin 10, West Germany
  1495. X * 
  1496. X *              Tel: +49-30-314-22972
  1497. X *              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  1498. X */
  1499. X#ifndef lint
  1500. Xstatic char *AFSid = "$Header: vl.c[3.6] Thu Feb 23 18:14:43 1989 axel@coma published $";
  1501. X#ifdef CFFLGS
  1502. Xstatic char *ConfFlg = CFFLGS;
  1503. X    /* should be defined from within Makefile */
  1504. X#endif
  1505. X#endif
  1506. X/*
  1507. X * Log for /u/shape/dist-tape/src/vc/vl.c[3.1]
  1508. X *     Thu Feb 23 18:14:43 1989 axel@coma published $
  1509. X *  --- empty log message ---
  1510. X *  vl.c[3.2] Thu Feb 23 18:14:43 1989 axel@coma published $
  1511. X *  --- empty log message ---
  1512. X *  vl.c[3.4] Thu Feb 23 18:14:43 1989 axel@coma published $
  1513. X *  --- empty log message ---
  1514. X *  vl.c[3.5] Thu Feb 23 18:14:43 1989 axel@coma save $
  1515. X *  --- empty log message ---
  1516. X *  vl.c[3.6] Thu Feb 23 18:14:43 1989 axel@coma published $
  1517. X *  --- empty log message ---
  1518. X */
  1519. X
  1520. X#include <stdio.h>
  1521. X#include <strings.h>
  1522. X
  1523. X#include "ParseArgs.h"
  1524. X#include "vl.h"
  1525. X
  1526. X/*
  1527. X * global variables
  1528. X */
  1529. Xchar vl_cwd[1024];            /* current working dir */
  1530. X
  1531. Xmain (ac, av)
  1532. X     int ac;
  1533. X     char **av;
  1534. X{
  1535. X  register int i;
  1536. X  int newac;
  1537. X  char **newav;
  1538. X  register char *cp;
  1539. X  extern char *getwd();
  1540. X  register int retcode;
  1541. X  extern char **rearrange_args();
  1542. X
  1543. X  retcode = 0;
  1544. X  (void)getwd (vl_cwd);            /* get cur working dir */
  1545. X  
  1546. X  PutProgramName ((cp = rindex (av[0], '/')) ? ++cp : av[0]);
  1547. X
  1548. X  CheckProgramName ((cp = rindex (av[0], '/')) ? ++cp : av[0]);    
  1549. X  /* if I'm vlog set option -L */
  1550. X  
  1551. X  if (ac == 1) {
  1552. X    InitReportVersion ();
  1553. X    retcode = ReportVersionInfo ("");
  1554. X  }
  1555. X  else {
  1556. X    extern OptDesc odesc[];
  1557. X    
  1558. X    ParseArgs (ac, av, &newac, &newav, odesc);
  1559. X
  1560. X    InitReportVersion ();
  1561. X    
  1562. X    if (!newac) {
  1563. X      if (IsOptionSet(VL_O_LOGMSG)) {
  1564. X    fprintf (stderr, "%s: Option -L requires a version name\n",
  1565. X         GetProgramName());
  1566. X    exit (1);
  1567. X      }
  1568. X      retcode = ReportVersionInfo ("");
  1569. X    }
  1570. X    else { 
  1571. X
  1572. X      /*
  1573. X       * if one argument is a directory and another argument
  1574. X       * is a file then the non local filenames must be preceeded by
  1575. X       * its pathnames on output. Also do files first and
  1576. X       * then directories, separated by a string containing the
  1577. X       * path.
  1578. X       */
  1579. X      if (a_dir_and_a_file (newac, newav)) {
  1580. X    newav = rearrange_args (newac, newav); /* first files then dirs */
  1581. X      }
  1582. X
  1583. X      for (i = 0; i < newac; i++) {
  1584. X    retcode = ReportVersionInfo (newav[i]);
  1585. X      }
  1586. X    }
  1587. X  }
  1588. X  
  1589. X  FlushInfo();
  1590. X  exit (retcode);
  1591. X}
  1592. X
  1593. X/*ARGSUSED*/
  1594. Xhandle_R_option (o, a) char *o, *a; {
  1595. X  extern char *version();
  1596. X
  1597. X  printf ("This is %s version %s.\n", GetProgramName(), version ());
  1598. X  printf ("AFS version %s.\n", af_version());
  1599. X  exit (0);
  1600. X}
  1601. END_OF_FILE
  1602. if test 3518 -ne `wc -c <'src/vc/vl.c'`; then
  1603.     echo shar: \"'src/vc/vl.c'\" unpacked with wrong size!
  1604. fi
  1605. # end of 'src/vc/vl.c'
  1606. fi
  1607. if test -f 'src/vc/vl.h' -a "${1}" != "-c" ; then 
  1608.   echo shar: Will not clobber existing file \"'src/vc/vl.h'\"
  1609. else
  1610. echo shar: Extracting \"'src/vc/vl.h'\" \(3371 characters\)
  1611. sed "s/^X//" >'src/vc/vl.h' <<'END_OF_FILE'
  1612. X/*
  1613. X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  1614. X *  and U. Pralle
  1615. X * 
  1616. X * This software is published on an as-is basis. There is ABSOLUTELY NO
  1617. X * WARRANTY for any part of this software to work correctly or as described
  1618. X * in the manuals. We do not accept any liability for any kind of damage
  1619. X * caused by use of this software, such as loss of data, time, money, or 
  1620. X * effort.
  1621. X * 
  1622. X * Permission is granted to use, copy, modify, or distribute any part of
  1623. X * this software as long as this is done without asking for charge, and
  1624. X * provided that this copyright notice is retained as part of the source
  1625. X * files. You may charge a distribution fee for the physical act of
  1626. X * transferring a copy, and you may at your option offer warranty
  1627. X * protection in exchange for a fee.
  1628. X * 
  1629. X * Direct questions to: Tech. Univ. Berlin
  1630. X *              Wilfried Koch
  1631. X *              Sekr. FR 5-6 
  1632. X *              Franklinstr. 28/29
  1633. X *              D-1000 Berlin 10, West Germany
  1634. X * 
  1635. X *              Tel: +49-30-314-22972
  1636. X *              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  1637. X */
  1638. X/*
  1639. X * $Header: vl.h[3.3] Thu Feb 23 18:14:45 1989 axel@coma published $
  1640. X *
  1641. X * Log for /u/shape/dist-tape/src/vc/vl.h[3.1]
  1642. X *     Thu Feb 23 18:14:45 1989 axel@coma published $
  1643. X *  --- empty log message ---
  1644. X *  vl.h[3.2] Thu Feb 23 18:14:45 1989 axel@coma published $
  1645. X *  --- empty log message ---
  1646. X *  vl.h[3.3] Thu Feb 23 18:14:45 1989 axel@coma published $
  1647. X *  --- empty log message ---
  1648. X */
  1649. X
  1650. X
  1651. X#include "afsapp.h"
  1652. X
  1653. X#define VL_O_LONGOUTPUT        01L
  1654. X#define VL_O_GROUPOUTPUT    02L
  1655. X#define VL_O_VERSIONSTATE    04L
  1656. X#define VL_O_LISTUDA        010L
  1657. X#define VL_O_LISTUDALONG     020L
  1658. X#define VL_O_UDAGIVEN        040L
  1659. X#define VL_O_VERSIONNUM        0100L
  1660. X#define VL_O_STATEGIVEN        0200L
  1661. X#define VL_O_BEQUIET        0400L
  1662. X#define VL_O_LOGMSG        01000L
  1663. X#define VL_O_HISTLOG        02000L
  1664. X#define VL_O_HISTLOGPLUS    04000L
  1665. X#define VL_O_ALL        010000L
  1666. X#define VL_O_AUTHOR        020000L
  1667. X#define VL_O_OWNER        040000L
  1668. X#define VL_O_LISTHIDDENUDAS    0100000L
  1669. X#define VL_O_LISTHIDDEN         0200000L
  1670. X#define VL_O_LISTBINARY         0400000L
  1671. X#define VL_O_LASTVERS           01000000L
  1672. X#define NO_ID -1
  1673. X
  1674. X/*
  1675. X * external definition from everywhere
  1676. X */
  1677. Xextern char *malloc();
  1678. X
  1679. X/*
  1680. X * external definitions from vlopt.c
  1681. X */
  1682. Xextern int IsOptionSet ();
  1683. Xextern int IsOptionCleared ();
  1684. Xextern int SetOption ();
  1685. Xextern int ClearOption ();
  1686. Xextern int Usage ();
  1687. Xextern int LongUsage ();
  1688. Xextern int multicol_output_is_possible ();
  1689. X
  1690. X/*
  1691. X * External definitions from vlmisc.c
  1692. X */
  1693. Xextern char *GetVersionState();
  1694. Xextern char *GetVersionId();
  1695. Xextern int VinfoCleanup();
  1696. Xextern char *GetMode();
  1697. Xextern char *GetUserInfo();
  1698. Xextern char *GetDate();
  1699. Xextern int HasPathName();
  1700. Xextern int HasExtension();
  1701. Xextern int IsDirectory();
  1702. Xextern int FileExists();
  1703. Xextern int CopyUdattrs();
  1704. Xextern int GetGenerationNumber();
  1705. Xextern int GetRevisionNumber();
  1706. Xextern int PutProgramName();
  1707. Xextern char *GetProgramName();
  1708. Xextern void PutVersionStates();
  1709. Xextern char *GetVersionStates();
  1710. Xextern void PutUdattrs();
  1711. Xextern char **GetUdattrs();
  1712. Xextern void PutVersionNumber();
  1713. Xextern char *GetVersionNumber();
  1714. Xextern void ScanVersionStates();
  1715. Xextern int MatchesVersionStates();
  1716. Xextern void PutAuthorIdentifications();
  1717. Xextern char *GetAuthoridFromAuthor();
  1718. Xextern void PutOnwerIdentifications();
  1719. Xextern char *GetOwneridFromOwner();
  1720. X/*
  1721. X * External definitions from vldovl.c
  1722. X */
  1723. Xextern int ReportVersionInfo();
  1724. Xextern void FlushInfo();
  1725. X
  1726. END_OF_FILE
  1727. if test 3371 -ne `wc -c <'src/vc/vl.h'`; then
  1728.     echo shar: \"'src/vc/vl.h'\" unpacked with wrong size!
  1729. fi
  1730. # end of 'src/vc/vl.h'
  1731. fi
  1732. if test -f 'tutorial/trouble.ms' -a "${1}" != "-c" ; then 
  1733.   echo shar: Will not clobber existing file \"'tutorial/trouble.ms'\"
  1734. else
  1735. echo shar: Extracting \"'tutorial/trouble.ms'\" \(3001 characters\)
  1736. sed "s/^X//" >'tutorial/trouble.ms' <<'END_OF_FILE'
  1737. X.\"
  1738. X.\" Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
  1739. X.\"  and U. Pralle
  1740. X.\" 
  1741. X.\" This software is published on an as-is basis. There is ABSOLUTELY NO
  1742. X.\" WARRANTY for any part of this software to work correctly or as described
  1743. X.\" in the manuals. We do not accept any liability for any kind of damage
  1744. X.\" caused by use of this software, such as loss of data, time, money, or 
  1745. X.\" effort.
  1746. X.\" 
  1747. X.\" Permission is granted to use, copy, modify, or distribute any part of
  1748. X.\" this software as long as this is done without asking for charge, and
  1749. X.\" provided that this copyright notice is retained as part of the source
  1750. X.\" files. You may charge a distribution fee for the physical act of
  1751. X.\" transferring a copy, and you may at your option offer warranty
  1752. X.\" protection in exchange for a fee.
  1753. X.\" 
  1754. X.\" Direct questions to: Tech. Univ. Berlin
  1755. X.\"              Wilfried Koch
  1756. X.\"              Sekr. FR 5-6 
  1757. X.\"              Franklinstr. 28/29
  1758. X.\"              D-1000 Berlin 10, West Germany
  1759. X.\" 
  1760. X.\"              Tel: +49-30-314-22972
  1761. X.\"              E-mail: shape@coma.uucp or shape@db0tui62.bitnet
  1762. X.\" 
  1763. X.NH 1
  1764. XTrouble shooting
  1765. X.PP
  1766. XRemember that the current version of the shape toolkit is a beta test
  1767. Xrelease that surely has some bugs every here and there.
  1768. XSo don't be too angry if you detect a malfunction and please help
  1769. Xus to improve the shape toolkit for further releases.
  1770. X.PP
  1771. XIf you have trouble with the data in the AFS archives, have a
  1772. Xlook at the program \fIafsrepair\fR that is shipped together
  1773. Xwith the toolkit.
  1774. XThis program checks archive files in your AFS subdirectory for
  1775. Xinconsistencies and tries to repair them if necessary.
  1776. X.PP
  1777. XIf this does not help, or if your
  1778. Xproblems concern other pieces of the shape toolkit than the object base,
  1779. Xplease inform us by e-mail to
  1780. X.sp
  1781. X.nf
  1782. X    \fCshape-bugs@coma.uucp\fR or
  1783. X    \fCshape-bugs@db0tui62.bitnet\fR
  1784. X.fi
  1785. X.sp
  1786. Xor by paper mail to
  1787. X.sp
  1788. X.nf
  1789. X    Tech. Univ. Berlin
  1790. X    Wilfried Koch
  1791. X    Sekr. FR 5-6 
  1792. X    Franklinstr. 28/29
  1793. X    D-1000 Berlin 10, West Germany
  1794. X.fi
  1795. X.sp
  1796. X.LP
  1797. XYour bug report should contain
  1798. X.IP \(bu 0.2i
  1799. Xthe name and version of the program that caused the trouble (you
  1800. Xget the version number by calling the appropriate program with
  1801. Xthe option -version, eg. \fCshape -version\fR),
  1802. X.IP \(bu
  1803. Xthe error message,
  1804. X.IP \(bu
  1805. Xa short history how the bug was detected (which toolkit commands were
  1806. Xinvolved in your work shortly before the error occurred),
  1807. X.IP \(bu
  1808. Xyour shapefile and \- if present \- the core file, and
  1809. Xa short description of your working environment
  1810. X.RE
  1811. XWhen working with emacs-shapetools, the command \fCB\fR
  1812. Xpops up a mail template for your bug report.
  1813. XWe will be happy about every report on existing bugs, that helps us to
  1814. Xmake shape a reliable tool.
  1815. X.PP
  1816. XIf you have any wishes or suggestions concerning the shape toolkit,
  1817. Xdo not hesitate to send a letter to
  1818. X.sp
  1819. X.nf
  1820. X    \fCshape-wishes@coma.uucp\fR or
  1821. X    \fCshape-wishes@db0tui62.bitnet\fR
  1822. X.fi
  1823. X.sp
  1824. XAgain, there is a command in emacs-shapetools (\fCW\fR) that pops up a
  1825. Xmail template for sending your list of wishes to us.
  1826. END_OF_FILE
  1827. if test 3001 -ne `wc -c <'tutorial/trouble.ms'`; then
  1828.     echo shar: \"'tutorial/trouble.ms'\" unpacked with wrong size!
  1829. fi
  1830. # end of 'tutorial/trouble.ms'
  1831. fi
  1832. echo shar: End of archive 4 \(of 33\).
  1833. cp /dev/null ark4isdone
  1834. MISSING=""
  1835. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
  1836.     if test ! -f ark${I}isdone ; then
  1837.     MISSING="${MISSING} ${I}"
  1838.     fi
  1839. done
  1840. if test "${MISSING}" = "" ; then
  1841.     echo You have unpacked all 33 archives.
  1842.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1843. else
  1844.     echo You still need to unpack the following archives:
  1845.     echo "        " ${MISSING}
  1846. fi
  1847. ##  End of shell archive.
  1848. exit 0
  1849.