home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume13 / starchart / patch1 next >
Text File  |  1988-01-30  |  24KB  |  904 lines

  1. Subject:  v13i024:  Starchart package, Patch1
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: "Alan W. Paeth" <awpaeth@watcgl.waterloo.edu>
  7. Posting-number: Volume 13, Issue 24
  8. Archive-name: starchart/patch1
  9.  
  10. [  The starchart software was posted in Volume 12.  **MAKE SURE TO UNPACK
  11.    THIS IN A SEPARATE DIRECTORY or you will wipe out existing files!**  --r$ ]
  12.  
  13. ! This is a parallel posting along with a submission to comp.sources.bugs.
  14. ! Whereas the latter is for quick dissemination of a rapidly evolving program,
  15. ! this copy to comp.sources.unix is intended to provide both archival storage
  16. ! of the software, plus wider distribution when it is eventually posted.
  17.  
  18. This posting is a complete upgrade/bug fix for my recent posting of
  19. StarChart. It fixes all reported bugs, both public and private.
  20. In addition, starchart.c has been significantly upgraded, and ver #2.1 is
  21. sent in complete form (not as a patch list). A nasty bug in planet.c has
  22. been squashed. Compile and run-time portability to sysV UNIX is added.
  23.  
  24. Bonus: new drivers have been written by the net: IRIS and Unix Plot(5) format.
  25.  
  26. # This is a shell archive.  Remove anything before this line,
  27. # then unpack it by saving it in a file and typing "sh file".
  28. #
  29. # Contents:  README Makefile patch-moonphase.c patch-planet.c patch-stardsp.c
  30. #    patch-starhp.c patch-starimages.c patch-starlaser.c patch-starpic.c
  31. #    patch-starpost.c patch-startek.c patch-yaleformat patchall
  32.  
  33. echo x - README
  34. sed 's/^@//' > "README" <<'@//E*O*F README//'
  35. This is the SOFTWARE update kit for StarChart version #2
  36. which was released in Nov/Dec 1987. The kit performs an upgrade to ver #2.1
  37. No upgrades to yale.star or other .star files occurs.
  38.  
  39. This kit updates StarChart version #2 software as it appeared in that release -
  40. no other patches should already be in place. Virgin copies of version #2 are
  41. available from the moderator of comp.sources.unix.
  42.  
  43.  
  44. Overview of Changes
  45.  
  46. More portability across sysV and IRIS UNIX installations.
  47. A particularly nasty bug in planet.c was removed.
  48. Two new device drivers were added (Unix Plot(5) and Iris).
  49. StarChart now performs full clipping of vectors.
  50. Additional flags for creating stylized output and larger displays.
  51. PostScript now has nicer symbols for non-stellar objects.
  52. More detailed patch and upgrade notes appear in the source code.
  53.  
  54. FILES
  55.  
  56. Name            Description/Instructions
  57. ----            ------------------------
  58. README            this file
  59. patch-*            patches for moonphase.c, planet.c, drivers, yaleformat
  60. patchall        runs the above patches on the originals
  61. starchart.1        new man page
  62. starchart.c        rewritten main driver (easier to reinstall then patch)
  63. starchart.h        accompanying new .h file for above (ditto)
  64. stariris.c        new IRIS driver        
  65. staruplot.c        new UNIX Plot(5) driver
  66. @//E*O*F README//
  67. chmod u=rw,g=r,o=r README
  68.  
  69. echo x - Makefile
  70. sed 's/^@//' > "Makefile" <<'@//E*O*F Makefile//'
  71. #
  72. # Author: Petri Launiainen, Intrinsic Oy, Tampere, FINLAND (pl@intrin.FI)
  73. #
  74. # Based on the work of Alan W. Paeth
  75. #
  76.  
  77. SHELL = /bin/sh
  78.  
  79. #SITE DEPENDENCIES
  80. #
  81. # Uncomment out the version appropriate for your site.
  82. # At present dependencies for sysV UNIX and Silicon Graphics IRIS exist
  83. #
  84. #LOCAL=-DSYSV -Dindex=strchr
  85. #LOCAL= -Zf
  86. #
  87. # put the Yale Star Catalog file path here: because the yale.star is
  88. # static (stars don't change so often :->), consider using some static
  89. # library path here - relative one is used for quick testing
  90.  
  91. #STAR = "/usr/lib/starchart/yale.star"
  92. STAR = "./yale.star"
  93.  
  94. # similarly assign the Messier file path:
  95.  
  96. #MESS = "/usr/lib/starchart/messier.star"
  97. MESS = "./messier.star"
  98.  
  99. # and the constellation finder file:
  100.  
  101. #CONS = "/usr/lib/starchart/con.locs"
  102. CONS = "./con.locs"
  103.  
  104. # put the planet position file path here: it should be preferably
  105. # relative, thus allowing everyone to change planet positions according
  106. # to their interests.  This file changes when the 'planet' program is
  107. # executed
  108.  
  109. PLANET = "./planet.star"
  110.  
  111. # notice that starchart.o and planet are made dependent on Makefile, due
  112. # to the STARFILE, MESSFILE, CONSTFILE and PLANETFILE definitions here
  113.  
  114. # put the installation directory here
  115.  
  116. BINDIR = "/usr/local/bin"
  117.  
  118. CFLAGS = -g -DSTARFILE='$(STAR)' -DPLANETFILE='$(PLANET)' -DCONSTFILE='$(CONS)' -DMESSFILE='$(MESS)'\
  119.     $(LOCAL)
  120. LFLAGS = -g
  121.  
  122. # star chart calculation routine file
  123.  
  124. COBJ = starchart.o
  125.  
  126. # default binary names: if you change these, change also the corresponding
  127. # make tags
  128.  
  129. BINS = epoch moonphase planet startek stardsp starpic staruplot starhp starlaser starpost
  130.  
  131. test:
  132.     stardsp -c ori
  133.  
  134. all:    \
  135.     planet\
  136.     starhp\
  137.     staruplot\
  138.     stardsp\
  139.     startek\
  140.     starpic\
  141.     starpost\
  142.     starlaser\
  143.     epoch\
  144.     moonphase
  145.  
  146. install: all
  147.     strip $(BINS)
  148.     mv $(BINS) $(BINDIR)
  149.  
  150. starchart.o: starchart.c Makefile starchart.h
  151.  
  152. moonphase: moonphase.o
  153.     cc $(LFLAGS) moonphase.o -lm -o $@
  154.  
  155. epoch: epoch.o
  156.     cc $(LFLAGS) epoch.o -lm -o $@
  157.  
  158. planet:    planet.o Makefile
  159.     cc $(LFLAGS) $(DEFINES) planet.o -lm -o $@
  160.  
  161. stardsp: $(COBJ) stardsp.o
  162.     cc $(LFLAGS) $(COBJ) stardsp.o -lm -o $@
  163.  
  164. starpic: $(COBJ) starpic.o
  165.     cc $(LFLAGS) $(COBJ) starpic.o -lm -o $@
  166.  
  167. staruplot: $(COBJ) staruplot.o starimages.o
  168.     cc $(LFLAGS) $(COBJ) staruplot.o starimages.o -lplot -lm -o $@
  169.  
  170. startek: $(COBJ) startek.o starimages.o
  171.     cc $(LFLAGS) $(COBJ) startek.o starimages.o -lm -o $@
  172.  
  173. starhp: $(COBJ) starhp.o starimages.o
  174.     cc $(LFLAGS) $(COBJ) starhp.o starimages.o -lm -o $@
  175.  
  176. starlaser: $(COBJ) starlaser.o starimages.o
  177.     cc $(LFLAGS) $(COBJ) starlaser.o starimages.o -lm -o $@
  178.  
  179. stariris: $(COBJ) stariris.o starimages.o
  180.     cc $(LFLAGS) $(COBJ) stariris.o starimages.o -Zf -Zg -lm -o $@
  181.  
  182. starpost: $(COBJ) starpost.o
  183.     cc $(LFLAGS) $(COBJ) starpost.o -lm -o $@
  184.  
  185. clean:
  186.     rm -f *.o mlog core
  187. @//E*O*F Makefile//
  188. chmod u=r,g=r,o=r Makefile
  189.  
  190. echo x - patch-moonphase.c
  191. sed 's/^@//' > "patch-moonphase.c" <<'@//E*O*F patch-moonphase.c//'
  192. 6c6
  193. <         by Duffett-Smith.
  194. ---
  195. >     by Duffett-Smith.
  196. 8c8
  197. <         of code was adapted from.
  198. ---
  199. >     of code was adapted from.
  200. 12c12,13
  201. <  ****************************************************************************/
  202. ---
  203. > ! modified by awpaeth@watcgl, December 1987 for sysV compatability
  204. > ****************************************************************************/
  205. 14a16
  206. > #ifndef SYSV
  207. 15a18,20
  208. > #else
  209. > #include <time.h>
  210. > #endif
  211. @//E*O*F patch-moonphase.c//
  212. chmod u=rw,g=r,o=r patch-moonphase.c
  213.  
  214. echo x - patch-planet.c
  215. sed 's/^@//' > "patch-planet.c" <<'@//E*O*F patch-planet.c//'
  216. 2c2
  217. <  *           A program to determine the position of
  218. ---
  219. >  *         A program to determine the position of
  220. 32a33,41
  221. >  ! Patched December, 1987 by Alan Paeth (awpaeth@watcgl),
  222. >  ! based on revisions by Kurt Horton (ihnp4!erc780!horton)
  223. >  ! and Stephen Kennedy <ihnp4!cbosgd!smk>
  224. >  ! et al.
  225. >  !
  226. >  ! [1] Mars and Saturn now plot as "m" and "s", not "M" and "S" (Mercury, Sol)
  227. >  ! [2] New guesses at magnitudes are now given, could someone compute them?
  228. >  ! [3] fixed a nasty bug which gave wrong sign for decl between -1 deg and 0.
  229. >  !
  230. 39c48,52
  231. < #include <sys/time.h>    /* for getting current GMT */
  232. ---
  233. > #ifndef SYSV
  234. > #include <sys/time.h>    /* for getting current GMT (generic Unix) */
  235. > #else
  236. > #include <time.h>    /* for getting current GMT (sysV version) */
  237. > #endif
  238. 49,51c62,64
  239. < #define MAGSOL 0
  240. < #define MAGMER 150
  241. < #define MAGVEN 0
  242. ---
  243. > #define MAGSOL -99
  244. > #define MAGMER -10
  245. > #define MAGVEN -20
  246. 102a116
  247. > #ifndef SYSV
  248. 106a121,124
  249. > #else
  250. >     long time();
  251. >     return(GMT1970 + (double)time((long *)0)/SECSPERDAY);
  252. > #endif
  253. 111a130
  254. > #ifndef SYSV
  255. 113a133
  256. > #endif
  257. 135a156
  258. 139,144c160,169
  259. <     gettimeofday(&tv, &tz);
  260. <     time = 0.0;                /* local time (0.0-23.999) */
  261. <     yy = CURYEAR;            /* local year */
  262. <     mm = 0;                /* local month */
  263. <     dd = 0;                /* local day of month */
  264. <     timez = tz.tz_minuteswest/60.0;    /* local time hrs west of Greenwich */
  265. ---
  266. > #ifndef SYSV
  267. >     gettimeofday(&tv, &tz);
  268. >     timez = tz.tz_minuteswest/60.0;    /* local time hrs west of Greenwich */
  269. > #else
  270. >     timez = timezone/3600+(daylight?1:0);
  271. > #endif
  272. >     time = 0.0;            /* local time (0.0-23.999) */
  273. >     yy = CURYEAR;            /* local year */
  274. >     mm = 0;                /* local month */
  275. >     dd = 0;                /* local day of month */
  276. 151c176
  277. <         die("unknown argument - %s", usage /*argv[j]*/ );
  278. ---
  279. >         die("unknown argument - %s\n%s", argv[j], usage);
  280. 159c184
  281. <         default:  die("unknown switch - %s", usage /* argv[j] */ );
  282. ---
  283. >         default:  die("unknown switch - %s\n%s", argv[j], usage );
  284. 428c453
  285. <     trans(r,b,ll,Stheta,Sr,epli, MAGMAR, "PM", "Mars");
  286. ---
  287. >     trans(r,b,ll,Stheta,Sr,epli, MAGMAR, "Pm", "Mars");
  288. 772c797
  289. < trans(r,b,ll,Stheta,Sr,epli, MAGSAT, "PS", "Saturn");
  290. ---
  291. > trans(r,b,ll,Stheta,Sr,epli, MAGSAT, "Ps", "Saturn");
  292. 1081a1107
  293. >     char decsign;
  294. 1092a1119,1124
  295. >     decsign = '+';
  296. >     if (dec<0)
  297. >         {
  298. >         dec = -dec;
  299. >         decsign = '-';
  300. >         }
  301. 1094c1126
  302. <     m   =(int)((dec - deg)*60);
  303. ---
  304. >     m   = (int)((dec - deg)*60);
  305. 1096,1104c1128
  306. <     if ( m < 0)
  307. <     {
  308. <         m = m * -1;
  309. <     }
  310. <     if (s < 0)
  311. <     {
  312. <         s = s * -1;
  313. <     }
  314. <     printf("   %+3ddeg %2dm %2ds ",deg,m,s);
  315. ---
  316. >     printf("   %c%2ddeg %2dm %2ds ",decsign,deg,m,s);
  317. 1106c1130
  318. <     fprintf(logfile, "%+03d%02d+%03d%s%s\n", deg, m, mag, sym, str);
  319. ---
  320. >     fprintf(logfile, "%c%02d%02d+%03d%s%s\n", decsign,deg,m,mag,sym,str);
  321. 1185,1186c1209,1210
  322. < die(a,b)
  323. <     char *a, *b;
  324. ---
  325. > die(a,b,c)
  326. >     char *a, *b, *c;
  327. 1189c1213
  328. <     fprintf(stderr,a,b);
  329. ---
  330. >     fprintf(stderr,a,b,c);
  331. @//E*O*F patch-planet.c//
  332. chmod u=rw,g=r,o=r patch-planet.c
  333.  
  334. echo x - patch-stardsp.c
  335. sed 's/^@//' > "patch-stardsp.c" <<'@//E*O*F patch-stardsp.c//'
  336. 4a5,12
  337. > /*
  338. >  ! patched December, 1987 by Alan Paeth (awpaeth@watcgl),
  339. >  !
  340. >  ! [1] formal/actual parmaters for drawNebu, drawPlan.. now agree
  341. >  ! [2] "bigmaster" chart layout now added
  342. >  !
  343. >  */
  344. 18c26
  345. <             3.0, 1.0, 420, 35, 480, 195, 0.0 };
  346. ---
  347. >             3.0, 1.0, 2.05, 420, 35, 480, 195, 0.0 };
  348. 21c29
  349. <             5.9, 2.0, 20, 265, 880, 500, 0.0 };
  350. ---
  351. >             5.9, 2.0, 2.05, 20, 265, 880, 500, 0.0 };
  352. 22a31,33
  353. > mapblock bigmaster =    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  354. >             5.9, 2.0, 2.05, 20, 65, 880, 700, 0.0 };
  355. 110c121,122
  356. < drawPlan(x, y)
  357. ---
  358. > drawPlan(x, y, mag, type, color)
  359. >     char type, *color;
  360. 160c172,173
  361. < drawGalx(x, y)
  362. ---
  363. > drawGalx(x, y, mag, type, color)
  364. >     char type, *color;
  365. 165c178,179
  366. < drawNebu(x, y)
  367. ---
  368. > drawNebu(x, y, mag, type, color)
  369. >     char type, *color;
  370. 170c184,185
  371. < drawClus(x, y)
  372. ---
  373. > drawClus(x, y, mag, type, color)
  374. >     char type, *color;
  375. @//E*O*F patch-stardsp.c//
  376. chmod u=rw,g=r,o=r patch-stardsp.c
  377.  
  378. echo x - patch-starhp.c
  379. sed 's/^@//' > "patch-starhp.c" <<'@//E*O*F patch-starhp.c//'
  380. 24a25,31
  381. >  ! patched December, 1987 by Alan Paeth (awpaeth@watcgl),
  382. >  !
  383. >  ! [1] "bigmaster" chart layout now added
  384. >  !
  385. >  */
  386. > /*
  387. 29c36
  388. <             3.2, 1.0, 420, 35, 480, 195, 0.0 };
  389. ---
  390. >             3.2, 1.0, 2.05, 420, 35, 480, 195, 0.0 };
  391. 32c39
  392. <             8.0, 3.0, 20, 265, 880, 500, 0.0 };
  393. ---
  394. >             8.0, 3.0, 2.05, 20, 265, 880, 500, 0.0 };
  395. 33a41,43
  396. > mapblock bigmaster =    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  397. >             8.0, 3.0, 2.05, 20,  65, 880, 700, 0.0 };
  398. 81c91
  399. <     
  400. ---
  401. @//E*O*F patch-starhp.c//
  402. chmod u=rw,g=r,o=r patch-starhp.c
  403.  
  404. echo x - patch-starimages.c
  405. sed 's/^@//' > "patch-starimages.c" <<'@//E*O*F patch-starimages.c//'
  406. 32c32
  407. < ** 
  408. ---
  409. > **
  410. 46c46
  411. <      ** this is a two state machine - first it just gathers ptr strings
  412. ---
  413. >     ** this is a two state machine - first it just gathers ptr strings
  414. 65c65
  415. <     retarea = (int *) calloc 
  416. ---
  417. >     retarea = (int *) calloc
  418. 110c110,111
  419. < drawPlan(x, y)
  420. ---
  421. > drawPlan(x, y, max, type, color)
  422. > char type, *color;
  423. 133c134
  424. < drawStar (x, y, mag, type, color)
  425. ---
  426. > drawStar(x, y, mag, type, color)
  427. 140,145c141,146
  428. <     case  0: draw0 (x, y); break;
  429. <     case  1: draw1 (x, y); break;
  430. <     case  2: draw2 (x, y); break;
  431. <     case  3: draw3 (x, y); break;
  432. <     case  4: draw4 (x, y); break;
  433. <     default: draw5 (x, y); break;
  434. ---
  435. >     case  0: drawS0 (x, y); break;
  436. >     case  1: drawS1 (x, y); break;
  437. >     case  2: drawS2 (x, y); break;
  438. >     case  3: drawS3 (x, y); break;
  439. >     case  4: drawS4 (x, y); break;
  440. >     default: drawS5 (x, y); break;
  441. 149c150
  442. < draw0(x, y)
  443. ---
  444. > drawS0(x, y)
  445. 157c158
  446. <        (void) cstar (" ***** ");
  447. ---
  448. >     (void) cstar (" ***** ");
  449. 165c166
  450. <         }
  451. ---
  452. >     }
  453. 168c169
  454. <         {
  455. ---
  456. >     {
  457. 174c175
  458. < draw1(x, y)
  459. ---
  460. > drawS1(x, y)
  461. 182c183
  462. <            (void) cstar (" *** ");
  463. ---
  464. >         (void) cstar (" *** ");
  465. 197c198
  466. < draw2(x, y)
  467. ---
  468. > drawS2(x, y)
  469. 205c206
  470. <            (void) cstar ("  *  ");
  471. ---
  472. >         (void) cstar ("  *  ");
  473. 220c221
  474. < draw3(x, y)
  475. ---
  476. > drawS3(x, y)
  477. 241c242
  478. < draw4(x, y)
  479. ---
  480. > drawS4(x, y)
  481. 262c263
  482. < draw5(x, y)
  483. ---
  484. > drawS5(x, y)
  485. 281c282
  486. < drawGalx(x, y)
  487. ---
  488. > drawGalx(x, y, mag, type, color)
  489. 282a284
  490. > char type, *color;
  491. 289c291
  492. <            (void) cstar (" *** ");
  493. ---
  494. >         (void) cstar (" *** ");
  495. 304c306
  496. < drawClus(x, y)
  497. ---
  498. > drawClus(x, y, mag, type, color)
  499. 305a308
  500. > char type, *color;
  501. 312c315
  502. <            (void) cstar (" * * ");
  503. ---
  504. >         (void) cstar (" * * ");
  505. 325c328
  506. < drawNebu(x, y)
  507. ---
  508. > drawNebu(x, y, mag, type, color)
  509. 326a330
  510. > char type, *color;
  511. 333c337
  512. <            (void) cstar (" ** ");
  513. ---
  514. >         (void) cstar (" ** ");
  515. @//E*O*F patch-starimages.c//
  516. chmod u=rw,g=r,o=r patch-starimages.c
  517.  
  518. echo x - patch-starlaser.c
  519. sed 's/^@//' > "patch-starlaser.c" <<'@//E*O*F patch-starlaser.c//'
  520. 13a14,21
  521. >  ! patched December, 1987 by Alan Paeth (awpaeth@watcgl),
  522. >  !
  523. >  ! [1] "bigmaster" chart layout now added
  524. >  ! [2] different XOFF and YOFF values adopted for better margins
  525. >  !
  526. >  */
  527. > /*
  528. 30,31c38,39
  529. < #define XOFF    1060        /* text centering offset (in decipoints) */
  530. < #define YOFF    (-80)
  531. ---
  532. > #define XOFF    520        /* text centering offset (in decipoints) */
  533. > #define YOFF    (-50)        /* previously, XOFF=1060; YOFF=(-80) */
  534. 41c49
  535. <             3.2, 1.0, 420, 35, 480, 195, 0.0 };
  536. ---
  537. >             3.2, 1.0, 2.05, 420, 35, 480, 195, 0.0 };
  538. 44c52
  539. <             8.0, 3.0, 20, 265, 880, 500, 0.0 };
  540. ---
  541. >             8.0, 3.0, 2.05, 20, 265, 880, 500, 0.0 };
  542. 45a54,56
  543. > mapblock bigmaster =    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  544. >             8.0, 3.0, 2.05, 20,  65, 880, 700, 0.0 };
  545. 94c105
  546. <     
  547. ---
  548. @//E*O*F patch-starlaser.c//
  549. chmod u=rw,g=r,o=r patch-starlaser.c
  550.  
  551. echo x - patch-starpic.c
  552. sed 's/^@//' > "patch-starpic.c" <<'@//E*O*F patch-starpic.c//'
  553. 4a5,12
  554. > /*
  555. >  ! patched December, 1987 by Alan Paeth (awpaeth@watcgl),
  556. >  !
  557. >  ! [1] formal/actual parmaters for drawNebu, drawPlan.. now agree
  558. >  ! [2] "bigmaster" chart layout now added
  559. >  !
  560. >  */
  561. 15c23
  562. < static float xold, yold;
  563. ---
  564. > static double xold, yold;
  565. 22c30
  566. <             3.2, 1.0, 480, 0, 480, 240, 0.0 };
  567. ---
  568. >             3.2, 1.0, 2.05, 480, 0, 480, 240, 0.0 };
  569. 25c33
  570. <             8.0, 3.0, 0, 370, 960, 960, 0.0 };
  571. ---
  572. >             8.0, 3.0, 2.05, 0, 370, 960, 960, 0.0 };
  573. 26a35,37
  574. > mapblock bigmaster =    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  575. >             8.0, 3.0, 2.05, 0, 80, 960, 1250, 0.0 };
  576. 35c46
  577. < float conv(i)
  578. ---
  579. > double conv(i)
  580. 114c125,126
  581. < drawGalx(x, y)
  582. ---
  583. > drawGalx(x, y, mag, type, color)
  584. >     char type, *color;
  585. 120c132,133
  586. < drawNebu(x, y)
  587. ---
  588. > drawNebu(x, y, mag, type, color)
  589. >     char type, *color;
  590. 126c139,140
  591. < drawClus(x, y)
  592. ---
  593. > drawClus(x, y, mag, type, color)
  594. >     char type, *color;
  595. 132c146,147
  596. < drawPlan(x, y)
  597. ---
  598. > drawPlan(x, y, mag, type, color)
  599. >     char type, *color;
  600. @//E*O*F patch-starpic.c//
  601. chmod u=rw,g=r,o=r patch-starpic.c
  602.  
  603. echo x - patch-starpost.c
  604. sed 's/^@//' > "patch-starpost.c" <<'@//E*O*F patch-starpost.c//'
  605. 4a5,16
  606. > /*
  607. >  ! patched December, 1987 by Alan Paeth (awpaeth@watcgl),
  608. >  ! based on revisions by Craig Counterman (ccount@royal.mit.edu)
  609. >  !
  610. >  ! [1] "bigmaster" chart layout now added
  611. >  ! [2] extensive rework and subclassing of non-stellar objects, e.g.
  612. >  !     galaxies, now have both spiral and irregular variants.
  613. >  ! [3] star sizes now extended to magnitude 10
  614. >  ! [4] white halo-ing of text overlays (by analogy to star haloing)
  615. >  !
  616. >  */
  617. 13c25
  618. <             3.2, 1.0, 480, 0, 480, 240, 0.0 };
  619. ---
  620. >             3.2, 1.0, 2.05, 480, 0, 480, 240, 0.0 };
  621. 16c28
  622. <             8.0, 3.0, 0, 370, 960, 960, 0.0 };
  623. ---
  624. >             8.0, 3.0, 2.05, 0, 370, 960, 960, 0.0 };
  625. 17a30,32
  626. > mapblock bigmaster =    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  627. >             8.0, 3.0, 2.05, 0, 30, 960, 1400, 0.0 };
  628. 32c47
  629. < float conv(i)
  630. ---
  631. > double conv(i)
  632. 66c81,84
  633. < out("/lshow {5 0 8#040 4 3 roll widthshow} def");
  634. ---
  635. > out("% The default lshow halos glyphs, but is slow. It is especially");
  636. > out("% useful when both the -a and -o switches are in effect (see man page)");
  637. > out("%/lshow {5 0 8#040 4 3 roll widthshow} def %fast version");
  638. > out("/lshow {true charpath gsave 1 setgray stroke grestore 0 setgray fill} def");
  639. 82,87d99
  640. < out("% non-stellar object macros (better designs most welcome)");
  641. < out("/planet  {2 copy 2.5 starcirc 3.5 starplus} def");
  642. < out("/galaxy  {2 copy 2.5 starcirc 3.5 starminus} def");
  643. < out("/nebula  {2 copy 1 setgray 2.5 starcirc 0 setgray [2] 0 setdash");
  644. < out("          2.5 starcirc [] 0 setdash} def");
  645. < out("/cluster {2.5 starcirc} def");
  646. 97,111c109,138
  647. < out("/s1 {3.8 s} def");
  648. < out("/d1 {3.8 d} def");
  649. < out("/v1 {3.8 v} def");
  650. < out("/s2 {3.1 s} def");
  651. < out("/d2 {3.1 d} def");
  652. < out("/v2 {3.1 v} def");
  653. < out("/s3 {2.4 s} def");
  654. < out("/d3 {2.4 d} def");
  655. < out("/v3 {2.4 v} def");
  656. < out("/s4 {1.7 s} def");
  657. < out("/d4 {1.7 d} def");
  658. < out("/v4 {1.7 v} def");
  659. < out("/s5 {1.0 s} def");
  660. < out("/d5 {1.0 d} def");
  661. < out("/v5 {1.0 v} def");
  662. ---
  663. > out("/s1 {4.0 s} def");
  664. > out("/d1 {4.0 d} def");
  665. > out("/v1 {4.0 v} def");
  666. > out("/s2 {3.5 s} def");
  667. > out("/d2 {3.5 d} def");
  668. > out("/v2 {3.5 v} def");
  669. > out("/s3 {3.0 s} def");
  670. > out("/d3 {3.0 d} def");
  671. > out("/v3 {3.0 v} def");
  672. > out("/s4 {2.5 s} def");
  673. > out("/d4 {2.5 d} def");
  674. > out("/v4 {2.5 v} def");
  675. > out("/s5 {2.0 s} def");
  676. > out("/d5 {2.0 d} def");
  677. > out("/v5 {2.0 v} def");
  678. > out("/s6 {1.7 s} def");
  679. > out("/d6 {1.7 d} def");
  680. > out("/v6 {1.7 v} def");
  681. > out("/s7 {1.5 s} def");
  682. > out("/d7 {1.5 d} def");
  683. > out("/v7 {1.5 v} def");
  684. > out("/s8 {1.3 s} def");
  685. > out("/d8 {1.3 d} def");
  686. > out("/v8 {1.3 v} def");
  687. > out("/s9 {1.1 s} def");
  688. > out("/d9 {1.1 d} def");
  689. > out("/v9 {1.1 v} def");
  690. > out("/s10 {1.0 s} def");
  691. > out("/d10 {1.0 d} def");
  692. > out("/v10 {1.0 v} def");
  693. 112a140,170
  694. > out("% non-stellar object macros (better designs most welcome)");
  695. > out("/planet  {2 copy 2.5 starcirc 3.5 starplus} def");
  696. > out("/asteroid { 2 copy newpath 1.5 0 360 arc closepath fill moveto");
  697. > out("        3 3 rmoveto -6 -6 rlineto 6 0 rmoveto -6 6 rlineto stroke } def");
  698. > out("/comet { 2 copy newpath 3 0 360 arc moveto 45 rotate");
  699. > out("  6 3 rmoveto -6 0 rlineto 3 -3 rmoveto 3 0 rlineto 0 -3 rmoveto");
  700. > out("  -6 0 rlineto   closepath stroke -45 rotate } def");
  701. > out("/nebulad  { newpath moveto 3 0 rmoveto -3 -3 rlineto -3 3 rlineto");
  702. > out("  3 3 rlineto 3 -3 rlineto stroke } def");
  703. > out("/nebulap { 2 copy newpath translate 30 rotate 1 .5 scale");
  704. > out("    0 0 3 0 360 arc closepath stroke");
  705. > out("    1 2 scale -30 rotate neg exch neg exch translate } def");
  706. > out("/galaxye { 2 copy newpath translate -30 rotate 1 .5 scale");
  707. > out("    0 0 3 0 360 arc closepath fill");
  708. > out("    1 2 scale 30 rotate neg exch neg exch translate } def");
  709. > out("/galaxys { 2 copy 2 copy newpath translate -30 rotate 1 .5 scale");
  710. > out("    0 0 3 0 360 arc closepath fill");
  711. > out("    -4 -3 moveto -3 0 lineto 4 3 moveto 3 0 lineto ");
  712. > out("    stroke  1 2 scale 30 rotate ");
  713. > out("    neg exch neg exch translate } def");
  714. > out("/galaxyq { 2 copy 2 copy newpath translate -30 rotate 1 .5 scale");
  715. > out("    0 0 3 0 360 arc closepath fill");
  716. > out("    1 2 scale 30 rotate ");
  717. > out("    -3 0 moveto 3 0 lineto 0 -3 moveto 0 3 lineto stroke");
  718. > out("    neg exch neg exch translate } def");
  719. > out("/clustero { 2 copy newpath 1 setgray 3 0 360 arc fill");
  720. > out("    [1 2] 0 setdash 0 setgray 3 0 360 arc stroke [] 0 setdash } def");
  721. > out("/clusterg { 2 copy 2 copy newpath 1 setgray 3 0 360 arc fill");
  722. > out("    [1 2] 0 setdash 0 setgray 3 0 360 arc stroke [] 0 setdash");
  723. > out("    1.5 0 360 arc closepath fill } def");
  724. > out("%");
  725. 178c236,237
  726. < drawPlan(x, y)
  727. ---
  728. > drawPlan(x, y, mag, type, color)
  729. >     char type, *color;
  730. 180c239,252
  731. <     printf("%.1f %.1f planet\n", conv(x), conv(y));
  732. ---
  733. >     switch(type)
  734. >     {
  735. >     case 'A': printf("%.1f %.1f asteroid\n", conv(x), conv(y)); break;
  736. >     case 'C': printf("%.1f %.1f comet\n", conv(x), conv(y)); break;
  737. >     case 'S':
  738. >     case 'M':
  739. >     case 'V':
  740. >     case 'm':
  741. >     case 'J':
  742. >     case 's':
  743. >     case 'U':
  744. >     case 'N':
  745. >     default:  printf("%.1f %.1f planet\n", conv(x), conv(y));
  746. >     }
  747. 183c255,256
  748. < drawGalx(x, y)
  749. ---
  750. > drawGalx(x, y, mag, type, color)
  751. >     char type, *color;
  752. 185c258,272
  753. <     printf("%.1f %.1f galaxy\n", conv(x), conv(y));
  754. ---
  755. >     switch(type)
  756. >     {
  757. >     case 'a':
  758. >     case 'b':
  759. >     case 'c':
  760. >     case 'd':
  761. >     case 'B':
  762. >     case 'S':
  763. >     case 'O': printf("%.1f %.1f galaxys\n", conv(x), conv(y)); break;
  764. >     case 'Q': printf("%.1f %.1f galaxyq\n", conv(x), conv(y)); break;
  765. >     case 'E':
  766. >     case 'I':
  767. >     case 'G':
  768. >     default:  printf("%.1f %.1f galaxye\n", conv(x), conv(y));
  769. >     }
  770. 188c275,276
  771. < drawNebu(x, y)
  772. ---
  773. > drawNebu(x, y, mag, type, color)
  774. >     char type, *color;
  775. 190c278,283
  776. <     printf("%.1f %.1f nebula\n", conv(x), conv(y));
  777. ---
  778. >     switch(type)
  779. >     {
  780. >     case 'P': printf("%.1f %.1f nebulap\n", conv(x), conv(y)); break;
  781. >     case 'D':
  782. >     default:  printf("%.1f %.1f nebulad\n", conv(x), conv(y));
  783. >     }
  784. 193c286,287
  785. < drawClus(x, y)
  786. ---
  787. > drawClus(x, y, mag, type, color)
  788. >     char type, *color;
  789. 195c289,294
  790. <     printf("%.1f %.1f cluster\n", conv(x), conv(y));
  791. ---
  792. >     switch(type)
  793. >     {
  794. >     case 'G': printf("%.1f %.1f clusterg\n", conv(x), conv(y)); break;
  795. >     case 'O':
  796. >     default:  printf("%.1f %.1f clustero\n", conv(x), conv(y));
  797. >     }
  798. 213c312
  799. <     if (mag>5) mag = 5;
  800. ---
  801. >     if (mag>10) mag = 10;
  802. @//E*O*F patch-starpost.c//
  803. chmod u=rw,g=r,o=r patch-starpost.c
  804.  
  805. echo x - patch-startek.c
  806. sed 's/^@//' > "patch-startek.c" <<'@//E*O*F patch-startek.c//'
  807. 4a5,10
  808. > /*
  809. >  ! patched December, 1987 by Alan Paeth (awpaeth@watcgl)
  810. >  !
  811. >  ! [1] "bigmaster" chart layout now added
  812. >  !
  813. >  */
  814. 38c44
  815. <             3.2, 1.0, 420, 35, 480, 195, 0.0 };
  816. ---
  817. >             3.2, 1.0, 2.05, 420, 35, 480, 195, 0.0 };
  818. 41c47
  819. <             8.0, 3.0, 20, 265, 880, 500, 0.0 };
  820. ---
  821. >             8.0, 3.0, 2.05, 20, 265, 880, 500, 0.0 };
  822. 42a49,51
  823. > mapblock bigmaster =    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  824. >             8.0, 3.0, 2.05, 20,  65, 880, 700, 0.0 };
  825. 84,92d92
  826. < vecsym(x, y, s)
  827. <     char s;
  828. <     {
  829. <     tekmove(x, y-11); /* center character strings */
  830. <     tekalpha();
  831. <     printf("%c",s);
  832. <     }
  833. 107d106
  834. @//E*O*F patch-startek.c//
  835. chmod u=rw,g=r,o=r patch-startek.c
  836.  
  837. echo x - patch-yaleformat
  838. sed 's/^@//' > "patch-yaleformat" <<'@//E*O*F patch-yaleformat//'
  839. 37c37
  840. < mag    12    3    {-}i    magnitude*100 -dd or -ddd
  841. ---
  842. > mag    12    3    {-}i    magnitude*100 (ddd) or -magnitude*10 (-dd)
  843. 120a121,137
  844. > ! Notes on Magnitude
  845. > !
  846. > ! Magnitudes on the range -9.9 through 9.99 are represented in the following
  847. > ! format: "-99" though "999". Thus, the three position magnitude field is
  848. > ! normally taken as mag*100, unless object is of negative magnitude, in which
  849. > ! case it represents a value mag*10. This costs us the "hundredths" position
  850. > ! for objects of negative magnitude, but this is not objectionable. For very
  851. > ! dim objects, 9.99 represents the current limiting magnitude. As there are
  852. > ! on the order of 1e6 stars to this brightness, the format provides adequate
  853. > ! representation. When used to chart small asteroids or very dim non-stellar
  854. > ! objects, magnitudes below +9.99 will occasionally be encountered; we suggest
  855. > ! coding such entries as "999", with this value then taken to mean >=9.99.
  856. > !
  857. > ! The old yale format which is supported for back compatability allows for
  858. > ! a larger four digit field, but its use is not advocated, as code operation
  859. > ! is not defined in presense of non-digits (such as leading blanks).
  860. @//E*O*F patch-yaleformat//
  861. chmod u=rw,g=r,o=r patch-yaleformat
  862.  
  863. echo x - patchall
  864. sed 's/^@//' > "patchall" <<'@//E*O*F patchall//'
  865. #
  866. #patch everything
  867. #
  868. patch moonphase.c patch-moonphase.c
  869. patch planet.c patch-planet.c
  870. patch stardsp.c patch-stardsp.c
  871. patch starhp.c patch-starhp.c
  872. patch starimages.c patch-starimages.c
  873. patch starlaser.c patch-starlaser.c
  874. patch starpic.c patch-starpic.c
  875. patch starpost.c patch-starpost.c
  876. patch startek.c patch-startek.c
  877. patch yaleformat patch-yaleformat
  878. @//E*O*F patchall//
  879. chmod u=rwx,g=rwx,o=rwx patchall
  880.  
  881. exit 0
  882.  
  883.  
  884.  
  885.  
  886.