home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume12 / cake / part02 < prev    next >
SHell self-extracting ARchive  |  1987-10-14  |  61.8 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: SHell self-extracting ARchive (archive/shar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail, ASCII text default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 20 76 31 32 69 30 30 |Subject:| v12i00|
|00000010| 38 3a 20 20 43 61 6b 65 | 2c 20 61 20 6d 61 6b 65 |8: Cake|, a make|
|00000020| 20 72 65 70 6c 61 63 65 | 6d 65 6e 74 2c 20 50 61 | replace|ment, Pa|
|00000030| 72 74 30 32 2f 30 39 0a | 4e 65 77 73 67 72 6f 75 |rt02/09.|Newsgrou|
|00000040| 70 73 3a 20 63 6f 6d 70 | 2e 73 6f 75 72 63 65 73 |ps: comp|.sources|
|00000050| 2e 75 6e 69 78 0a 53 65 | 6e 64 65 72 3a 20 73 6f |.unix.Se|nder: so|
|00000060| 75 72 63 65 73 0a 41 70 | 70 72 6f 76 65 64 3a 20 |urces.Ap|proved: |
|00000070| 72 73 40 75 75 6e 65 74 | 2e 55 55 2e 4e 45 54 0a |rs@uunet|.UU.NET.|
|00000080| 0a 53 75 62 6d 69 74 74 | 65 64 2d 62 79 3a 20 5a |.Submitt|ed-by: Z|
|00000090| 6f 6c 74 61 6e 20 53 6f | 6d 6f 67 79 69 20 3c 7a |oltan So|mogyi <z|
|000000a0| 73 40 6d 75 6e 6e 61 72 | 69 2e 6f 7a 3e 0a 50 6f |s@munnar|i.oz>.Po|
|000000b0| 73 74 69 6e 67 2d 6e 75 | 6d 62 65 72 3a 20 56 6f |sting-nu|mber: Vo|
|000000c0| 6c 75 6d 65 20 31 32 2c | 20 49 73 73 75 65 20 38 |lume 12,| Issue 8|
|000000d0| 0a 41 72 63 68 69 76 65 | 2d 6e 61 6d 65 3a 20 63 |.Archive|-name: c|
|000000e0| 61 6b 65 2f 70 61 72 74 | 30 32 0a 0a 23 21 20 2f |ake/part|02..#! /|
|000000f0| 62 69 6e 2f 73 68 0a 23 | 20 54 68 69 73 20 69 73 |bin/sh.#| This is|
|00000100| 20 61 20 73 68 65 6c 6c | 20 61 72 63 68 69 76 65 | a shell| archive|
|00000110| 2c 20 6d 65 61 6e 69 6e | 67 3a 0a 23 20 31 2e 20 |, meanin|g:.# 1. |
|00000120| 52 65 6d 6f 76 65 20 65 | 76 65 72 79 74 68 69 6e |Remove e|verythin|
|00000130| 67 20 61 62 6f 76 65 20 | 74 68 65 20 23 21 20 2f |g above |the #! /|
|00000140| 62 69 6e 2f 73 68 20 6c | 69 6e 65 2e 0a 23 20 32 |bin/sh l|ine..# 2|
|00000150| 2e 20 53 61 76 65 20 74 | 68 65 20 72 65 73 75 6c |. Save t|he resul|
|00000160| 74 69 6e 67 20 74 65 78 | 74 20 69 6e 20 61 20 66 |ting tex|t in a f|
|00000170| 69 6c 65 2e 0a 23 20 33 | 2e 20 45 78 65 63 75 74 |ile..# 3|. Execut|
|00000180| 65 20 74 68 65 20 66 69 | 6c 65 20 77 69 74 68 20 |e the fi|le with |
|00000190| 2f 62 69 6e 2f 73 68 20 | 28 6e 6f 74 20 63 73 68 |/bin/sh |(not csh|
|000001a0| 29 20 74 6f 20 63 72 65 | 61 74 65 3a 0a 23 09 61 |) to cre|ate:.#.a|
|000001b0| 63 74 2e 63 0a 23 09 63 | 68 61 73 65 2e 63 0a 23 |ct.c.#.c|hase.c.#|
|000001c0| 09 65 6e 74 72 79 2e 63 | 0a 23 09 65 72 72 6f 72 |.entry.c|.#.error|
|000001d0| 2e 63 0a 23 09 65 78 70 | 61 6e 64 2e 63 0a 23 09 |.c.#.exp|and.c.#.|
|000001e0| 66 69 6c 65 2e 63 0a 23 | 20 54 68 69 73 20 61 72 |file.c.#| This ar|
|000001f0| 63 68 69 76 65 20 63 72 | 65 61 74 65 64 3a 20 57 |chive cr|eated: W|
|00000200| 65 64 20 4f 63 74 20 31 | 34 20 32 31 3a 30 38 3a |ed Oct 1|4 21:08:|
|00000210| 34 33 20 31 39 38 37 0a | 65 78 70 6f 72 74 20 50 |43 1987.|export P|
|00000220| 41 54 48 3b 20 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |ATH; PAT|H=/bin:/|
|00000230| 75 73 72 2f 62 69 6e 3a | 24 50 41 54 48 0a 65 63 |usr/bin:|$PATH.ec|
|00000240| 68 6f 20 73 68 61 72 3a | 20 22 65 78 74 72 61 63 |ho shar:| "extrac|
|00000250| 74 69 6e 67 20 27 61 63 | 74 2e 63 27 22 20 27 28 |ting 'ac|t.c'" '(|
|00000260| 31 32 35 37 38 20 63 68 | 61 72 61 63 74 65 72 73 |12578 ch|aracters|
|00000270| 29 27 0a 69 66 20 74 65 | 73 74 20 2d 66 20 27 61 |)'.if te|st -f 'a|
|00000280| 63 74 2e 63 27 0a 74 68 | 65 6e 0a 09 65 63 68 6f |ct.c'.th|en..echo|
|00000290| 20 73 68 61 72 3a 20 22 | 77 69 6c 6c 20 6e 6f 74 | shar: "|will not|
|000002a0| 20 6f 76 65 72 2d 77 72 | 69 74 65 20 65 78 69 73 | over-wr|ite exis|
|000002b0| 74 69 6e 67 20 66 69 6c | 65 20 27 61 63 74 2e 63 |ting fil|e 'act.c|
|000002c0| 27 22 0a 65 6c 73 65 0a | 73 65 64 20 27 73 2f 5e |'".else.|sed 's/^|
|000002d0| 58 2f 2f 27 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |X//' << |\SHAR_EO|
|000002e0| 46 20 3e 20 27 61 63 74 | 2e 63 27 0a 58 2f 2a 0a |F > 'act|.c'.X/*.|
|000002f0| 58 2a 2a 09 4d 6f 64 75 | 6c 65 20 74 6f 20 65 78 |X**.Modu|le to ex|
|00000300| 65 63 75 74 65 20 43 61 | 6b 65 20 61 63 74 69 6f |ecute Ca|ke actio|
|00000310| 6e 73 2e 0a 58 2a 2f 0a | 58 0a 58 73 74 61 74 69 |ns..X*/.|X.Xstati|
|00000320| 63 09 63 68 61 72 0a 58 | 72 63 73 5f 69 64 5b 5d |c.char.X|rcs_id[]|
|00000330| 20 3d 20 22 24 48 65 61 | 64 65 72 3a 20 2f 6d 69 | = "$Hea|der: /mi|
|00000340| 70 2f 7a 73 2f 73 72 63 | 2f 73 79 73 2f 63 61 6b |p/zs/src|/sys/cak|
|00000350| 65 2f 52 43 53 2f 61 63 | 74 2e 63 2c 76 20 31 2e |e/RCS/ac|t.c,v 1.|
|00000360| 31 34 20 38 36 2f 30 37 | 2f 31 39 20 31 32 3a 32 |14 86/07|/19 12:2|
|00000370| 32 3a 31 38 20 7a 73 20 | 45 78 70 20 24 22 3b 0a |2:18 zs |Exp $";.|
|00000380| 58 0a 58 23 69 6e 63 6c | 75 64 65 09 22 63 61 6b |X.X#incl|ude."cak|
|00000390| 65 2e 68 22 0a 58 0a 58 | 2f 2a 0a 58 2a 2a 09 55 |e.h".X.X|/*.X**.U|
|000003a0| 70 64 61 74 65 20 74 68 | 65 20 6e 6f 64 65 20 62 |pdate th|e node b|
|000003b0| 79 20 65 78 65 63 75 74 | 69 6e 67 20 74 68 65 20 |y execut|ing the |
|000003c0| 61 74 74 61 63 68 65 64 | 20 61 63 74 69 6f 6e 73 |attached| actions|
|000003d0| 2e 0a 58 2a 2a 09 41 63 | 74 75 61 6c 6c 79 2c 20 |..X**.Ac|tually, |
|000003e0| 61 6c 6c 20 74 68 65 20 | 62 75 64 64 69 65 73 20 |all the |buddies |
|000003f0| 77 69 6c 6c 20 62 65 20 | 75 70 64 61 74 65 64 2c |will be |updated,|
|00000400| 20 61 6e 64 0a 58 2a 2a | 09 6e 6f 20 61 63 74 69 | and.X**|.no acti|
|00000410| 6f 6e 20 77 69 6c 6c 20 | 62 65 20 65 78 65 63 75 |on will |be execu|
|00000420| 74 65 64 20 75 6e 6c 65 | 73 73 20 69 74 20 69 73 |ted unle|ss it is|
|00000430| 20 6e 65 63 65 73 73 61 | 72 79 2e 0a 58 2a 2a 0a | necessa|ry..X**.|
|00000440| 58 2a 2a 09 54 68 65 20 | 6c 65 76 65 6c 20 6f 66 |X**.The |level of|
|00000450| 20 61 20 66 69 6c 65 20 | 69 73 20 6f 6e 65 20 67 | a file |is one g|
|00000460| 72 65 61 74 65 72 20 74 | 68 61 6e 20 74 68 65 20 |reater t|han the |
|00000470| 6c 65 76 65 6c 20 6f 66 | 20 69 74 73 0a 58 2a 2a |level of| its.X**|
|00000480| 09 70 61 72 65 6e 74 20 | 69 6e 20 74 68 65 20 63 |.parent |in the c|
|00000490| 68 61 73 65 20 67 72 61 | 70 68 3b 20 74 68 65 20 |hase gra|ph; the |
|000004a0| 6c 65 76 65 6c 20 6f 66 | 20 21 4d 41 49 4e 43 41 |level of| !MAINCA|
|000004b0| 4b 45 21 20 69 73 20 30 | 2e 0a 58 2a 2a 09 54 68 |KE! is 0|..X**.Th|
|000004c0| 69 73 20 63 6f 6e 74 72 | 6f 6c 73 20 74 68 65 20 |is contr|ols the |
|000004d0| 70 72 69 6e 74 69 6e 67 | 20 6f 66 20 6d 65 73 73 |printing| of mess|
|000004e0| 61 67 65 73 20 61 62 6f | 75 74 20 74 68 65 20 70 |ages abo|ut the p|
|000004f0| 72 69 6d 61 72 79 0a 58 | 2a 2a 09 74 61 72 67 65 |rimary.X|**.targe|
|00000500| 74 73 2e 0a 58 2a 2f 0a | 58 0a 58 75 70 64 61 74 |ts..X*/.|X.Xupdat|
|00000510| 65 28 6e 6f 64 65 2c 20 | 6c 65 76 65 6c 2c 20 66 |e(node, |level, f|
|00000520| 6f 72 63 65 5f 65 78 65 | 63 29 0a 58 72 65 67 09 |orce_exe|c).Xreg.|
|00000530| 4e 6f 64 65 09 2a 6e 6f | 64 65 3b 0a 58 72 65 67 |Node.*no|de;.Xreg|
|00000540| 09 69 6e 74 09 6c 65 76 | 65 6c 3b 0a 58 72 65 67 |.int.lev|el;.Xreg|
|00000550| 09 62 6f 6f 6c 09 66 6f | 72 63 65 5f 65 78 65 63 |.bool.fo|rce_exec|
|00000560| 3b 0a 58 7b 0a 58 09 65 | 78 74 65 72 6e 09 09 67 |;.X{.X.e|xtern..g|
|00000570| 65 74 5f 75 74 69 6d 65 | 28 29 3b 0a 58 09 65 78 |et_utime|();.X.ex|
|00000580| 74 65 72 6e 09 09 73 61 | 76 65 5f 6e 6f 76 6f 6c |tern..sa|ve_novol|
|00000590| 28 29 3b 0a 58 09 65 78 | 74 65 72 6e 09 62 6f 6f |();.X.ex|tern.boo|
|000005a0| 6c 09 64 69 66 66 5f 6e | 6f 76 6f 6c 28 29 3b 0a |l.diff_n|ovol();.|
|000005b0| 58 09 65 78 74 65 72 6e | 09 57 61 69 74 09 63 61 |X.extern|.Wait.ca|
|000005c0| 72 72 79 5f 6f 75 74 28 | 29 3b 0a 58 09 65 78 74 |rry_out(|);.X.ext|
|000005d0| 65 72 6e 09 63 68 61 72 | 09 2a 6c 69 73 74 5f 6e |ern.char|.*list_n|
|000005e0| 61 6d 65 73 28 29 3b 0a | 58 09 72 65 67 09 4e 6f |ames();.|X.reg.No|
|000005f0| 64 65 09 2a 62 6e 6f 64 | 65 2c 20 2a 6f 6e 6f 64 |de.*bnod|e, *onod|
|00000600| 65 3b 0a 58 09 72 65 67 | 09 4c 69 73 74 09 2a 70 |e;.X.reg|.List.*p|
|00000610| 74 72 2c 20 2a 70 74 72 | 31 3b 0a 58 09 72 65 67 |tr, *ptr|1;.X.reg|
|00000620| 09 62 6f 6f 6c 09 6f 6b | 73 6f 66 61 72 2c 20 6e |.bool.ok|sofar, n|
|00000630| 65 65 64 61 63 74 2c 20 | 6d 61 79 73 6b 69 70 3b |eedact, |mayskip;|
|00000640| 0a 58 09 72 65 67 09 4c | 69 73 74 09 2a 65 72 72 |.X.reg.L|ist.*err|
|00000650| 6e 6f 64 65 73 3b 0a 58 | 09 57 61 69 74 09 09 63 |nodes;.X|.Wait..c|
|00000660| 6f 64 65 3b 0a 58 0a 58 | 09 70 75 74 5f 74 72 61 |ode;.X.X|.put_tra|
|00000670| 69 6c 28 22 75 70 64 61 | 74 65 22 2c 20 22 73 74 |il("upda|te", "st|
|00000680| 61 72 74 22 29 3b 0a 58 | 09 63 64 65 62 75 67 28 |art");.X|.cdebug(|
|00000690| 22 68 75 6e 74 69 6e 67 | 20 25 73 20 61 74 20 6c |"hunting| %s at l|
|000006a0| 65 76 65 6c 20 25 64 5c | 6e 22 2c 20 6e 6f 64 65 |evel %d\|n", node|
|000006b0| 2d 3e 6e 5f 6e 61 6d 65 | 2c 20 6c 65 76 65 6c 29 |->n_name|, level)|
|000006c0| 3b 0a 58 0a 58 09 2f 2a | 20 66 6f 72 63 65 20 70 |;.X.X./*| force p|
|000006d0| 72 69 6e 74 69 6e 67 20 | 6f 66 20 22 75 70 2d 74 |rinting |of "up-t|
|000006e0| 6f 2d 64 61 74 65 22 20 | 6d 65 73 73 61 67 65 73 |o-date" |messages|
|000006f0| 20 2a 2f 0a 58 09 69 66 | 20 28 6c 65 76 65 6c 20 | */.X.if| (level |
|00000700| 3d 3d 20 30 20 26 26 20 | 69 73 5f 6f 6b 28 6e 6f |== 0 && |is_ok(no|
|00000710| 64 65 29 29 0a 58 09 09 | 6e 6f 64 65 2d 3e 6e 5f |de)).X..|node->n_|
|00000720| 6b 69 6e 64 20 3d 20 6e | 5f 43 41 4e 44 4f 3b 0a |kind = n|_CANDO;.|
|00000730| 58 09 09 0a 58 09 69 66 | 20 28 6f 66 66 5f 6e 6f |X...X.if| (off_no|
|00000740| 64 65 28 6e 6f 64 65 2c | 20 6e 66 5f 45 52 52 29 |de(node,| nf_ERR)|
|00000750| 20 26 26 20 69 73 5f 6f | 6b 28 6e 6f 64 65 29 29 | && is_o|k(node))|
|00000760| 0a 58 09 7b 0a 58 09 09 | 63 64 65 62 75 67 28 22 |.X.{.X..|cdebug("|
|00000770| 65 76 65 72 79 74 68 69 | 6e 67 20 61 2d 6f 6b 2c |everythi|ng a-ok,|
|00000780| 20 6e 6f 74 68 69 6e 67 | 20 74 6f 20 64 6f 5c 6e | nothing| to do\n|
|00000790| 22 29 3b 0a 58 09 09 69 | 66 20 28 6c 65 76 65 6c |");.X..i|f (level|
|000007a0| 20 3d 3d 20 31 29 0a 58 | 09 09 7b 0a 58 09 09 09 | == 1).X|..{.X...|
|000007b0| 69 66 20 28 6f 6e 5f 6e | 6f 64 65 28 6e 6f 64 65 |if (on_n|ode(node|
|000007c0| 2c 20 6e 66 5f 4f 52 49 | 47 29 29 0a 58 09 09 09 |, nf_ORI|G)).X...|
|000007d0| 7b 0a 58 09 09 09 09 70 | 72 69 6e 74 66 28 22 63 |{.X....p|rintf("c|
|000007e0| 61 6b 65 3a 20 74 61 72 | 67 65 74 20 25 73 20 68 |ake: tar|get %s h|
|000007f0| 61 73 20 6e 6f 20 61 6e | 63 65 73 74 6f 72 73 5c |as no an|cestors\|
|00000800| 6e 22 2c 20 6e 6f 64 65 | 2d 3e 6e 5f 6e 61 6d 65 |n", node|->n_name|
|00000810| 29 3b 0a 58 09 09 09 09 | 6e 6f 64 65 2d 3e 6e 5f |);.X....|node->n_|
|00000820| 6b 69 6e 64 20 3d 20 6e | 5f 4e 4f 57 41 59 3b 0a |kind = n|_NOWAY;.|
|00000830| 58 09 09 09 7d 0a 58 09 | 09 09 6f 72 20 28 21 20 |X...}.X.|..or (! |
|00000840| 78 66 6c 61 67 29 0a 58 | 09 09 09 09 70 72 69 6e |xflag).X|....prin|
|00000850| 74 66 28 22 63 61 6b 65 | 3a 20 25 73 20 69 73 20 |tf("cake|: %s is |
|00000860| 75 70 20 74 6f 20 64 61 | 74 65 5c 6e 22 2c 20 6e |up to da|te\n", n|
|00000870| 6f 64 65 2d 3e 6e 5f 6e | 61 6d 65 29 3b 0a 58 09 |ode->n_n|ame);.X.|
|00000880| 09 7d 0a 58 0a 58 09 09 | 70 75 74 5f 74 72 61 69 |.}.X.X..|put_trai|
|00000890| 6c 28 22 75 70 64 61 74 | 65 22 2c 20 22 66 69 6e |l("updat|e", "fin|
|000008a0| 69 73 68 22 29 3b 0a 58 | 09 09 72 65 74 75 72 6e |ish");.X|..return|
|000008b0| 3b 0a 58 09 7d 0a 58 0a | 58 23 69 66 64 65 66 09 |;.X.}.X.|X#ifdef.|
|000008c0| 43 41 4b 45 44 45 42 55 | 47 0a 58 09 69 66 20 28 |CAKEDEBU|G.X.if (|
|000008d0| 63 61 6b 65 64 65 62 75 | 67 29 0a 58 09 7b 0a 58 |cakedebu|g).X.{.X|
|000008e0| 09 09 70 72 69 6e 74 66 | 28 22 73 74 61 72 74 69 |..printf|("starti|
|000008f0| 6e 67 20 75 70 64 61 74 | 65 20 6f 66 5c 6e 22 29 |ng updat|e of\n")|
|00000900| 3b 0a 58 09 09 70 72 69 | 6e 74 5f 6e 6f 64 65 28 |;.X..pri|nt_node(|
|00000910| 6e 6f 64 65 29 3b 0a 58 | 09 7d 0a 58 23 65 6e 64 |node);.X|.}.X#end|
|00000920| 69 66 0a 58 0a 58 09 69 | 66 20 28 6f 6e 5f 6e 6f |if.X.X.i|f (on_no|
|00000930| 64 65 28 6e 6f 64 65 2c | 20 6e 66 5f 45 52 52 29 |de(node,| nf_ERR)|
|00000940| 29 0a 58 09 7b 0a 58 09 | 09 74 72 61 63 65 5f 65 |).X.{.X.|.trace_e|
|00000950| 72 72 73 28 6e 6f 64 65 | 29 3b 0a 58 09 09 72 65 |rrs(node|);.X..re|
|00000960| 74 75 72 6e 3b 0a 58 09 | 7d 0a 58 0a 58 09 65 72 |turn;.X.|}.X.X.er|
|00000970| 72 6e 6f 64 65 73 20 3d | 20 4e 55 4c 4c 3b 0a 58 |rnodes =| NULL;.X|
|00000980| 0a 58 09 2f 2a 20 73 6b | 69 70 20 74 68 65 20 61 |.X./* sk|ip the a|
|00000990| 63 74 69 6f 6e 73 20 69 | 66 20 74 68 65 79 20 61 |ctions i|f they a|
|000009a0| 72 65 20 75 73 65 6c 65 | 73 73 20 6f 72 20 6e 6f |re usele|ss or no|
|000009b0| 74 20 6e 65 65 64 65 64 | 20 2a 2f 0a 58 09 6f 6b |t needed| */.X.ok|
|000009c0| 73 6f 66 61 72 20 3d 20 | 54 52 55 45 3b 0a 58 09 |sofar = |TRUE;.X.|
|000009d0| 6e 65 65 64 61 63 74 20 | 3d 20 46 41 4c 53 45 3b |needact |= FALSE;|
|000009e0| 0a 58 09 6d 61 79 73 6b | 69 70 20 3d 20 46 41 4c |.X.maysk|ip = FAL|
|000009f0| 53 45 3b 0a 58 09 66 6f | 72 5f 6c 69 73 74 20 28 |SE;.X.fo|r_list (|
|00000a00| 70 74 72 2c 20 6e 6f 64 | 65 2d 3e 6e 5f 6e 65 77 |ptr, nod|e->n_new|
|00000a10| 29 0a 58 09 7b 0a 58 09 | 09 62 6e 6f 64 65 20 20 |).X.{.X.|.bnode |
|00000a20| 3d 20 28 4e 6f 64 65 20 | 2a 29 20 6c 64 61 74 61 |= (Node |*) ldata|
|00000a30| 28 70 74 72 29 3b 0a 58 | 0a 58 09 09 69 66 20 28 |(ptr);.X|.X..if (|
|00000a40| 6f 6e 5f 6e 6f 64 65 28 | 62 6e 6f 64 65 2c 20 6e |on_node(|bnode, n|
|00000a50| 66 5f 45 52 52 29 29 0a | 58 09 09 7b 0a 58 09 09 |f_ERR)).|X..{.X..|
|00000a60| 09 6f 6b 73 6f 66 61 72 | 20 3d 20 46 41 4c 53 45 |.oksofar| = FALSE|
|00000a70| 3b 0a 58 09 09 09 65 72 | 72 6e 6f 64 65 73 20 3d |;.X...er|rnodes =|
|00000a80| 20 61 64 64 74 61 69 6c | 28 65 72 72 6e 6f 64 65 | addtail|(errnode|
|00000a90| 73 2c 20 62 6e 6f 64 65 | 29 3b 0a 58 09 09 7d 0a |s, bnode|);.X..}.|
|00000aa0| 58 09 09 65 6c 73 65 0a | 58 09 09 7b 0a 58 09 09 |X..else.|X..{.X..|
|00000ab0| 09 69 66 20 28 6f 66 66 | 5f 6e 6f 64 65 28 62 6e |.if (off|_node(bn|
|00000ac0| 6f 64 65 2c 20 6e 66 5f | 45 58 49 53 54 29 20 7c |ode, nf_|EXIST) ||
|00000ad0| 7c 20 62 6e 6f 64 65 2d | 3e 6e 5f 72 74 69 6d 65 || bnode-|>n_rtime|
|00000ae0| 20 3c 20 62 6e 6f 64 65 | 2d 3e 6e 5f 75 74 69 6d | < bnode|->n_utim|
|00000af0| 65 29 0a 58 09 09 09 09 | 6e 65 65 64 61 63 74 20 |e).X....|needact |
|00000b00| 3d 20 54 52 55 45 3b 0a | 58 09 09 09 0a 58 09 09 |= TRUE;.|X....X..|
|00000b10| 09 69 66 20 28 6f 6e 5f | 6e 6f 64 65 28 62 6e 6f |.if (on_|node(bno|
|00000b20| 64 65 2c 20 6e 66 5f 44 | 45 50 4e 4f 4e 56 4f 4c |de, nf_D|EPNONVOL|
|00000b30| 29 29 0a 58 09 09 09 09 | 6d 61 79 73 6b 69 70 20 |)).X....|mayskip |
|00000b40| 3d 20 54 52 55 45 3b 0a | 58 09 09 7d 0a 58 09 7d |= TRUE;.|X..}.X.}|
|00000b50| 0a 58 0a 58 09 69 66 20 | 28 21 20 6f 6b 73 6f 66 |.X.X.if |(! oksof|
|00000b60| 61 72 29 0a 58 09 7b 0a | 58 09 09 63 64 65 62 75 |ar).X.{.|X..cdebu|
|00000b70| 67 28 22 65 72 72 6f 72 | 20 69 6e 20 62 75 64 64 |g("error| in budd|
|00000b80| 69 65 73 5c 6e 22 29 3b | 0a 58 09 09 69 66 20 28 |ies\n");|.X..if (|
|00000b90| 76 66 6c 61 67 20 26 26 | 20 73 74 72 64 69 66 66 |vflag &&| strdiff|
|00000ba0| 28 6e 6f 64 65 2d 3e 6e | 5f 6e 61 6d 65 2c 20 43 |(node->n|_name, C|
|00000bb0| 48 41 53 45 52 4f 4f 54 | 29 29 0a 58 09 09 7b 0a |HASEROOT|)).X..{.|
|00000bc0| 58 09 09 09 73 70 72 69 | 6e 74 66 28 73 63 72 61 |X...spri|ntf(scra|
|00000bd0| 74 63 68 62 75 66 2c 20 | 22 63 61 6e 6e 6f 74 20 |tchbuf, |"cannot |
|00000be0| 70 72 6f 63 65 65 64 20 | 77 69 74 68 20 75 70 64 |proceed |with upd|
|00000bf0| 61 74 65 20 6f 66 20 25 | 73 20 62 65 63 61 75 73 |ate of %|s becaus|
|00000c00| 65 20 6f 66 20 70 72 6f | 62 6c 65 6d 73 20 77 69 |e of pro|blems wi|
|00000c10| 74 68 20 25 73 20 25 73 | 22 2c 0a 58 09 09 09 09 |th %s %s|",.X....|
|00000c20| 6e 6f 64 65 2d 3e 6e 5f | 6e 61 6d 65 2c 20 28 6c |node->n_|name, (l|
|00000c30| 65 6e 67 74 68 28 65 72 | 72 6e 6f 64 65 73 29 20 |ength(er|rnodes) |
|00000c40| 3d 3d 20 31 29 3f 20 22 | 62 75 64 64 79 22 3a 20 |== 1)? "|buddy": |
|00000c50| 22 62 75 64 64 69 65 73 | 22 2c 20 6c 69 73 74 5f |"buddies|", list_|
|00000c60| 6e 61 6d 65 73 28 65 72 | 72 6e 6f 64 65 73 29 29 |names(er|rnodes))|
|00000c70| 3b 0a 58 09 09 09 61 64 | 64 5f 65 72 72 6f 72 28 |;.X...ad|d_error(|
|00000c80| 6e 6f 64 65 2c 20 6e 65 | 77 5f 6e 61 6d 65 28 73 |node, ne|w_name(s|
|00000c90| 63 72 61 74 63 68 62 75 | 66 29 2c 20 65 72 72 6e |cratchbu|f), errn|
|00000ca0| 6f 64 65 73 2c 20 54 52 | 55 45 29 3b 0a 58 09 09 |odes, TR|UE);.X..|
|00000cb0| 09 74 72 61 63 65 5f 65 | 72 72 73 28 6e 6f 64 65 |.trace_e|rrs(node|
|00000cc0| 29 3b 0a 58 09 09 7d 0a | 58 0a 58 09 09 67 6f 74 |);.X..}.|X.X..got|
|00000cd0| 6f 20 65 6e 64 69 74 3b | 0a 58 09 7d 0a 58 0a 58 |o endit;|.X.}.X.X|
|00000ce0| 09 69 66 20 28 21 20 6e | 65 65 64 61 63 74 29 0a |.if (! n|eedact).|
|00000cf0| 58 09 7b 0a 58 09 09 63 | 64 65 62 75 67 28 22 6e |X.{.X..c|debug("n|
|00000d00| 6f 20 6e 65 65 64 20 66 | 6f 72 20 61 63 74 69 6f |o need f|or actio|
|00000d10| 6e 73 5c 6e 22 29 3b 0a | 58 09 09 69 66 20 28 73 |ns\n");.|X..if (s|
|00000d20| 74 72 64 69 66 66 28 6e | 6f 64 65 2d 3e 6e 5f 6e |trdiff(n|ode->n_n|
|00000d30| 61 6d 65 2c 20 43 48 41 | 53 45 52 4f 4f 54 29 29 |ame, CHA|SEROOT))|
|00000d40| 0a 58 09 09 09 70 72 69 | 6e 74 66 28 22 63 61 6b |.X...pri|ntf("cak|
|00000d50| 65 3a 20 25 73 20 69 73 | 20 75 70 20 74 6f 20 64 |e: %s is| up to d|
|00000d60| 61 74 65 5c 6e 22 2c 20 | 6e 6f 64 65 2d 3e 6e 5f |ate\n", |node->n_|
|00000d70| 6e 61 6d 65 29 3b 0a 58 | 0a 58 09 09 67 6f 74 6f |name);.X|.X..goto|
|00000d80| 20 65 6e 64 69 74 3b 0a | 58 09 7d 0a 58 0a 58 09 | endit;.|X.}.X.X.|
|00000d90| 2f 2a 20 75 70 64 61 74 | 65 20 61 6c 6c 20 61 6e |/* updat|e all an|
|00000da0| 63 65 73 74 6f 72 73 20 | 6f 66 20 61 6c 6c 20 62 |cestors |of all b|
|00000db0| 75 64 64 69 65 73 20 2a | 2f 0a 58 09 66 6f 72 5f |uddies *|/.X.for_|
|00000dc0| 6c 69 73 74 20 28 70 74 | 72 2c 20 6e 6f 64 65 2d |list (pt|r, node-|
|00000dd0| 3e 6e 5f 6e 65 77 29 0a | 58 09 7b 0a 58 09 09 62 |>n_new).|X.{.X..b|
|00000de0| 6e 6f 64 65 20 20 3d 20 | 28 4e 6f 64 65 20 2a 29 |node = |(Node *)|
|00000df0| 20 6c 64 61 74 61 28 70 | 74 72 29 3b 0a 58 09 09 | ldata(p|tr);.X..|
|00000e00| 66 6f 72 5f 6c 69 73 74 | 20 28 70 74 72 31 2c 20 |for_list| (ptr1, |
|00000e10| 62 6e 6f 64 65 2d 3e 6e | 5f 6f 6c 64 29 0a 58 09 |bnode->n|_old).X.|
|00000e20| 09 7b 0a 58 09 09 09 6f | 6e 6f 64 65 20 3d 20 28 |.{.X...o|node = (|
|00000e30| 4e 6f 64 65 20 2a 29 20 | 6c 64 61 74 61 28 70 74 |Node *) |ldata(pt|
|00000e40| 72 31 29 3b 0a 58 09 09 | 09 75 70 64 61 74 65 28 |r1);.X..|.update(|
|00000e50| 6f 6e 6f 64 65 2c 20 6c | 65 76 65 6c 2b 31 2c 20 |onode, l|evel+1, |
|00000e60| 66 6f 72 63 65 5f 65 78 | 65 63 29 3b 0a 58 09 09 |force_ex|ec);.X..|
|00000e70| 09 69 66 20 28 6f 6e 5f | 6e 6f 64 65 28 6f 6e 6f |.if (on_|node(ono|
|00000e80| 64 65 2c 20 6e 66 5f 45 | 52 52 29 20 7c 7c 20 21 |de, nf_E|RR) || !|
|00000e90| 20 69 73 5f 6f 6b 28 6f | 6e 6f 64 65 29 29 0a 58 | is_ok(o|node)).X|
|00000ea0| 09 09 09 7b 0a 58 09 09 | 09 09 6f 6b 73 6f 66 61 |...{.X..|..oksofa|
|00000eb0| 72 20 3d 20 46 41 4c 53 | 45 3b 0a 58 09 09 09 09 |r = FALS|E;.X....|
|00000ec0| 65 72 72 6e 6f 64 65 73 | 20 3d 20 61 64 64 74 61 |errnodes| = addta|
|00000ed0| 69 6c 28 65 72 72 6e 6f | 64 65 73 2c 20 6f 6e 6f |il(errno|des, ono|
|00000ee0| 64 65 29 3b 0a 58 09 09 | 09 7d 0a 58 09 09 7d 0a |de);.X..|.}.X..}.|
|00000ef0| 58 09 7d 0a 58 0a 58 09 | 2f 2a 20 73 6b 69 70 20 |X.}.X.X.|/* skip |
|00000f00| 74 68 65 20 61 63 74 69 | 6f 6e 73 20 69 66 20 61 |the acti|ons if a|
|00000f10| 6e 79 20 61 6e 63 65 73 | 74 6f 72 73 20 61 72 65 |ny ances|tors are|
|00000f20| 20 6d 69 73 73 69 6e 67 | 20 2a 2f 0a 58 09 69 66 | missing| */.X.if|
|00000f30| 20 28 21 20 6f 6b 73 6f | 66 61 72 29 0a 58 09 7b | (! okso|far).X.{|
|00000f40| 0a 58 09 09 63 64 65 62 | 75 67 28 22 65 72 72 6f |.X..cdeb|ug("erro|
|00000f50| 72 20 69 6e 20 70 72 65 | 72 65 71 75 69 73 69 74 |r in pre|requisit|
|00000f60| 65 73 5c 6e 22 29 3b 0a | 58 09 09 69 66 20 28 76 |es\n");.|X..if (v|
|00000f70| 66 6c 61 67 20 26 26 20 | 73 74 72 64 69 66 66 28 |flag && |strdiff(|
|00000f80| 6e 6f 64 65 2d 3e 6e 5f | 6e 61 6d 65 2c 20 43 48 |node->n_|name, CH|
|00000f90| 41 53 45 52 4f 4f 54 29 | 29 0a 58 09 09 7b 0a 58 |ASEROOT)|).X..{.X|
|00000fa0| 09 09 09 73 70 72 69 6e | 74 66 28 73 63 72 61 74 |...sprin|tf(scrat|
|00000fb0| 63 68 62 75 66 2c 20 22 | 63 61 6e 6e 6f 74 20 70 |chbuf, "|cannot p|
|00000fc0| 72 6f 63 65 65 64 20 77 | 69 74 68 20 75 70 64 61 |roceed w|ith upda|
|00000fd0| 74 65 20 6f 66 20 25 73 | 20 62 65 63 61 75 73 65 |te of %s| because|
|00000fe0| 20 6f 66 20 70 72 6f 62 | 6c 65 6d 73 20 77 69 74 | of prob|lems wit|
|00000ff0| 68 20 25 73 20 25 73 22 | 2c 0a 58 09 09 09 09 6e |h %s %s"|,.X....n|
|00001000| 6f 64 65 2d 3e 6e 5f 6e | 61 6d 65 2c 20 28 6c 65 |ode->n_n|ame, (le|
|00001010| 6e 67 74 68 28 65 72 72 | 6e 6f 64 65 73 29 20 3d |ngth(err|nodes) =|
|00001020| 3d 20 31 29 3f 20 22 61 | 6e 63 65 73 74 6f 72 22 |= 1)? "a|ncestor"|
|00001030| 3a 20 22 61 6e 63 65 73 | 74 6f 72 73 22 2c 20 6c |: "ances|tors", l|
|00001040| 69 73 74 5f 6e 61 6d 65 | 73 28 65 72 72 6e 6f 64 |ist_name|s(errnod|
|00001050| 65 73 29 29 3b 0a 58 09 | 09 09 61 64 64 5f 65 72 |es));.X.|..add_er|
|00001060| 72 6f 72 28 6e 6f 64 65 | 2c 20 6e 65 77 5f 6e 61 |ror(node|, new_na|
|00001070| 6d 65 28 73 63 72 61 74 | 63 68 62 75 66 29 2c 20 |me(scrat|chbuf), |
|00001080| 65 72 72 6e 6f 64 65 73 | 2c 20 54 52 55 45 29 3b |errnodes|, TRUE);|
|00001090| 0a 58 09 09 09 74 72 61 | 63 65 5f 65 72 72 73 28 |.X...tra|ce_errs(|
|000010a0| 6e 6f 64 65 29 3b 0a 58 | 09 09 7d 0a 58 0a 58 09 |node);.X|..}.X.X.|
|000010b0| 09 67 6f 74 6f 20 65 6e | 64 69 74 3b 0a 58 09 7d |.goto en|dit;.X.}|
|000010c0| 0a 58 0a 58 09 2f 2a 20 | 73 6b 69 70 20 74 68 65 |.X.X./* |skip the|
|000010d0| 20 61 63 74 69 6f 6e 73 | 3b 20 6e 6f 64 65 20 69 | actions|; node i|
|000010e0| 73 20 61 20 6d 69 73 73 | 69 6e 67 20 62 61 73 65 |s a miss|ing base|
|000010f0| 20 66 69 6c 65 20 2a 2f | 0a 58 09 69 66 20 28 69 | file */|.X.if (i|
|00001100| 73 5f 6e 6f 77 61 79 28 | 6e 6f 64 65 29 29 0a 58 |s_noway(|node)).X|
|00001110| 09 7b 0a 58 09 09 63 64 | 65 62 75 67 28 22 65 72 |.{.X..cd|ebug("er|
|00001120| 72 6f 72 20 69 6e 20 70 | 6c 61 6e 6e 69 6e 67 5c |ror in p|lanning\|
|00001130| 6e 22 29 3b 0a 58 09 09 | 74 72 61 63 65 5f 65 72 |n");.X..|trace_er|
|00001140| 72 73 28 6e 6f 64 65 29 | 3b 0a 58 09 09 67 6f 74 |rs(node)|;.X..got|
|00001150| 6f 20 65 6e 64 69 74 3b | 0a 58 09 7d 0a 58 0a 58 |o endit;|.X.}.X.X|
|00001160| 09 2f 2a 20 66 69 6e 64 | 20 61 6e 79 20 4e 4f 57 |./* find| any NOW|
|00001170| 41 59 20 62 75 64 64 69 | 65 73 3b 20 74 68 65 73 |AY buddi|es; thes|
|00001180| 65 20 6d 61 79 20 68 61 | 76 65 20 6e 5f 6f 6c 64 |e may ha|ve n_old|
|00001190| 20 3d 3d 20 5b 5d 20 2a | 2f 0a 58 09 66 6f 72 5f | == [] *|/.X.for_|
|000011a0| 6c 69 73 74 20 28 70 74 | 72 2c 20 6e 6f 64 65 2d |list (pt|r, node-|
|000011b0| 3e 6e 5f 6e 65 77 29 0a | 58 09 7b 0a 58 09 09 62 |>n_new).|X.{.X..b|
|000011c0| 6e 6f 64 65 20 20 3d 20 | 28 4e 6f 64 65 20 2a 29 |node = |(Node *)|
|000011d0| 20 6c 64 61 74 61 28 70 | 74 72 29 3b 0a 58 09 09 | ldata(p|tr);.X..|
|000011e0| 69 66 20 28 69 73 5f 6e | 6f 77 61 79 28 62 6e 6f |if (is_n|oway(bno|
|000011f0| 64 65 29 29 0a 58 09 09 | 7b 0a 58 09 09 09 6f 6b |de)).X..|{.X...ok|
|00001200| 73 6f 66 61 72 20 3d 20 | 46 41 4c 53 45 3b 0a 58 |sofar = |FALSE;.X|
|00001210| 09 09 09 65 72 72 6e 6f | 64 65 73 20 3d 20 61 64 |...errno|des = ad|
|00001220| 64 74 61 69 6c 28 65 72 | 72 6e 6f 64 65 73 2c 20 |dtail(er|rnodes, |
|00001230| 62 6e 6f 64 65 29 3b 0a | 58 09 09 7d 0a 58 09 7d |bnode);.|X..}.X.}|
|00001240| 0a 58 0a 58 09 2f 2a 20 | 73 6b 69 70 20 74 68 65 |.X.X./* |skip the|
|00001250| 20 61 63 74 69 6f 6e 73 | 20 69 66 20 74 68 65 72 | actions| if ther|
|00001260| 65 20 61 72 65 20 61 6e | 79 20 4e 4f 57 41 59 20 |e are an|y NOWAY |
|00001270| 62 75 64 64 69 65 73 20 | 2a 2f 0a 58 09 69 66 20 |buddies |*/.X.if |
|00001280| 28 21 20 6f 6b 73 6f 66 | 61 72 29 0a 58 09 7b 0a |(! oksof|ar).X.{.|
|00001290| 58 09 09 63 64 65 62 75 | 67 28 22 65 72 72 6f 72 |X..cdebu|g("error|
|000012a0| 20 69 6e 20 62 75 64 64 | 79 20 70 6c 61 6e 6e 69 | in budd|y planni|
|000012b0| 6e 67 5c 6e 22 29 3b 0a | 58 09 09 73 70 72 69 6e |ng\n");.|X..sprin|
|000012c0| 74 66 28 73 63 72 61 74 | 63 68 62 75 66 2c 20 22 |tf(scrat|chbuf, "|
|000012d0| 64 61 72 65 20 6e 6f 74 | 20 75 70 64 61 74 65 20 |dare not| update |
|000012e0| 25 73 20 62 65 63 61 75 | 73 65 20 6f 66 20 70 6f |%s becau|se of po|
|000012f0| 73 73 69 62 6c 65 20 65 | 66 66 65 63 74 73 20 6f |ssible e|ffects o|
|00001300| 6e 20 25 73 20 25 73 22 | 2c 20 6e 6f 64 65 2d 3e |n %s %s"|, node->|
|00001310| 6e 5f 6e 61 6d 65 2c 0a | 58 09 09 09 28 6c 65 6e |n_name,.|X...(len|
|00001320| 67 74 68 28 65 72 72 6e | 6f 64 65 73 29 20 3d 3d |gth(errn|odes) ==|
|00001330| 20 31 29 3f 20 22 62 75 | 64 64 79 22 3a 20 22 62 | 1)? "bu|ddy": "b|
|00001340| 75 64 64 69 65 73 22 2c | 20 6c 69 73 74 5f 6e 61 |uddies",| list_na|
|00001350| 6d 65 73 28 65 72 72 6e | 6f 64 65 73 29 29 3b 0a |mes(errn|odes));.|
|00001360| 58 09 09 61 64 64 5f 65 | 72 72 6f 72 28 6e 6f 64 |X..add_e|rror(nod|
|00001370| 65 2c 20 6e 65 77 5f 6e | 61 6d 65 28 73 63 72 61 |e, new_n|ame(scra|
|00001380| 74 63 68 62 75 66 29 2c | 20 4c 4e 55 4c 4c 2c 20 |tchbuf),| LNULL, |
|00001390| 54 52 55 45 29 3b 0a 58 | 09 09 74 72 61 63 65 5f |TRUE);.X|..trace_|
|000013a0| 65 72 72 73 28 6e 6f 64 | 65 29 3b 0a 58 09 09 67 |errs(nod|e);.X..g|
|000013b0| 6f 74 6f 20 65 6e 64 69 | 74 3b 0a 58 09 7d 0a 58 |oto endi|t;.X.}.X|
|000013c0| 0a 58 09 2f 2a 20 72 65 | 65 76 61 6c 75 61 74 65 |.X./* re|evaluate|
|000013d0| 20 74 68 65 20 6e 65 63 | 65 73 73 69 74 79 20 74 | the nec|essity t|
|000013e0| 6f 20 61 63 74 20 69 6e | 20 74 68 65 20 6c 69 67 |o act in| the lig|
|000013f0| 68 74 20 6f 66 20 74 68 | 65 20 2a 2f 0a 58 09 2f |ht of th|e */.X./|
|00001400| 2a 20 61 63 74 69 6f 6e | 73 20 74 61 6b 65 6e 20 |* action|s taken |
|00001410| 74 6f 20 75 70 64 61 74 | 65 20 70 6f 73 73 69 62 |to updat|e possib|
|00001420| 6c 79 20 6e 6f 6e 76 6f | 6c 61 74 69 6c 65 20 61 |ly nonvo|latile a|
|00001430| 6e 63 65 73 74 6f 72 73 | 20 2a 2f 0a 58 09 69 66 |ncestors| */.X.if|
|00001440| 20 28 6d 61 79 73 6b 69 | 70 29 0a 58 09 7b 0a 58 | (mayski|p).X.{.X|
|00001450| 09 09 6e 65 65 64 61 63 | 74 20 3d 20 46 41 4c 53 |..needac|t = FALS|
|00001460| 45 3b 20 2f 2a 20 61 73 | 73 75 6d 65 20 73 6f 20 |E; /* as|sume so |
|00001470| 66 6f 72 20 74 68 65 20 | 6d 6f 6d 65 6e 74 20 2a |for the |moment *|
|00001480| 2f 0a 58 09 09 63 64 65 | 62 75 67 28 22 64 65 63 |/.X..cde|bug("dec|
|00001490| 69 64 69 6e 67 20 77 68 | 65 74 68 65 72 20 74 6f |iding wh|ether to|
|000014a0| 20 73 6b 69 70 5c 6e 22 | 29 3b 0a 58 09 09 66 6f | skip\n"|);.X..fo|
|000014b0| 72 5f 6c 69 73 74 20 28 | 70 74 72 2c 20 6e 6f 64 |r_list (|ptr, nod|
|000014c0| 65 2d 3e 6e 5f 6e 65 77 | 29 0a 58 09 09 7b 0a 58 |e->n_new|).X..{.X|
|000014d0| 09 09 09 62 6e 6f 64 65 | 20 20 3d 20 28 4e 6f 64 |...bnode| = (Nod|
|000014e0| 65 20 2a 29 20 6c 64 61 | 74 61 28 70 74 72 29 3b |e *) lda|ta(ptr);|
|000014f0| 0a 58 0a 58 09 09 09 69 | 66 20 28 6f 6e 5f 6e 6f |.X.X...i|f (on_no|
|00001500| 64 65 28 62 6e 6f 64 65 | 2c 20 6e 66 5f 44 45 50 |de(bnode|, nf_DEP|
|00001510| 4e 4f 4e 56 4f 4c 29 29 | 0a 58 09 09 09 7b 0a 58 |NONVOL))|.X...{.X|
|00001520| 09 09 09 09 63 64 65 62 | 75 67 28 22 63 6f 6e 73 |....cdeb|ug("cons|
|00001530| 69 64 65 72 69 6e 67 20 | 25 73 5c 6e 22 2c 20 62 |idering |%s\n", b|
|00001540| 6e 6f 64 65 2d 3e 6e 5f | 6e 61 6d 65 29 3b 0a 58 |node->n_|name);.X|
|00001550| 09 09 09 09 67 65 74 5f | 75 74 69 6d 65 28 62 6e |....get_|utime(bn|
|00001560| 6f 64 65 2c 20 46 41 4c | 53 45 29 3b 0a 58 09 09 |ode, FAL|SE);.X..|
|00001570| 09 7d 0a 58 0a 58 09 09 | 09 69 66 20 28 6f 66 66 |.}.X.X..|.if (off|
|00001580| 5f 6e 6f 64 65 28 62 6e | 6f 64 65 2c 20 6e 66 5f |_node(bn|ode, nf_|
|00001590| 45 58 49 53 54 29 20 7c | 7c 20 62 6e 6f 64 65 2d |EXIST) ||| bnode-|
|000015a0| 3e 6e 5f 72 74 69 6d 65 | 20 3c 20 62 6e 6f 64 65 |>n_rtime| < bnode|
|000015b0| 2d 3e 6e 5f 75 74 69 6d | 65 29 0a 58 09 09 09 7b |->n_utim|e).X...{|
|000015c0| 0a 58 09 09 09 09 63 64 | 65 62 75 67 28 22 25 73 |.X....cd|ebug("%s|
|000015d0| 20 6e 65 65 64 73 20 61 | 63 74 69 6f 6e 5c 6e 22 | needs a|ction\n"|
|000015e0| 2c 20 62 6e 6f 64 65 2d | 3e 6e 5f 6e 61 6d 65 29 |, bnode-|>n_name)|
|000015f0| 3b 0a 58 09 09 09 09 6e | 65 65 64 61 63 74 20 3d |;.X....n|eedact =|
|00001600| 20 54 52 55 45 3b 0a 58 | 09 09 09 7d 0a 58 09 09 | TRUE;.X|...}.X..|
|00001610| 7d 0a 58 09 7d 0a 58 0a | 58 09 69 66 20 28 21 20 |}.X.}.X.|X.if (! |
|00001620| 6e 65 65 64 61 63 74 29 | 0a 58 09 7b 0a 58 09 09 |needact)|.X.{.X..|
|00001630| 63 64 65 62 75 67 28 22 | 6e 6f 20 6e 65 65 64 20 |cdebug("|no need |
|00001640| 66 6f 72 20 61 63 74 69 | 6f 6e 73 20 61 66 74 65 |for acti|ons afte|
|00001650| 72 20 61 6c 6c 5c 6e 22 | 29 3b 0a 58 09 09 69 66 |r all\n"|);.X..if|
|00001660| 20 28 73 74 72 64 69 66 | 66 28 6e 6f 64 65 2d 3e | (strdif|f(node->|
|00001670| 6e 5f 6e 61 6d 65 2c 20 | 43 48 41 53 45 52 4f 4f |n_name, |CHASEROO|
|00001680| 54 29 29 0a 58 09 09 09 | 70 72 69 6e 74 66 28 22 |T)).X...|printf("|
|00001690| 63 61 6b 65 3a 20 25 73 | 20 69 73 20 75 70 20 74 |cake: %s| is up t|
|000016a0| 6f 20 64 61 74 65 5c 6e | 22 2c 20 6e 6f 64 65 2d |o date\n|", node-|
|000016b0| 3e 6e 5f 6e 61 6d 65 29 | 3b 0a 58 0a 58 09 09 67 |>n_name)|;.X.X..g|
|000016c0| 6f 74 6f 20 65 6e 64 69 | 74 3b 0a 58 09 7d 0a 58 |oto endi|t;.X.}.X|
|000016d0| 0a 58 09 69 66 20 28 74 | 66 6c 61 67 29 0a 58 09 |.X.if (t|flag).X.|
|000016e0| 7b 0a 58 09 09 2f 2a 20 | 69 6e 73 74 65 61 64 20 |{.X../* |instead |
|000016f0| 6f 66 20 61 63 74 69 6f | 6e 20 6a 75 73 74 20 74 |of actio|n just t|
|00001700| 6f 75 63 68 20 74 68 65 | 20 74 61 72 67 65 74 73 |ouch the| targets|
|00001710| 20 2a 2f 0a 58 09 09 66 | 6f 72 5f 6c 69 73 74 20 | */.X..f|or_list |
|00001720| 28 70 74 72 2c 20 6e 6f | 64 65 2d 3e 6e 5f 6e 65 |(ptr, no|de->n_ne|
|00001730| 77 29 0a 58 09 09 7b 0a | 58 09 09 09 62 6e 6f 64 |w).X..{.|X...bnod|
|00001740| 65 20 3d 20 28 4e 6f 64 | 65 20 2a 29 20 6c 64 61 |e = (Nod|e *) lda|
|00001750| 74 61 28 70 74 72 29 3b | 0a 58 09 09 09 69 66 20 |ta(ptr);|.X...if |
|00001760| 28 6f 6e 5f 6e 6f 64 65 | 28 62 6e 6f 64 65 2c 20 |(on_node|(bnode, |
|00001770| 6e 66 5f 50 53 45 55 44 | 4f 29 29 0a 58 09 09 09 |nf_PSEUD|O)).X...|
|00001780| 09 63 6f 6e 74 69 6e 75 | 65 3b 0a 58 0a 58 09 09 |.continu|e;.X.X..|
|00001790| 09 69 66 20 28 72 66 6c | 61 67 29 0a 58 09 09 09 |.if (rfl|ag).X...|
|000017a0| 09 63 61 6b 65 5f 75 74 | 69 6d 65 73 28 62 6e 6f |.cake_ut|imes(bno|
|000017b0| 64 65 2c 20 62 6e 6f 64 | 65 2d 3e 6e 5f 75 74 69 |de, bnod|e->n_uti|
|000017c0| 6d 65 29 3b 0a 58 09 09 | 09 65 6c 73 65 0a 58 09 |me);.X..|.else.X.|
|000017d0| 09 09 09 63 61 6b 65 5f | 75 74 69 6d 65 73 28 62 |...cake_|utimes(b|
|000017e0| 6e 6f 64 65 2c 20 47 45 | 4e 45 53 49 53 29 3b 0a |node, GE|NESIS);.|
|000017f0| 58 09 09 09 0a 58 09 09 | 09 70 72 69 6e 74 66 28 |X....X..|.printf(|
|00001800| 22 74 6f 75 63 68 20 25 | 73 5c 6e 22 2c 20 62 6e |"touch %|s\n", bn|
|00001810| 6f 64 65 2d 3e 6e 5f 6e | 61 6d 65 29 3b 0a 58 09 |ode->n_n|ame);.X.|
|00001820| 09 7d 0a 58 09 7d 0a 58 | 09 65 6c 73 65 0a 58 09 |.}.X.}.X|.else.X.|
|00001830| 7b 0a 58 09 09 2f 2a 20 | 70 72 65 70 61 72 65 20 |{.X../* |prepare |
|00001840| 66 6f 72 20 61 63 74 69 | 6f 6e 73 20 2a 2f 0a 58 |for acti|ons */.X|
|00001850| 09 09 66 6f 72 5f 6c 69 | 73 74 20 28 70 74 72 2c |..for_li|st (ptr,|
|00001860| 20 6e 6f 64 65 2d 3e 6e | 5f 6e 65 77 29 0a 58 09 | node->n|_new).X.|
|00001870| 09 7b 0a 58 09 09 09 62 | 6e 6f 64 65 20 3d 20 28 |.{.X...b|node = (|
|00001880| 4e 6f 64 65 20 2a 29 20 | 6c 64 61 74 61 28 70 74 |Node *) |ldata(pt|
|00001890| 72 29 3b 0a 58 09 09 09 | 69 66 20 28 6f 6e 5f 6e |r);.X...|if (on_n|
|000018a0| 6f 64 65 28 62 6e 6f 64 | 65 2c 20 6e 66 5f 4e 4f |ode(bnod|e, nf_NO|
|000018b0| 4e 56 4f 4c 29 29 0a 58 | 09 09 09 09 73 61 76 65 |NVOL)).X|....save|
|000018c0| 5f 6e 6f 76 6f 6c 28 62 | 6e 6f 64 65 29 3b 0a 58 |_novol(b|node);.X|
|000018d0| 09 09 7d 0a 58 0a 58 09 | 09 2f 2a 20 65 78 65 63 |..}.X.X.|./* exec|
|000018e0| 75 74 65 20 61 63 74 69 | 6f 6e 73 20 2a 2f 0a 58 |ute acti|ons */.X|
|000018f0| 09 09 63 6f 64 65 20 3d | 20 63 61 72 72 79 5f 6f |..code =| carry_o|
|00001900| 75 74 28 6e 6f 64 65 2c | 20 66 6f 72 63 65 5f 65 |ut(node,| force_e|
|00001910| 78 65 63 29 3b 0a 58 09 | 09 69 66 20 28 63 6f 64 |xec);.X.|.if (cod|
|00001920| 65 2e 77 5f 73 74 61 74 | 75 73 20 21 3d 20 30 29 |e.w_stat|us != 0)|
|00001930| 0a 58 09 09 7b 0a 58 09 | 09 09 6f 6b 73 6f 66 61 |.X..{.X.|..oksofa|
|00001940| 72 20 3d 20 46 41 4c 53 | 45 3b 0a 58 09 09 09 73 |r = FALS|E;.X...s|
|00001950| 70 72 69 6e 74 66 28 73 | 63 72 61 74 63 68 62 75 |printf(s|cratchbu|
|00001960| 66 2c 20 22 65 72 72 6f | 72 20 69 6e 20 61 63 74 |f, "erro|r in act|
|00001970| 69 6f 6e 73 20 66 6f 72 | 20 25 73 22 2c 20 6e 6f |ions for| %s", no|
|00001980| 64 65 2d 3e 6e 5f 6e 61 | 6d 65 29 3b 0a 58 09 09 |de->n_na|me);.X..|
|00001990| 09 66 6f 72 5f 6c 69 73 | 74 20 28 70 74 72 2c 20 |.for_lis|t (ptr, |
|000019a0| 6e 6f 64 65 2d 3e 6e 5f | 6e 65 77 29 0a 58 09 09 |node->n_|new).X..|
|000019b0| 09 7b 0a 58 09 09 09 09 | 62 6e 6f 64 65 20 3d 20 |.{.X....|bnode = |
|000019c0| 28 4e 6f 64 65 20 2a 29 | 20 6c 64 61 74 61 28 70 |(Node *)| ldata(p|
|000019d0| 74 72 29 3b 0a 58 09 09 | 09 09 61 64 64 5f 65 72 |tr);.X..|..add_er|
|000019e0| 72 6f 72 28 62 6e 6f 64 | 65 2c 20 6e 65 77 5f 6e |ror(bnod|e, new_n|
|000019f0| 61 6d 65 28 73 63 72 61 | 74 63 68 62 75 66 29 2c |ame(scra|tchbuf),|
|00001a00| 20 4c 4e 55 4c 4c 2c 20 | 54 52 55 45 29 3b 0a 58 | LNULL, |TRUE);.X|
|00001a10| 09 09 09 7d 0a 58 0a 58 | 09 09 09 69 66 20 28 21 |...}.X.X|...if (!|
|00001a20| 20 78 66 6c 61 67 29 0a | 58 09 09 09 7b 0a 58 09 | xflag).|X...{.X.|
|00001a30| 09 09 09 69 66 20 28 63 | 6f 64 65 2e 77 5f 74 65 |...if (c|ode.w_te|
|00001a40| 72 6d 73 69 67 20 3d 3d | 20 30 29 0a 58 09 09 09 |rmsig ==| 0).X...|
|00001a50| 09 09 70 72 69 6e 74 66 | 28 22 2a 2a 2a 20 45 72 |..printf|("*** Er|
|00001a60| 72 6f 72 20 63 6f 64 65 | 20 25 64 5c 6e 22 2c 20 |ror code| %d\n", |
|00001a70| 63 6f 64 65 2e 77 5f 72 | 65 74 63 6f 64 65 29 3b |code.w_r|etcode);|
|00001a80| 0a 58 09 09 09 09 65 6c | 73 65 0a 58 09 09 09 09 |.X....el|se.X....|
|00001a90| 09 70 72 69 6e 74 66 28 | 22 2a 2a 2a 20 54 65 72 |.printf(|"*** Ter|
|00001aa0| 6d 69 6e 61 74 69 6f 6e | 20 63 6f 64 65 20 25 64 |mination| code %d|
|00001ab0| 5c 6e 22 2c 20 63 6f 64 | 65 2e 77 5f 74 65 72 6d |\n", cod|e.w_term|
|00001ac0| 73 69 67 29 3b 0a 58 09 | 09 09 7d 0a 58 09 09 09 |sig);.X.|..}.X...|
|00001ad0| 0a 58 09 09 09 63 61 6b | 65 5f 65 72 72 6f 72 28 |.X...cak|e_error(|
|00001ae0| 6e 6f 64 65 29 3b 0a 58 | 09 09 09 67 6f 74 6f 20 |node);.X|...goto |
|00001af0| 65 6e 64 69 74 3b 0a 58 | 09 09 7d 0a 58 0a 58 09 |endit;.X|..}.X.X.|
|00001b00| 09 2f 2a 20 63 6c 65 61 | 6e 20 75 70 20 61 66 74 |./* clea|n up aft|
|00001b10| 65 72 20 61 63 74 69 6f | 6e 73 20 2a 2f 0a 58 09 |er actio|ns */.X.|
|00001b20| 09 66 6f 72 5f 6c 69 73 | 74 20 28 70 74 72 2c 20 |.for_lis|t (ptr, |
|00001b30| 6e 6f 64 65 2d 3e 6e 5f | 6e 65 77 29 0a 58 09 09 |node->n_|new).X..|
|00001b40| 7b 0a 58 09 09 09 62 6e | 6f 64 65 20 3d 20 28 4e |{.X...bn|ode = (N|
|00001b50| 6f 64 65 20 2a 29 20 6c | 64 61 74 61 28 70 74 72 |ode *) l|data(ptr|
|00001b60| 29 3b 0a 58 09 09 09 69 | 66 20 28 6f 6e 5f 6e 6f |);.X...i|f (on_no|
|00001b70| 64 65 28 62 6e 6f 64 65 | 2c 20 6e 66 5f 4e 4f 4e |de(bnode|, nf_NON|
|00001b80| 56 4f 4c 29 20 26 26 20 | 21 20 64 69 66 66 5f 6e |VOL) && |! diff_n|
|00001b90| 6f 76 6f 6c 28 62 6e 6f | 64 65 29 29 0a 58 09 09 |ovol(bno|de)).X..|
|00001ba0| 09 09 6e 6f 64 65 5f 72 | 65 73 65 74 73 74 61 74 |..node_r|esetstat|
|00001bb0| 28 62 6e 6f 64 65 29 3b | 0a 58 09 09 09 6f 72 20 |(bnode);|.X...or |
|00001bc0| 28 72 66 6c 61 67 29 0a | 58 09 09 09 09 6e 6f 64 |(rflag).|X....nod|
|00001bd0| 65 5f 73 65 74 73 74 61 | 74 28 62 6e 6f 64 65 29 |e_setsta|t(bnode)|
|00001be0| 3b 0a 58 09 09 09 65 6c | 73 65 0a 58 09 09 09 09 |;.X...el|se.X....|
|00001bf0| 6e 6f 64 65 5f 73 74 61 | 74 28 62 6e 6f 64 65 29 |node_sta|t(bnode)|
|00001c00| 3b 0a 58 09 09 7d 0a 58 | 09 7d 0a 58 0a 58 65 6e |;.X..}.X|.}.X.Xen|
|00001c10| 64 69 74 3a 0a 58 0a 58 | 09 63 64 65 62 75 67 28 |dit:.X.X|.cdebug(|
|00001c20| 22 75 70 64 61 74 65 20 | 66 69 6e 69 73 68 65 64 |"update |finished|
|00001c30| 5c 6e 22 29 3b 0a 58 09 | 66 6f 72 5f 6c 69 73 74 |\n");.X.|for_list|
|00001c40| 20 28 70 74 72 2c 20 6e | 6f 64 65 2d 3e 6e 5f 6e | (ptr, n|ode->n_n|
|00001c50| 65 77 29 0a 58 09 7b 0a | 58 09 09 62 6e 6f 64 65 |ew).X.{.|X..bnode|
|00001c60| 20 3d 20 28 4e 6f 64 65 | 20 2a 29 20 6c 64 61 74 | = (Node| *) ldat|
|00001c70| 61 28 70 74 72 29 3b 0a | 58 09 09 69 66 20 28 6f |a(ptr);.|X..if (o|
|00001c80| 6b 73 6f 66 61 72 29 0a | 58 09 09 7b 0a 58 09 09 |ksofar).|X..{.X..|
|00001c90| 09 69 66 20 28 6f 6e 5f | 6e 6f 64 65 28 62 6e 6f |.if (on_|node(bno|
|00001ca0| 64 65 2c 20 6e 66 5f 45 | 58 49 53 54 29 20 7c 7c |de, nf_E|XIST) |||
|00001cb0| 20 6f 6e 5f 6e 6f 64 65 | 28 62 6e 6f 64 65 2c 20 | on_node|(bnode, |
|00001cc0| 6e 66 5f 50 53 45 55 44 | 4f 29 20 7c 7c 20 6e 66 |nf_PSEUD|O) || nf|
|00001cd0| 6c 61 67 29 0a 58 09 09 | 09 09 62 6e 6f 64 65 2d |lag).X..|..bnode-|
|00001ce0| 3e 6e 5f 6b 69 6e 64 20 | 3d 20 6e 5f 4f 4b 3b 0a |>n_kind |= n_OK;.|
|00001cf0| 58 09 09 09 65 6c 73 65 | 0a 58 09 09 09 7b 0a 58 |X...else|.X...{.X|
|00001d00| 09 09 09 09 73 65 74 5f | 6e 6f 64 65 28 62 6e 6f |....set_|node(bno|
|00001d10| 64 65 2c 20 6e 66 5f 45 | 52 52 29 3b 0a 58 09 09 |de, nf_E|RR);.X..|
|00001d20| 09 09 69 66 20 28 6c 65 | 6e 67 74 68 28 6e 6f 64 |..if (le|ngth(nod|
|00001d30| 65 2d 3e 6e 5f 61 63 74 | 29 20 3d 3d 20 30 29 0a |e->n_act|) == 0).|
|00001d40| 58 09 09 09 09 09 73 70 | 72 69 6e 74 66 28 73 63 |X.....sp|rintf(sc|
|00001d50| 72 61 74 63 68 62 75 66 | 2c 20 22 6e 6f 20 61 63 |ratchbuf|, "no ac|
|00001d60| 74 69 6f 6e 73 20 74 6f | 20 6d 61 6b 65 20 25 73 |tions to| make %s|
|00001d70| 20 77 69 74 68 22 2c 20 | 62 6e 6f 64 65 2d 3e 6e | with", |bnode->n|
|00001d80| 5f 6e 61 6d 65 29 3b 0a | 58 09 09 09 09 65 6c 73 |_name);.|X....els|
|00001d90| 65 0a 58 09 09 09 09 09 | 73 70 72 69 6e 74 66 28 |e.X.....|sprintf(|
|00001da0| 73 63 72 61 74 63 68 62 | 75 66 2c 20 22 61 63 74 |scratchb|uf, "act|
|00001db0| 69 6f 6e 20 64 69 64 20 | 6e 6f 74 20 63 72 65 61 |ion did |not crea|
|00001dc0| 74 65 20 25 73 22 2c 20 | 62 6e 6f 64 65 2d 3e 6e |te %s", |bnode->n|
|00001dd0| 5f 6e 61 6d 65 29 3b 0a | 58 0a 58 09 09 09 09 61 |_name);.|X.X....a|
|00001de0| 64 64 5f 65 72 72 6f 72 | 28 62 6e 6f 64 65 2c 20 |dd_error|(bnode, |
|00001df0| 6e 65 77 5f 6e 61 6d 65 | 28 73 63 72 61 74 63 68 |new_name|(scratch|
|00001e00| 62 75 66 29 2c 20 4c 4e | 55 4c 4c 2c 20 54 52 55 |buf), LN|ULL, TRU|
|00001e10| 45 29 3b 0a 58 09 09 09 | 09 74 72 61 63 65 5f 65 |E);.X...|.trace_e|
|00001e20| 72 72 73 28 62 6e 6f 64 | 65 29 3b 0a 58 09 09 09 |rrs(bnod|e);.X...|
|00001e30| 7d 0a 58 09 09 7d 0a 58 | 0a 58 23 69 66 64 65 66 |}.X..}.X|.X#ifdef|
|00001e40| 09 43 41 4b 45 44 45 42 | 55 47 0a 58 09 09 69 66 |.CAKEDEB|UG.X..if|
|00001e50| 20 28 63 61 6b 65 64 65 | 62 75 67 29 0a 58 09 09 | (cakede|bug).X..|
|00001e60| 09 70 72 69 6e 74 5f 6e | 6f 64 65 28 62 6e 6f 64 |.print_n|ode(bnod|
|00001e70| 65 29 3b 0a 58 23 65 6e | 64 69 66 0a 58 09 7d 0a |e);.X#en|dif.X.}.|
|00001e80| 58 0a 58 09 70 75 74 5f | 74 72 61 69 6c 28 22 75 |X.X.put_|trail("u|
|00001e90| 70 64 61 74 65 22 2c 20 | 22 66 69 6e 69 73 68 22 |pdate", |"finish"|
|00001ea0| 29 3b 0a 58 7d 0a 58 0a | 58 2f 2a 0a 58 2a 2a 09 |);.X}.X.|X/*.X**.|
|00001eb0| 45 78 65 63 75 74 65 20 | 74 68 65 20 70 6c 61 6e |Execute |the plan|
|00001ec0| 20 70 72 65 70 61 72 65 | 64 20 62 79 20 63 68 61 | prepare|d by cha|
|00001ed0| 73 65 2e 63 0a 58 2a 2a | 09 50 72 65 76 65 6e 74 |se.c.X**|.Prevent|
|00001ee0| 20 74 68 65 20 64 65 6c | 65 74 69 6f 6e 20 6f 66 | the del|etion of|
|00001ef0| 20 74 68 65 20 70 72 69 | 6d 61 72 79 20 74 61 72 | the pri|mary tar|
|00001f00| 67 65 74 73 20 62 79 20 | 63 6c 65 61 6e 75 70 2e |gets by |cleanup.|
|00001f10| 0a 58 2a 2f 0a 58 0a 58 | 65 78 65 63 75 74 65 28 |.X*/.X.X|execute(|
|00001f20| 72 6f 6f 74 29 0a 58 72 | 65 67 09 4e 6f 64 65 09 |root).Xr|eg.Node.|
|00001f30| 2a 72 6f 6f 74 3b 0a 58 | 7b 0a 58 09 72 65 67 09 |*root;.X|{.X.reg.|
|00001f40| 4c 69 73 74 09 2a 70 74 | 72 3b 0a 58 09 72 65 67 |List.*pt|r;.X.reg|
|00001f50| 09 4e 6f 64 65 09 2a 74 | 61 72 67 65 74 3b 0a 58 |.Node.*t|arget;.X|
|00001f60| 0a 58 09 66 6f 72 5f 6c | 69 73 74 20 28 70 74 72 |.X.for_l|ist (ptr|
|00001f70| 2c 20 72 6f 6f 74 2d 3e | 6e 5f 6f 6c 64 29 0a 58 |, root->|n_old).X|
|00001f80| 09 7b 0a 58 09 09 74 61 | 72 67 65 74 20 3d 20 28 |.{.X..ta|rget = (|
|00001f90| 4e 6f 64 65 20 2a 29 20 | 6c 64 61 74 61 28 70 74 |Node *) |ldata(pt|
|00001fa0| 72 29 3b 0a 58 09 09 73 | 65 74 5f 6e 6f 64 65 28 |r);.X..s|et_node(|
|00001fb0| 74 61 72 67 65 74 2c 20 | 6e 66 5f 4e 4f 44 45 4c |target, |nf_NODEL|
|00001fc0| 45 54 45 29 3b 0a 58 09 | 7d 0a 58 0a 58 09 75 70 |ETE);.X.|}.X.X.up|
|00001fd0| 64 61 74 65 28 72 6f 6f | 74 2c 20 30 2c 20 46 41 |date(roo|t, 0, FA|
|00001fe0| 4c 53 45 29 3b 0a 58 7d | 0a 58 0a 58 2f 2a 0a 58 |LSE);.X}|.X.X/*.X|
|00001ff0| 2a 2a 09 43 61 72 72 79 | 20 6f 75 74 20 74 68 65 |**.Carry| out the|
|00002000| 20 73 70 65 63 69 66 69 | 65 64 20 61 63 74 69 6f | specifi|ed actio|
|00002010| 6e 73 20 61 6e 64 20 72 | 65 74 75 72 6e 20 74 68 |ns and r|eturn th|
|00002020| 65 20 65 78 69 74 20 63 | 6f 64 65 2e 0a 58 2a 2a |e exit c|ode..X**|
|00002030| 09 4e 6f 74 65 20 74 68 | 61 74 20 61 6e 20 65 6d |.Note th|at an em|
|00002040| 70 74 79 20 6c 69 73 74 | 20 6f 66 20 61 63 74 69 |pty list| of acti|
|00002050| 6f 6e 73 20 69 73 20 70 | 65 72 66 65 63 74 6c 79 |ons is p|erfectly|
|00002060| 20 61 63 63 65 70 74 61 | 62 6c 65 2e 0a 58 2a 2f | accepta|ble..X*/|
|00002070| 0a 58 0a 58 23 64 65 66 | 69 6e 65 09 53 54 41 52 |.X.X#def|ine.STAR|
|00002080| 54 5f 53 43 52 49 50 54 | 09 22 7b 22 0a 58 23 64 |T_SCRIPT|."{".X#d|
|00002090| 65 66 69 6e 65 09 46 49 | 4e 49 53 48 5f 53 43 52 |efine.FI|NISH_SCR|
|000020a0| 49 50 54 09 22 7d 22 0a | 58 0a 58 57 61 69 74 0a |IPT."}".|X.XWait.|
|000020b0| 58 63 61 72 72 79 5f 6f | 75 74 28 6e 6f 64 65 2c |Xcarry_o|ut(node,|
|000020c0| 20 66 6f 72 63 65 5f 65 | 78 65 63 29 0a 58 72 65 | force_e|xec).Xre|
|000020d0| 67 09 4e 6f 64 65 09 2a | 6e 6f 64 65 3b 0a 58 72 |g.Node.*|node;.Xr|
|000020e0| 65 67 09 62 6f 6f 6c 09 | 66 6f 72 63 65 5f 65 78 |eg.bool.|force_ex|
|000020f0| 65 63 3b 0a 58 7b 0a 58 | 09 65 78 74 65 72 6e 09 |ec;.X{.X|.extern.|
|00002100| 63 68 61 72 09 2a 65 78 | 70 61 6e 64 5f 63 6d 64 |char.*ex|pand_cmd|
|00002110| 73 28 29 3b 0a 58 09 65 | 78 74 65 72 6e 09 57 61 |s();.X.e|xtern.Wa|
|00002120| 69 74 09 61 63 74 69 6f | 6e 28 29 3b 0a 58 09 72 |it.actio|n();.X.r|
|00002130| 65 67 09 4c 69 73 74 09 | 2a 70 74 72 3b 0a 58 09 |eg.List.|*ptr;.X.|
|00002140| 72 65 67 09 41 63 74 09 | 2a 61 63 74 3b 0a 58 09 |reg.Act.|*act;.X.|
|00002150| 72 65 67 09 4e 6f 64 65 | 09 2a 62 6e 6f 64 65 3b |reg.Node|.*bnode;|
|00002160| 0a 58 09 57 61 69 74 09 | 09 63 6f 64 65 3b 0a 58 |.X.Wait.|.code;.X|
|00002170| 0a 58 09 69 66 20 28 47 | 66 6c 61 67 20 26 26 20 |.X.if (G|flag && |
|00002180| 21 20 6e 66 6c 61 67 29 | 0a 58 09 7b 0a 58 09 09 |! nflag)|.X.{.X..|
|00002190| 66 6f 72 5f 6c 69 73 74 | 20 28 70 74 72 2c 20 6e |for_list| (ptr, n|
|000021a0| 6f 64 65 2d 3e 6e 5f 6e | 65 77 29 0a 58 09 09 7b |ode->n_n|ew).X..{|
|000021b0| 0a 58 09 09 09 62 6e 6f | 64 65 20 3d 20 28 4e 6f |.X...bno|de = (No|
|000021c0| 64 65 20 2a 29 20 6c 64 | 61 74 61 28 70 74 72 29 |de *) ld|ata(ptr)|
|000021d0| 3b 0a 58 09 09 09 69 66 | 20 28 6f 6e 5f 6e 6f 64 |;.X...if| (on_nod|
|000021e0| 65 28 62 6e 6f 64 65 2c | 20 6e 66 5f 45 58 49 53 |e(bnode,| nf_EXIS|
|000021f0| 54 29 29 0a 58 09 09 09 | 7b 0a 58 09 09 09 09 63 |T)).X...|{.X....c|
|00002200| 64 65 62 75 67 28 22 72 | 65 6d 6f 76 69 6e 67 20 |debug("r|emoving |
|00002210| 25 73 20 66 6f 72 20 2d | 47 5c 6e 22 2c 20 62 6e |%s for -|G\n", bn|
|00002220| 6f 64 65 2d 3e 6e 5f 6e | 61 6d 65 29 3b 0a 58 09 |ode->n_n|ame);.X.|
|00002230| 09 09 09 63 61 6b 65 5f | 72 65 6d 6f 76 65 28 62 |...cake_|remove(b|
|00002240| 6e 6f 64 65 2d 3e 6e 5f | 6e 61 6d 65 29 3b 0a 58 |node->n_|name);.X|
|00002250| 09 09 09 7d 0a 58 09 09 | 7d 0a 58 09 7d 0a 58 0a |...}.X..|}.X.}.X.|
|00002260| 58 09 66 6f 72 5f 6c 69 | 73 74 20 28 70 74 72 2c |X.for_li|st (ptr,|
|00002270| 20 6e 6f 64 65 2d 3e 6e | 5f 61 63 74 29 0a 58 09 | node->n|_act).X.|
|00002280| 7b 0a 58 09 09 61 63 74 | 20 3d 20 28 41 63 74 20 |{.X..act| = (Act |
|00002290| 2a 29 20 6c 64 61 74 61 | 28 70 74 72 29 3b 0a 58 |*) ldata|(ptr);.X|
|000022a0| 0a 58 09 09 69 66 20 28 | 6e 66 6c 61 67 29 0a 58 |.X..if (|nflag).X|
|000022b0| 09 09 7b 0a 58 09 09 09 | 69 66 20 28 6f 66 66 5f |..{.X...|if (off_|
|000022c0| 61 63 74 28 61 63 74 2c | 20 61 66 5f 4d 49 4e 55 |act(act,| af_MINU|
|000022d0| 53 4e 29 20 26 26 20 21 | 20 66 6f 72 63 65 5f 65 |SN) && !| force_e|
|000022e0| 78 65 63 29 0a 58 09 09 | 09 09 73 68 6f 77 5f 61 |xec).X..|..show_a|
|000022f0| 63 74 28 61 63 74 2d 3e | 61 5f 73 74 72 2c 20 28 |ct(act->|a_str, (|
|00002300| 63 68 61 72 20 2a 29 20 | 4e 55 4c 4c 29 3b 0a 58 |char *) |NULL);.X|
|00002310| 09 09 09 65 6c 73 65 0a | 58 09 09 09 7b 0a 58 09 |...else.|X...{.X.|
|00002320| 09 09 09 72 65 73 65 74 | 5f 61 63 74 28 61 63 74 |...reset|_act(act|
|00002330| 2c 20 61 66 5f 53 49 4c | 45 4e 54 29 3b 0a 58 09 |, af_SIL|ENT);.X.|
|00002340| 09 09 09 70 72 69 6e 74 | 66 28 22 65 78 65 63 75 |...print|f("execu|
|00002350| 74 69 6e 67 20 2e 2e 2e | 5c 6e 22 29 3b 0a 58 09 |ting ...|\n");.X.|
|00002360| 09 09 09 63 6f 64 65 20 | 3d 20 61 63 74 69 6f 6e |...code |= action|
|00002370| 28 61 63 74 2c 20 6e 6f | 64 65 29 3b 0a 58 09 09 |(act, no|de);.X..|
|00002380| 09 09 70 72 69 6e 74 66 | 28 22 2e 2e 2e 20 64 6f |..printf|("... do|
|00002390| 6e 65 5c 6e 22 29 3b 0a | 58 09 09 09 09 69 66 20 |ne\n");.|X....if |
|000023a0| 28 63 6f 64 65 2e 77 5f | 73 74 61 74 75 73 20 21 |(code.w_|status !|
|000023b0| 3d 20 30 29 0a 58 09 09 | 09 09 09 72 65 74 75 72 |= 0).X..|...retur|
|000023c0| 6e 20 63 6f 64 65 3b 0a | 58 09 09 09 7d 0a 58 0a |n code;.|X...}.X.|
|000023d0| 58 09 09 09 63 6f 6e 74 | 69 6e 75 65 3b 0a 58 09 |X...cont|inue;.X.|
|000023e0| 09 7d 0a 58 0a 58 09 09 | 63 6f 64 65 20 3d 20 61 |.}.X.X..|code = a|
|000023f0| 63 74 69 6f 6e 28 61 63 | 74 2c 20 6e 6f 64 65 29 |ction(ac|t, node)|
|00002400| 3b 0a 58 09 09 69 66 20 | 28 63 6f 64 65 2e 77 5f |;.X..if |(code.w_|
|00002410| 73 74 61 74 75 73 20 21 | 3d 20 30 29 0a 58 09 09 |status !|= 0).X..|
|00002420| 09 72 65 74 75 72 6e 20 | 63 6f 64 65 3b 0a 58 09 |.return |code;.X.|
|00002430| 7d 0a 58 0a 58 09 63 6f | 64 65 2e 77 5f 73 74 61 |}.X.X.co|de.w_sta|
|00002440| 74 75 73 20 3d 20 30 3b | 0a 58 09 72 65 74 75 72 |tus = 0;|.X.retur|
|00002450| 6e 20 63 6f 64 65 3b 0a | 58 7d 0a 58 0a 58 2f 2a |n code;.|X}.X.X/*|
|00002460| 0a 58 2a 2a 09 45 78 65 | 63 75 74 65 20 74 68 65 |.X**.Exe|cute the|
|00002470| 20 67 69 76 65 6e 20 63 | 6f 6d 6d 61 6e 64 20 61 | given c|ommand a|
|00002480| 6e 64 20 72 65 74 75 72 | 6e 20 69 74 73 20 73 74 |nd retur|n its st|
|00002490| 61 74 75 73 2c 0a 58 2a | 2a 09 6d 6f 64 69 66 69 |atus,.X*|*.modifi|
|000024a0| 65 64 20 62 79 20 66 6c | 61 67 73 20 61 6e 64 20 |ed by fl|ags and |
|000024b0| 70 72 65 66 69 78 65 73 | 2e 0a 58 2a 2f 0a 58 0a |prefixes|..X*/.X.|
|000024c0| 58 57 61 69 74 0a 58 61 | 63 74 69 6f 6e 28 61 63 |XWait.Xa|ction(ac|
|000024d0| 74 2c 20 6e 6f 64 65 29 | 0a 58 72 65 67 09 41 63 |t, node)|.Xreg.Ac|
|000024e0| 74 09 2a 61 63 74 3b 0a | 58 72 65 67 09 4e 6f 64 |t.*act;.|Xreg.Nod|
|000024f0| 65 09 2a 6e 6f 64 65 3b | 0a 58 7b 0a 58 09 65 78 |e.*node;|.X{.X.ex|
|00002500| 74 65 72 6e 09 69 6e 74 | 09 63 61 6b 65 5f 70 72 |tern.int|.cake_pr|
|00002510| 6f 63 28 29 3b 0a 58 09 | 65 78 74 65 72 6e 09 57 |oc();.X.|extern.W|
|00002520| 61 69 74 09 63 61 6b 65 | 5f 77 61 69 74 28 29 3b |ait.cake|_wait();|
|00002530| 0a 58 09 57 61 69 74 09 | 09 63 6f 64 65 3b 0a 58 |.X.Wait.|.code;.X|
|00002540| 09 72 65 67 09 41 5f 6b | 69 6e 64 09 74 79 70 65 |.reg.A_k|ind.type|
|00002550| 3b 0a 58 09 72 65 67 09 | 69 6e 74 09 70 69 64 3b |;.X.reg.|int.pid;|
|00002560| 0a 58 09 72 65 67 09 63 | 68 61 72 09 2a 61 66 74 |.X.reg.c|har.*aft|
|00002570| 65 72 3b 0a 58 0a 58 09 | 70 75 74 5f 74 72 61 69 |er;.X.X.|put_trai|
|00002580| 6c 28 22 61 63 74 69 6f | 6e 22 2c 20 22 73 74 61 |l("actio|n", "sta|
|00002590| 72 74 22 29 3b 0a 58 09 | 61 66 74 65 72 20 3d 20 |rt");.X.|after = |
|000025a0| 65 78 70 61 6e 64 5f 63 | 6d 64 73 28 61 63 74 2d |expand_c|mds(act-|
|000025b0| 3e 61 5f 73 74 72 29 3b | 0a 58 09 69 66 20 28 21 |>a_str);|.X.if (!|
|000025c0| 20 28 6f 6e 5f 61 63 74 | 28 61 63 74 2c 20 61 66 | (on_act|(act, af|
|000025d0| 5f 53 49 4c 45 4e 54 29 | 20 7c 7c 20 73 66 6c 61 |_SILENT)| || sfla|
|000025e0| 67 29 29 0a 58 09 09 73 | 68 6f 77 5f 61 63 74 28 |g)).X..s|how_act(|
|000025f0| 61 63 74 2d 3e 61 5f 73 | 74 72 2c 20 61 66 74 65 |act->a_s|tr, afte|
|00002600| 72 29 3b 0a 58 09 61 63 | 74 2d 3e 61 5f 73 74 72 |r);.X.ac|t->a_str|
|00002610| 20 3d 20 61 66 74 65 72 | 3b 0a 58 0a 58 09 69 66 | = after|;.X.X.if|
|00002620| 20 28 6f 6e 5f 61 63 74 | 28 61 63 74 2c 20 61 66 | (on_act|(act, af|
|00002630| 5f 53 43 52 49 50 54 29 | 29 0a 58 09 09 74 79 70 |_SCRIPT)|).X..typ|
|00002640| 65 20 3d 20 53 63 72 69 | 70 74 3b 0a 58 09 6f 72 |e = Scri|pt;.X.or|
|00002650| 20 28 6f 6e 5f 61 63 74 | 28 61 63 74 2c 20 61 66 | (on_act|(act, af|
|00002660| 5f 53 59 53 54 45 4d 29 | 29 0a 58 09 09 74 79 70 |_SYSTEM)|).X..typ|
|00002670| 65 20 3d 20 53 79 73 74 | 65 6d 3b 0a 58 09 65 6c |e = Syst|em;.X.el|
|00002680| 73 65 0a 58 09 09 74 79 | 70 65 20 3d 20 45 78 65 |se.X..ty|pe = Exe|
|00002690| 63 3b 0a 58 0a 58 09 70 | 69 64 20 3d 20 63 61 6b |c;.X.X.p|id = cak|
|000026a0| 65 5f 70 72 6f 63 28 61 | 63 74 2d 3e 61 5f 73 74 |e_proc(a|ct->a_st|
|000026b0| 72 2c 20 74 79 70 65 2c | 20 28 63 68 61 72 20 2a |r, type,| (char *|
|000026c0| 29 20 4e 55 4c 4c 2c 20 | 6e 6f 64 65 2c 20 28 69 |) NULL, |node, (i|
|000026d0| 6e 74 20 28 2a 29 28 29 | 29 20 4e 55 4c 4c 2c 20 |nt (*)()|) NULL, |
|000026e0| 28 4c 69 73 74 20 2a 29 | 20 4e 55 4c 4c 29 3b 0a |(List *)| NULL);.|
|000026f0| 58 09 63 6f 64 65 20 3d | 20 63 61 6b 65 5f 77 61 |X.code =| cake_wa|
|00002700| 69 74 28 70 69 64 29 3b | 0a 58 0a 58 09 69 66 20 |it(pid);|.X.X.if |
|00002710| 28 6f 6e 5f 61 63 74 28 | 61 63 74 2c 20 61 66 5f |(on_act(|act, af_|
|00002720| 49 47 4e 4f 52 45 29 20 | 7c 7c 20 69 66 6c 61 67 |IGNORE) ||| iflag|
|00002730| 29 0a 58 09 09 63 6f 64 | 65 2e 77 5f 73 74 61 74 |).X..cod|e.w_stat|
|00002740| 75 73 20 3d 20 30 3b 0a | 58 0a 58 09 69 66 20 28 |us = 0;.|X.X.if (|
|00002750| 63 6f 64 65 2e 77 5f 73 | 74 61 74 75 73 20 21 3d |code.w_s|tatus !=|
|00002760| 20 30 20 26 26 20 21 20 | 6b 66 6c 61 67 29 0a 58 | 0 && ! |kflag).X|
|00002770| 09 09 65 78 69 74 5f 63 | 61 6b 65 28 46 41 4c 53 |..exit_c|ake(FALS|
|00002780| 45 29 3b 0a 58 0a 58 09 | 70 75 74 5f 74 72 61 69 |E);.X.X.|put_trai|
|00002790| 6c 28 22 61 63 74 69 6f | 6e 22 2c 20 22 66 69 6e |l("actio|n", "fin|
|000027a0| 69 73 68 22 29 3b 0a 58 | 09 72 65 74 75 72 6e 20 |ish");.X|.return |
|000027b0| 63 6f 64 65 3b 0a 58 7d | 0a 58 0a 58 2f 2a 0a 58 |code;.X}|.X.X/*.X|
|000027c0| 2a 2a 09 50 72 69 6e 74 | 20 61 6e 20 61 63 74 69 |**.Print| an acti|
|000027d0| 6f 6e 20 69 6e 20 74 68 | 65 20 66 6f 72 6d 61 74 |on in th|e format|
|000027e0| 20 73 70 65 63 69 66 69 | 65 64 20 62 79 20 74 68 | specifi|ed by th|
|000027f0| 65 20 6f 70 74 69 6f 6e | 73 2e 0a 58 2a 2a 09 54 |e option|s..X**.T|
|00002800| 68 65 20 74 77 6f 20 61 | 72 67 73 20 61 72 65 20 |he two a|rgs are |
|00002810| 74 68 65 20 61 63 74 69 | 6f 6e 20 62 65 66 6f 72 |the acti|on befor|
|00002820| 65 20 61 6e 64 20 61 66 | 74 65 72 20 65 78 70 61 |e and af|ter expa|
|00002830| 6e 73 69 6f 6e 2e 0a 58 | 2a 2a 09 54 68 65 20 73 |nsion..X|**.The s|
|00002840| 65 63 6f 6e 64 20 6d 61 | 79 20 62 65 20 4e 55 4c |econd ma|y be NUL|
|00002850| 4c 2c 20 69 6e 20 77 68 | 69 63 68 20 63 61 73 65 |L, in wh|ich case|
|00002860| 20 73 68 6f 77 5f 61 63 | 74 20 64 6f 65 73 20 74 | show_ac|t does t|
|00002870| 68 65 0a 58 2a 2a 09 65 | 78 70 61 6e 73 69 6f 6e |he.X**.e|xpansion|
|00002880| 20 69 74 73 65 6c 66 2e | 0a 58 2a 2f 0a 58 0a 58 | itself.|.X*/.X.X|
|00002890| 73 68 6f 77 5f 61 63 74 | 28 62 65 66 6f 72 65 2c |show_act|(before,|
|000028a0| 20 61 66 74 65 72 29 0a | 58 72 65 67 09 63 68 61 | after).|Xreg.cha|
|000028b0| 72 09 2a 62 65 66 6f 72 | 65 3b 0a 58 72 65 67 09 |r.*befor|e;.Xreg.|
|000028c0| 63 68 61 72 09 2a 61 66 | 74 65 72 3b 0a 58 7b 0a |char.*af|ter;.X{.|
|000028d0| 58 09 65 78 74 65 72 6e | 09 63 68 61 72 09 2a 73 |X.extern|.char.*s|
|000028e0| 71 75 65 65 7a 65 28 29 | 3b 0a 58 09 72 65 67 09 |queeze()|;.X.reg.|
|000028f0| 63 68 61 72 09 2a 66 6f | 72 6d 3b 0a 58 0a 58 09 |char.*fo|rm;.X.X.|
|00002900| 69 66 20 28 62 66 6c 61 | 67 29 0a 58 09 09 66 6f |if (bfla|g).X..fo|
|00002910| 72 6d 20 3d 20 62 65 66 | 6f 72 65 3b 0a 58 09 6f |rm = bef|ore;.X.o|
|00002920| 72 20 28 61 66 74 65 72 | 20 21 3d 20 4e 55 4c 4c |r (after| != NULL|
|00002930| 29 0a 58 09 09 66 6f 72 | 6d 20 3d 20 61 66 74 65 |).X..for|m = afte|
|00002940| 72 3b 0a 58 09 65 6c 73 | 65 0a 58 09 09 66 6f 72 |r;.X.els|e.X..for|
|00002950| 6d 20 3d 20 65 78 70 61 | 6e 64 5f 63 6d 64 73 28 |m = expa|nd_cmds(|
|00002960| 62 65 66 6f 72 65 29 3b | 0a 58 0a 58 09 69 66 20 |before);|.X.X.if |
|00002970| 28 77 66 6c 61 67 29 0a | 58 09 09 70 72 69 6e 74 |(wflag).|X..print|
|00002980| 66 28 22 25 73 22 2c 20 | 66 6f 72 6d 29 3b 0a 58 |f("%s", |form);.X|
|00002990| 09 65 6c 73 65 0a 58 09 | 09 70 72 69 6e 74 66 28 |.else.X.|.printf(|
|000029a0| 22 25 73 22 2c 20 73 71 | 75 65 65 7a 65 28 66 6f |"%s", sq|ueeze(fo|
|000029b0| 72 6d 29 29 3b 0a 58 7d | 0a 58 0a 58 2f 2a 0a 58 |rm));.X}|.X.X/*.X|
|000029c0| 2a 2a 09 52 65 64 75 63 | 65 20 74 68 65 20 77 69 |**.Reduc|e the wi|
|000029d0| 64 74 68 20 6f 66 20 74 | 68 65 20 67 69 76 65 6e |dth of t|he given|
|000029e0| 20 63 6f 6d 6d 61 6e 64 | 20 73 74 72 69 6e 67 0a | command| string.|
|000029f0| 58 2a 2a 09 62 79 20 73 | 71 75 65 65 7a 69 6e 67 |X**.by s|queezing|
|00002a00| 20 6f 75 74 20 65 78 74 | 72 61 20 73 70 61 63 65 | out ext|ra space|
|00002a10| 73 20 61 6e 64 20 74 61 | 62 73 2e 0a 58 2a 2f 0a |s and ta|bs..X*/.|
|00002a20| 58 0a 58 63 68 61 72 20 | 2a 0a 58 73 71 75 65 65 |X.Xchar |*.Xsquee|
|00002a30| 7a 65 28 63 6d 64 29 0a | 58 72 65 67 09 63 68 61 |ze(cmd).|Xreg.cha|
|00002a40| 72 09 2a 63 6d 64 3b 0a | 58 7b 0a 58 09 63 68 61 |r.*cmd;.|X{.X.cha|
|00002a50| 72 09 09 62 75 66 5b 4d | 41 58 53 49 5a 45 5d 3b |r..buf[M|AXSIZE];|
|00002a60| 0a 58 09 72 65 67 09 63 | 68 61 72 09 2a 73 3b 0a |.X.reg.c|har.*s;.|
|00002a70| 58 09 72 65 67 09 69 6e | 74 09 69 2c 20 6f 6c 64 |X.reg.in|t.i, old|
|00002a80| 69 3b 0a 58 09 72 65 67 | 09 62 6f 6f 6c 09 69 6e |i;.X.reg|.bool.in|
|00002a90| 71 75 6f 74 65 73 3b 0a | 58 09 72 65 67 09 62 6f |quotes;.|X.reg.bo|
|00002aa0| 6f 6c 09 69 6e 73 69 6e | 67 6c 65 3b 0a 58 09 72 |ol.insin|gle;.X.r|
|00002ab0| 65 67 09 62 6f 6f 6c 09 | 69 6e 64 6f 75 62 6c 65 |eg.bool.|indouble|
|00002ac0| 3b 0a 58 09 72 65 67 09 | 62 6f 6f 6c 09 6c 61 73 |;.X.reg.|bool.las|
|00002ad0| 74 62 6c 61 6e 6b 3b 0a | 58 0a 58 09 73 20 3d 20 |tblank;.|X.X.s = |
|00002ae0| 63 6d 64 3b 0a 58 09 69 | 20 3d 20 30 3b 0a 58 09 |cmd;.X.i| = 0;.X.|
|00002af0| 6c 61 73 74 62 6c 61 6e | 6b 20 3d 20 46 41 4c 53 |lastblan|k = FALS|
|00002b00| 45 3b 0a 58 09 77 68 69 | 6c 65 20 28 2a 73 20 21 |E;.X.whi|le (*s !|
|00002b10| 3d 20 27 5c 30 27 29 0a | 58 09 7b 0a 58 09 09 77 |= '\0').|X.{.X..w|
|00002b20| 68 69 6c 65 20 28 2a 73 | 20 21 3d 20 27 5c 30 27 |hile (*s| != '\0'|
|00002b30| 20 26 26 20 28 2a 73 20 | 3d 3d 20 27 20 27 20 7c | && (*s |== ' ' ||
|00002b40| 7c 20 2a 73 20 3d 3d 20 | 27 5c 74 27 29 29 0a 58 || *s == |'\t')).X|
|00002b50| 09 09 09 73 2b 2b 3b 0a | 58 0a 58 09 09 69 66 20 |...s++;.|X.X..if |
|00002b60| 28 6c 61 73 74 62 6c 61 | 6e 6b 20 26 26 20 28 2a |(lastbla|nk && (*|
|00002b70| 73 20 3d 3d 20 27 5c 6e | 27 20 7c 7c 20 2a 73 20 |s == '\n|' || *s |
|00002b80| 3d 3d 20 27 5c 72 27 20 | 7c 7c 20 2a 73 20 3d 3d |== '\r' ||| *s ==|
|00002b90| 20 27 5c 66 27 29 29 0a | 58 09 09 09 69 2d 2d 3b | '\f')).|X...i--;|
|00002ba0| 0a 58 0a 58 09 09 6f 6c | 64 69 20 3d 20 69 3b 0a |.X.X..ol|di = i;.|
|00002bb0| 58 09 09 69 6e 71 75 6f | 74 65 73 20 3d 20 46 41 |X..inquo|tes = FA|
|00002bc0| 4c 53 45 3b 0a 58 09 09 | 66 6f 72 20 28 3b 20 2a |LSE;.X..|for (; *|
|00002bd0| 73 20 21 3d 20 27 5c 30 | 27 20 26 26 20 28 28 2a |s != '\0|' && ((*|
|00002be0| 73 20 21 3d 20 27 20 27 | 20 26 26 20 2a 73 20 21 |s != ' '| && *s !|
|00002bf0| 3d 20 27 5c 74 27 29 20 | 7c 7c 20 69 6e 71 75 6f |= '\t') ||| inquo|
|00002c00| 74 65 73 29 3b 20 73 2b | 2b 29 0a 58 09 09 7b 0a |tes); s+|+).X..{.|
|00002c10| 58 09 09 09 69 66 20 28 | 2a 73 20 3d 3d 20 27 5c |X...if (|*s == '\|
|00002c20| 5c 27 29 0a 58 09 09 09 | 7b 0a 58 09 09 09 09 62 |\').X...|{.X....b|
|00002c30| 75 66 5b 69 2b 2b 5d 20 | 3d 20 2a 73 3b 0a 58 09 |uf[i++] |= *s;.X.|
|00002c40| 09 09 09 69 66 20 28 73 | 5b 31 5d 20 21 3d 20 27 |...if (s|[1] != '|
|00002c50| 5c 30 27 29 0a 58 09 09 | 09 09 09 62 75 66 5b 69 |\0').X..|...buf[i|
|00002c60| 2b 2b 5d 20 3d 20 2a 2b | 2b 73 3b 0a 58 09 09 09 |++] = *+|+s;.X...|
|00002c70| 7d 0a 58 09 09 09 65 6c | 73 65 0a 58 09 09 09 7b |}.X...el|se.X...{|
|00002c80| 0a 58 09 09 09 09 69 66 | 20 28 2a 73 20 3d 3d 20 |.X....if| (*s == |
|00002c90| 27 22 27 20 26 26 20 21 | 20 28 69 6e 71 75 6f 74 |'"' && !| (inquot|
|00002ca0| 65 73 20 26 26 20 69 6e | 73 69 6e 67 6c 65 29 29 |es && in|single))|
|00002cb0| 0a 58 09 09 09 09 7b 0a | 58 09 09 09 09 09 69 6e |.X....{.|X.....in|
|00002cc0| 71 75 6f 74 65 73 20 3d | 20 21 20 69 6e 71 75 6f |quotes =| ! inquo|
|00002cd0| 74 65 73 3b 0a 58 09 09 | 09 09 09 69 6e 64 6f 75 |tes;.X..|...indou|
|00002ce0| 62 6c 65 20 3d 20 54 52 | 55 45 3b 0a 58 09 09 09 |ble = TR|UE;.X...|
|00002cf0| 09 09 69 6e 73 69 6e 67 | 6c 65 20 3d 20 46 41 4c |..insing|le = FAL|
|00002d00| 53 45 3b 0a 58 09 09 09 | 09 7d 0a 58 09 09 09 09 |SE;.X...|.}.X....|
|00002d10| 6f 72 20 28 2a 73 20 3d | 3d 20 27 5c 27 27 20 26 |or (*s =|= '\'' &|
|00002d20| 26 20 21 20 28 69 6e 71 | 75 6f 74 65 73 20 26 26 |& ! (inq|uotes &&|
|00002d30| 20 69 6e 64 6f 75 62 6c | 65 29 29 0a 58 09 09 09 | indoubl|e)).X...|
|00002d40| 09 7b 0a 58 09 09 09 09 | 09 69 6e 71 75 6f 74 65 |.{.X....|.inquote|
|00002d50| 73 20 3d 20 21 20 69 6e | 71 75 6f 74 65 73 3b 0a |s = ! in|quotes;.|
|00002d60| 58 09 09 09 09 09 69 6e | 73 69 6e 67 6c 65 20 3d |X.....in|single =|
|00002d70| 20 54 52 55 45 3b 0a 58 | 09 09 09 09 09 69 6e 64 | TRUE;.X|.....ind|
|00002d80| 6f 75 62 6c 65 20 3d 20 | 46 41 4c 53 45 3b 0a 58 |ouble = |FALSE;.X|
|00002d90| 09 09 09 09 7d 0a 58 0a | 58 09 09 09 09 62 75 66 |....}.X.|X....buf|
|00002da0| 5b 69 2b 2b 5d 20 3d 20 | 2a 73 3b 0a 58 09 09 09 |[i++] = |*s;.X...|
|00002db0| 7d 0a 58 09 09 7d 0a 58 | 0a 58 09 09 69 66 20 28 |}.X..}.X|.X..if (|
|00002dc0| 69 20 3d 3d 20 6f 6c 64 | 69 20 7c 7c 20 62 75 66 |i == old|i || buf|
|00002dd0| 5b 69 2d 31 5d 20 3d 3d | 20 27 5c 6e 27 20 7c 7c |[i-1] ==| '\n' |||
|00002de0| 20 62 75 66 5b 69 2d 31 | 5d 20 3d 3d 20 27 5c 72 | buf[i-1|] == '\r|
|00002df0| 27 20 7c 7c 20 62 75 66 | 5b 69 2d 31 5d 20 3d 3d |' || buf|[i-1] ==|
|00002e00| 20 27 5c 66 27 29 0a 58 | 09 09 09 6c 61 73 74 62 | '\f').X|...lastb|
|00002e10| 6c 61 6e 6b 20 3d 20 46 | 41 4c 53 45 3b 0a 58 09 |lank = F|ALSE;.X.|
|00002e20| 09 65 6c 73 65 0a 58 09 | 09 7b 0a 58 09 09 09 6c |.else.X.|.{.X...l|
|00002e30| 61 73 74 62 6c 61 6e 6b | 20 3d 20 54 52 55 45 3b |astblank| = TRUE;|
|00002e40| 0a 58 09 09 09 62 75 66 | 5b 69 2b 2b 5d 20 3d 20 |.X...buf|[i++] = |
|00002e50| 27 20 27 3b 0a 58 09 09 | 7d 0a 58 09 7d 0a 58 0a |' ';.X..|}.X.}.X.|
|00002e60| 58 09 62 75 66 5b 69 5d | 20 3d 20 27 5c 30 27 3b |X.buf[i]| = '\0';|
|00002e70| 0a 58 09 69 66 20 28 69 | 20 3e 3d 20 4d 41 58 53 |.X.if (i| >= MAXS|
|00002e80| 49 5a 45 29 0a 58 09 7b | 0a 58 09 09 66 70 72 69 |IZE).X.{|.X..fpri|
|00002e90| 6e 74 66 28 73 74 64 65 | 72 72 2c 20 22 63 61 6b |ntf(stde|rr, "cak|
|00002ea0| 65 20 69 6e 74 65 72 6e | 61 6c 20 65 72 72 6f 72 |e intern|al error|
|00002eb0| 3a 20 63 6f 6d 6d 61 6e | 64 20 27 25 73 27 20 74 |: comman|d '%s' t|
|00002ec0| 6f 6f 20 6c 6f 6e 67 5c | 6e 22 2c 20 62 75 66 29 |oo long\|n", buf)|
|00002ed0| 3b 0a 58 09 09 65 78 69 | 74 5f 63 61 6b 65 28 46 |;.X..exi|t_cake(F|
|00002ee0| 41 4c 53 45 29 3b 0a 58 | 09 7d 0a 58 0a 58 09 77 |ALSE);.X|.}.X.X.w|
|00002ef0| 68 69 6c 65 20 28 62 75 | 66 5b 69 2d 31 5d 20 3d |hile (bu|f[i-1] =|
|00002f00| 3d 20 27 20 27 20 7c 7c | 20 62 75 66 5b 69 2d 31 |= ' ' ||| buf[i-1|
|00002f10| 5d 20 3d 3d 20 27 5c 74 | 27 29 0a 58 09 09 62 75 |] == '\t|').X..bu|
|00002f20| 66 5b 2d 2d 69 5d 20 3d | 20 27 5c 30 27 3b 0a 58 |f[--i] =| '\0';.X|
|00002f30| 0a 58 09 72 65 74 75 72 | 6e 20 6e 65 77 5f 6e 61 |.X.retur|n new_na|
|00002f40| 6d 65 28 62 75 66 29 3b | 0a 58 7d 0a 58 0a 58 2f |me(buf);|.X}.X.X/|
|00002f50| 2a 0a 58 2a 2a 09 43 6c | 65 61 6e 20 75 70 20 61 |*.X**.Cl|ean up a|
|00002f60| 66 74 65 72 20 61 6e 20 | 65 72 72 6f 72 20 6f 72 |fter an |error or|
|00002f70| 20 69 6e 74 65 72 72 75 | 70 74 2e 0a 58 2a 2f 0a | interru|pt..X*/.|
|00002f80| 58 0a 58 63 61 6b 65 5f | 65 72 72 6f 72 28 6e 6f |X.Xcake_|error(no|
|00002f90| 64 65 29 0a 58 72 65 67 | 09 4e 6f 64 65 09 2a 6e |de).Xreg|.Node.*n|
|00002fa0| 6f 64 65 3b 0a 58 7b 0a | 58 09 72 65 67 09 4c 69 |ode;.X{.|X.reg.Li|
|00002fb0| 73 74 09 2a 70 74 72 2c | 20 2a 70 74 72 31 3b 0a |st.*ptr,| *ptr1;.|
|00002fc0| 58 09 72 65 67 09 4e 6f | 64 65 09 2a 62 6e 6f 64 |X.reg.No|de.*bnod|
|00002fd0| 65 2c 20 2a 6f 6e 6f 64 | 65 3b 0a 58 0a 58 09 66 |e, *onod|e;.X.X.f|
|00002fe0| 6f 72 5f 6c 69 73 74 20 | 28 70 74 72 2c 20 6e 6f |or_list |(ptr, no|
|00002ff0| 64 65 2d 3e 6e 5f 6e 65 | 77 29 0a 58 09 7b 0a 58 |de->n_ne|w).X.{.X|
|00003000| 09 09 62 6e 6f 64 65 20 | 3d 20 28 4e 6f 64 65 20 |..bnode |= (Node |
|00003010| 2a 29 20 6c 64 61 74 61 | 28 70 74 72 29 3b 0a 58 |*) ldata|(ptr);.X|
|00003020| 09 09 66 6f 72 5f 6c 69 | 73 74 20 28 70 74 72 31 |..for_li|st (ptr1|
|00003030| 2c 20 62 6e 6f 64 65 2d | 3e 6e 5f 6f 6c 64 29 0a |, bnode-|>n_old).|
|00003040| 58 09 09 7b 0a 58 09 09 | 09 6f 6e 6f 64 65 20 3d |X..{.X..|.onode =|
|00003050| 20 28 4e 6f 64 65 20 2a | 29 20 6c 64 61 74 61 28 | (Node *|) ldata(|
|00003060| 70 74 72 31 29 3b 0a 58 | 09 09 09 73 65 74 5f 6e |ptr1);.X|...set_n|
|00003070| 6f 64 65 28 6f 6e 6f 64 | 65 2c 20 6e 66 5f 4e 4f |ode(onod|e, nf_NO|
|00003080| 44 45 4c 45 54 45 29 3b | 0a 58 09 09 7d 0a 58 0a |DELETE);|.X..}.X.|
|00003090| 58 09 09 69 66 20 28 6f | 6e 5f 6e 6f 64 65 28 62 |X..if (o|n_node(b|
|000030a0| 6e 6f 64 65 2c 20 6e 66 | 5f 45 58 49 53 54 29 20 |node, nf|_EXIST) |
|000030b0| 26 26 20 6f 66 66 5f 6e | 6f 64 65 28 62 6e 6f 64 |&& off_n|ode(bnod|
|000030c0| 65 2c 20 6e 66 5f 50 52 | 45 43 49 4f 55 53 29 29 |e, nf_PR|ECIOUS))|
|000030d0| 0a 58 09 09 09 63 61 6b | 65 5f 72 65 6d 6f 76 65 |.X...cak|e_remove|
|000030e0| 28 62 6e 6f 64 65 2d 3e | 6e 5f 6e 61 6d 65 29 3b |(bnode->|n_name);|
|000030f0| 0a 58 09 7d 0a 58 7d 0a | 58 0a 58 2f 2a 0a 58 2a |.X.}.X}.|X.X/*.X*|
|00003100| 2a 09 43 6c 65 61 6e 20 | 75 70 20 61 66 74 65 72 |*.Clean |up after|
|00003110| 20 61 6c 6c 20 74 68 65 | 20 66 75 73 73 2e 0a 58 | all the| fuss..X|
|00003120| 2a 2f 0a 58 0a 58 63 6c | 65 61 6e 75 70 28 29 0a |*/.X.Xcl|eanup().|
|00003130| 58 7b 0a 58 09 65 78 74 | 65 72 6e 09 4c 69 73 74 |X{.X.ext|ern.List|
|00003140| 09 2a 67 65 74 5f 61 6c | 6c 6e 6f 64 65 73 28 29 |.*get_al|lnodes()|
|00003150| 3b 0a 58 09 72 65 67 09 | 4c 69 73 74 09 2a 70 74 |;.X.reg.|List.*pt|
|00003160| 72 2c 20 2a 70 74 72 31 | 3b 0a 58 09 72 65 67 09 |r, *ptr1|;.X.reg.|
|00003170| 4c 69 73 74 09 2a 6e 6f | 64 65 73 3b 0a 58 09 72 |List.*no|des;.X.r|
|00003180| 65 67 09 4e 6f 64 65 09 | 2a 6e 6f 64 65 2c 20 2a |eg.Node.|*node, *|
|00003190| 6f 6e 6f 64 65 3b 0a 58 | 0a 58 09 63 64 65 62 75 |onode;.X|.X.cdebu|
|000031a0| 67 28 22 63 6c 65 61 6e | 75 70 3a 5c 6e 22 29 3b |g("clean|up:\n");|
|000031b0| 0a 58 0a 58 09 69 66 20 | 28 6e 66 6c 61 67 29 0a |.X.X.if |(nflag).|
|000031c0| 58 09 09 72 65 74 75 72 | 6e 3b 0a 58 0a 58 09 6e |X..retur|n;.X.X.n|
|000031d0| 6f 64 65 73 20 3d 20 67 | 65 74 5f 61 6c 6c 6e 6f |odes = g|et_allno|
|000031e0| 64 65 73 28 29 3b 0a 58 | 09 66 6f 72 5f 6c 69 73 |des();.X|.for_lis|
|000031f0| 74 20 28 70 74 72 2c 20 | 6e 6f 64 65 73 29 0a 58 |t (ptr, |nodes).X|
|00003200| 09 7b 0a 58 09 09 6e 6f | 64 65 20 3d 20 28 4e 6f |.{.X..no|de = (No|
|00003210| 64 65 20 2a 29 20 6c 64 | 61 74 61 28 70 74 72 29 |de *) ld|ata(ptr)|
|00003220| 3b 0a 58 09 09 63 64 65 | 62 75 67 28 22 63 6f 6e |;.X..cde|bug("con|
|00003230| 73 69 64 65 72 69 6e 67 | 20 25 73 3a 20 22 2c 20 |sidering| %s: ", |
|00003240| 6e 6f 64 65 2d 3e 6e 5f | 6e 61 6d 65 29 3b 0a 58 |node->n_|name);.X|
|00003250| 0a 58 09 09 69 66 20 28 | 6f 66 66 5f 6e 6f 64 65 |.X..if (|off_node|
|00003260| 28 6e 6f 64 65 2c 20 6e | 66 5f 45 58 49 53 54 29 |(node, n|f_EXIST)|
|00003270| 29 0a 58 09 09 7b 0a 58 | 09 09 09 63 64 65 62 75 |).X..{.X|...cdebu|
|00003280| 67 28 22 6e 6f 6e 65 78 | 69 73 74 65 6e 74 5c 6e |g("nonex|istent\n|
|00003290| 22 29 3b 0a 58 09 09 09 | 63 6f 6e 74 69 6e 75 65 |");.X...|continue|
|000032a0| 3b 0a 58 09 09 7d 0a 58 | 0a 58 09 09 69 66 20 28 |;.X..}.X|.X..if (|
|000032b0| 6f 6e 5f 6e 6f 64 65 28 | 6e 6f 64 65 2c 20 6e 66 |on_node(|node, nf|
|000032c0| 5f 45 52 52 29 20 7c 7c | 20 69 73 5f 6e 6f 77 61 |_ERR) ||| is_nowa|
|000032d0| 79 28 6e 6f 64 65 29 29 | 0a 58 09 09 7b 0a 58 09 |y(node))|.X..{.X.|
|000032e0| 09 09 63 64 65 62 75 67 | 28 22 65 72 72 6f 72 73 |..cdebug|("errors|
|000032f0| 20 6f 72 20 6e 6f 77 61 | 79 5c 6e 22 29 3b 0a 58 | or nowa|y\n");.X|
|00003300| 09 09 09 63 6f 6e 74 69 | 6e 75 65 3b 0a 58 09 09 |...conti|nue;.X..|
|00003310| 7d 0a 58 0a 58 09 09 69 | 66 20 28 21 20 64 66 6c |}.X.X..i|f (! dfl|
|00003320| 61 67 20 26 26 20 6f 66 | 66 5f 6e 6f 64 65 28 6e |ag && of|f_node(n|
|00003330| 6f 64 65 2c 20 6e 66 5f | 52 45 44 55 4e 44 41 4e |ode, nf_|REDUNDAN|
|00003340| 54 29 29 0a 58 09 09 7b | 0a 58 09 09 09 63 64 65 |T)).X..{|.X...cde|
|00003350| 62 75 67 28 22 6e 6f 20 | 66 6c 61 67 5c 6e 22 29 |bug("no |flag\n")|
|00003360| 3b 0a 58 09 09 09 63 6f | 6e 74 69 6e 75 65 3b 0a |;.X...co|ntinue;.|
|00003370| 58 09 09 7d 0a 58 0a 58 | 09 09 2f 2a 20 66 69 6c |X..}.X.X|../* fil|
|00003380| 65 20 65 78 69 73 74 73 | 20 61 6e 64 20 4f 4b 2c |e exists| and OK,|
|00003390| 20 73 68 61 6c 6c 20 77 | 65 20 64 65 6c 65 74 65 | shall w|e delete|
|000033a0| 20 69 74 20 3f 20 2a 2f | 0a 58 0a 58 09 09 2f 2a | it ? */|.X.X../*|
|000033b0| 20 6e 6f 74 20 69 66 20 | 77 65 20 74 68 6f 75 67 | not if |we thoug|
|000033c0| 68 74 20 65 61 72 6c 69 | 65 72 20 69 74 20 6e 65 |ht earli|er it ne|
|000033d0| 65 64 20 69 74 20 2a 2f | 0a 58 09 09 69 66 20 28 |ed it */|.X..if (|
|000033e0| 6f 6e 5f 6e 6f 64 65 28 | 6e 6f 64 65 2c 20 6e 66 |on_node(|node, nf|
|000033f0| 5f 4e 4f 44 45 4c 45 54 | 45 29 29 0a 58 09 09 7b |_NODELET|E)).X..{|
|00003400| 0a 58 09 09 09 63 64 65 | 62 75 67 28 22 6e 6f 64 |.X...cde|bug("nod|
|00003410| 65 6c 65 74 65 20 66 6c | 61 67 5c 6e 22 29 3b 0a |elete fl|ag\n");.|
|00003420| 58 09 09 09 63 6f 6e 74 | 69 6e 75 65 3b 0a 58 09 |X...cont|inue;.X.|
|00003430| 09 7d 0a 58 0a 58 09 09 | 2f 2a 20 6e 6f 74 20 69 |.}.X.X..|/* not i|
|00003440| 66 20 69 74 20 63 61 6e | 6e 6f 74 20 62 65 20 72 |f it can|not be r|
|00003450| 65 67 65 6e 65 72 61 74 | 65 64 20 61 74 20 61 6c |egenerat|ed at al|
|00003460| 6c 20 2a 2f 0a 58 09 09 | 69 66 20 28 6c 65 6e 67 |l */.X..|if (leng|
|00003470| 74 68 28 6e 6f 64 65 2d | 3e 6e 5f 61 63 74 29 20 |th(node-|>n_act) |
|00003480| 3d 3d 20 30 29 0a 58 09 | 09 7b 0a 58 09 09 09 63 |== 0).X.|.{.X...c|
|00003490| 64 65 62 75 67 28 22 6e | 6f 6e 72 65 67 65 6e 65 |debug("n|onregene|
|000034a0| 72 61 62 6c 65 5c 6e 22 | 29 3b 0a 58 09 09 09 63 |rable\n"|);.X...c|
|000034b0| 6f 6e 74 69 6e 75 65 3b | 0a 58 09 09 7d 0a 58 0a |ontinue;|.X..}.X.|
|000034c0| 58 09 09 2f 2a 20 6e 6f | 74 20 69 66 20 69 74 20 |X../* no|t if it |
|000034d0| 63 61 6e 6e 6f 74 20 62 | 65 20 72 65 67 65 6e 65 |cannot b|e regene|
|000034e0| 72 61 74 65 64 20 61 73 | 20 69 73 20 2a 2f 0a 58 |rated as| is */.X|
|000034f0| 09 09 69 66 20 28 28 6e | 6f 64 65 2d 3e 6e 5f 75 |..if ((n|ode->n_u|
|00003500| 74 69 6d 65 20 3c 20 6e | 6f 64 65 2d 3e 6e 5f 72 |time < n|ode->n_r|
|00003510| 74 69 6d 65 29 20 26 26 | 20 6f 66 66 5f 6e 6f 64 |time) &&| off_nod|
|00003520| 65 28 6e 6f 64 65 2c 20 | 6e 66 5f 4e 45 57 46 49 |e(node, |nf_NEWFI|
|00003530| 4c 45 29 29 0a 58 09 09 | 7b 0a 58 09 09 09 63 64 |LE)).X..|{.X...cd|
|00003540| 65 62 75 67 28 22 6e 6f | 6e 72 65 67 65 6e 65 72 |ebug("no|nregener|
|00003550| 61 62 6c 65 20 61 73 20 | 69 73 5c 6e 22 29 3b 0a |able as |is\n");.|
|00003560| 58 09 09 09 63 6f 6e 74 | 69 6e 75 65 3b 0a 58 09 |X...cont|inue;.X.|
|00003570| 09 7d 0a 58 0a 58 09 09 | 2f 2a 20 6f 72 20 69 66 |.}.X.X..|/* or if|
|00003580| 20 69 74 73 20 61 6e 63 | 65 73 74 6f 72 73 20 61 | its anc|estors a|
|00003590| 72 65 20 6e 6f 74 20 61 | 6c 6c 20 4f 4b 20 2a 2f |re not a|ll OK */|
|000035a0| 0a 58 09 09 66 6f 72 5f | 6c 69 73 74 20 28 70 74 |.X..for_|list (pt|
|000035b0| 72 31 2c 20 6e 6f 64 65 | 2d 3e 6e 5f 6f 6c 64 29 |r1, node|->n_old)|
|000035c0| 0a 58 09 09 7b 0a 58 09 | 09 09 6f 6e 6f 64 65 20 |.X..{.X.|..onode |
|000035d0| 3d 20 28 4e 6f 64 65 20 | 2a 29 20 6c 64 61 74 61 |= (Node |*) ldata|
|000035e0| 28 70 74 72 31 29 3b 0a | 58 09 09 09 69 66 20 28 |(ptr1);.|X...if (|
|000035f0| 21 20 69 73 5f 6f 6b 28 | 6f 6e 6f 64 65 29 29 0a |! is_ok(|onode)).|
|00003600| 58 09 09 09 7b 0a 58 09 | 09 09 09 63 64 65 62 75 |X...{.X.|...cdebu|
|00003610| 67 28 22 61 6e 63 65 73 | 74 6f 72 20 6e 6f 74 20 |g("ances|tor not |
|00003620| 6f 6b 5c 6e 22 29 3b 0a | 58 09 09 09 09 67 6f 74 |ok\n");.|X....got|
|00003630| 6f 20 6e 65 78 74 6e 6f | 64 65 3b 0a 58 09 09 09 |o nextno|de;.X...|
|00003640| 7d 0a 58 09 09 7d 0a 58 | 0a 58 09 09 63 64 65 62 |}.X..}.X|.X..cdeb|
|00003650| 75 67 28 22 44 45 4c 45 | 54 45 44 5c 6e 22 29 3b |ug("DELE|TED\n");|
|00003660| 0a 58 09 09 63 61 6b 65 | 5f 72 65 6d 6f 76 65 28 |.X..cake|_remove(|
|00003670| 6e 6f 64 65 2d 3e 6e 5f | 6e 61 6d 65 29 3b 0a 58 |node->n_|name);.X|
|00003680| 09 0a 58 09 6e 65 78 74 | 6e 6f 64 65 3a 09 3b 0a |..X.next|node:.;.|
|00003690| 58 09 7d 0a 58 7d 0a 53 | 48 41 52 5f 45 4f 46 0a |X.}.X}.S|HAR_EOF.|
|000036a0| 69 66 20 74 65 73 74 20 | 31 32 35 37 38 20 2d 6e |if test |12578 -n|
|000036b0| 65 20 22 60 77 63 20 2d | 63 20 3c 20 27 61 63 74 |e "`wc -|c < 'act|
|000036c0| 2e 63 27 60 22 0a 74 68 | 65 6e 0a 09 65 63 68 6f |.c'`".th|en..echo|
|000036d0| 20 73 68 61 72 3a 20 22 | 65 72 72 6f 72 20 74 72 | shar: "|error tr|
|000036e0| 61 6e 73 6d 69 74 74 69 | 6e 67 20 27 61 63 74 2e |ansmitti|ng 'act.|
|000036f0| 63 27 22 20 27 28 73 68 | 6f 75 6c 64 20 68 61 76 |c'" '(sh|ould hav|
|00003700| 65 20 62 65 65 6e 20 31 | 32 35 37 38 20 63 68 61 |e been 1|2578 cha|
|00003710| 72 61 63 74 65 72 73 29 | 27 0a 66 69 0a 66 69 0a |racters)|'.fi.fi.|
|00003720| 65 63 68 6f 20 73 68 61 | 72 3a 20 22 65 78 74 72 |echo sha|r: "extr|
|00003730| 61 63 74 69 6e 67 20 27 | 63 68 61 73 65 2e 63 27 |acting '|chase.c'|
|00003740| 22 20 27 28 31 33 36 30 | 39 20 63 68 61 72 61 63 |" '(1360|9 charac|
|00003750| 74 65 72 73 29 27 0a 69 | 66 20 74 65 73 74 20 2d |ters)'.i|f test -|
|00003760| 66 20 27 63 68 61 73 65 | 2e 63 27 0a 74 68 65 6e |f 'chase|.c'.then|
|00003770| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 22 77 69 |..echo s|har: "wi|
|00003780| 6c 6c 20 6e 6f 74 20 6f | 76 65 72 2d 77 72 69 74 |ll not o|ver-writ|
|00003790| 65 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |e existi|ng file |
|000037a0| 27 63 68 61 73 65 2e 63 | 27 22 0a 65 6c 73 65 0a |'chase.c|'".else.|
|000037b0| 73 65 64 20 27 73 2f 5e | 58 2f 2f 27 20 3c 3c 20 |sed 's/^|X//' << |
|000037c0| 5c 53 48 41 52 5f 45 4f | 46 20 3e 20 27 63 68 61 |\SHAR_EO|F > 'cha|
|000037d0| 73 65 2e 63 27 0a 58 2f | 2a 0a 58 2a 2a 09 4d 6f |se.c'.X/|*.X**.Mo|
|000037e0| 64 75 6c 65 20 74 6f 20 | 63 68 61 73 65 20 43 61 |dule to |chase Ca|
|000037f0| 6b 65 20 64 65 70 65 6e | 64 65 6e 63 69 65 73 2e |ke depen|dencies.|
|00003800| 0a 58 2a 2f 0a 58 0a 58 | 73 74 61 74 69 63 09 63 |.X*/.X.X|static.c|
|00003810| 68 61 72 0a 58 72 63 73 | 5f 69 64 5b 5d 20 3d 20 |har.Xrcs|_id[] = |
|00003820| 22 24 48 65 61 64 65 72 | 3a 20 2f 6d 69 70 2f 7a |"$Header|: /mip/z|
|00003830| 73 2f 73 72 63 2f 73 79 | 73 2f 63 61 6b 65 2f 52 |s/src/sy|s/cake/R|
|00003840| 43 53 2f 63 68 61 73 65 | 2e 63 2c 76 20 31 2e 31 |CS/chase|.c,v 1.1|
|00003850| 34 20 38 36 2f 30 37 2f | 31 39 20 31 32 3a 32 32 |4 86/07/|19 12:22|
|00003860| 3a 33 39 20 7a 73 20 45 | 78 70 20 24 22 3b 0a 58 |:39 zs E|xp $";.X|
|00003870| 0a 58 23 69 6e 63 6c 75 | 64 65 09 22 63 61 6b 65 |.X#inclu|de."cake|
|00003880| 2e 68 22 0a 58 0a 58 2f | 2a 0a 58 2a 2a 09 54 68 |.h".X.X/|*.X**.Th|
|00003890| 65 20 6d 61 69 6e 20 63 | 68 61 73 69 6e 67 20 66 |e main c|hasing f|
|000038a0| 75 6e 63 74 69 6f 6e 2e | 20 49 74 20 63 68 65 63 |unction.| It chec|
|000038b0| 6b 73 20 61 6c 6c 20 65 | 6e 74 72 69 65 73 20 74 |ks all e|ntries t|
|000038c0| 6f 20 73 65 65 0a 58 2a | 2a 09 69 66 20 74 68 65 |o see.X*|*.if the|
|000038d0| 79 20 64 65 73 63 72 69 | 62 65 20 61 20 64 65 70 |y descri|be a dep|
|000038e0| 65 6e 64 65 6e 63 79 20 | 6f 66 20 74 68 65 20 6e |endency |of the n|
|000038f0| 61 6d 65 2e 20 49 66 20 | 74 68 65 20 73 65 63 6f |ame. If |the seco|
|00003900| 6e 64 20 61 72 67 0a 58 | 2a 2a 09 69 73 20 6e 6f |nd arg.X|**.is no|
|00003910| 74 20 4e 55 4c 4c 2c 20 | 69 74 20 69 73 20 74 61 |t NULL, |it is ta|
|00003920| 6b 65 6e 20 61 73 20 61 | 20 66 69 78 65 64 20 63 |ken as a| fixed c|
|00003930| 68 6f 69 63 65 20 28 62 | 79 20 61 6e 6f 74 68 65 |hoice (b|y anothe|
|00003940| 72 20 64 6f 5f 63 68 61 | 73 65 29 0a 58 2a 2a 09 |r do_cha|se).X**.|
|00003950| 61 73 20 74 6f 20 77 68 | 69 63 68 20 65 6e 74 72 |as to wh|ich entr|
|00003960| 79 20 77 69 6c 6c 20 61 | 63 74 75 61 6c 6c 79 20 |y will a|ctually |
|00003970| 62 65 20 75 73 65 64 20 | 74 6f 20 67 65 6e 65 72 |be used |to gener|
|00003980| 61 74 65 20 74 68 65 20 | 6e 61 6d 65 2e 0a 58 2a |ate the |name..X*|
|00003990| 2a 0a 58 2a 2a 09 54 68 | 65 20 6b 69 6e 64 73 20 |*.X**.Th|e kinds |
|000039a0| 6f 66 20 6e 6f 64 65 73 | 20 72 65 74 75 72 6e 65 |of nodes| returne|
|000039b0| 64 20 62 79 20 64 6f 5f | 63 68 61 73 65 20 61 72 |d by do_|chase ar|
|000039c0| 65 20 61 73 20 66 6f 6c | 6c 6f 77 73 2e 0a 58 2a |e as fol|lows..X*|
|000039d0| 2a 09 4f 4b 20 6d 65 61 | 6e 73 20 74 68 61 74 20 |*.OK mea|ns that |
|000039e0| 6e 6f 20 61 63 74 69 6f | 6e 20 69 73 20 6e 65 65 |no actio|n is nee|
|000039f0| 64 65 64 20 74 6f 20 75 | 70 64 61 74 65 20 74 68 |ded to u|pdate th|
|00003a00| 65 20 6e 61 6d 65 2e 0a | 58 2a 2a 09 43 41 4e 44 |e name..|X**.CAND|
|00003a10| 4f 20 6d 65 61 6e 73 20 | 74 68 61 74 20 74 68 65 |O means |that the|
|00003a20| 20 61 63 74 69 6f 6e 20 | 69 73 20 6b 6e 6f 77 6e | action |is known|
|00003a30| 20 61 6e 64 20 74 68 65 | 72 65 20 69 73 20 6e 6f | and the|re is no|
|00003a40| 20 72 65 61 73 6f 6e 0a | 58 2a 2a 09 77 68 79 20 | reason.|X**.why |
|00003a50| 69 74 20 73 68 6f 75 6c | 64 6e 27 74 20 73 75 63 |it shoul|dn't suc|
|00003a60| 63 65 65 64 2e 20 4e 4f | 57 41 59 20 69 73 20 73 |ceed. NO|WAY is s|
|00003a70| 65 74 20 77 68 65 6e 20 | 6e 65 69 74 68 65 72 20 |et when |neither |
|00003a80| 6f 66 20 74 68 6f 73 65 | 0a 58 2a 2a 09 63 6f 6e |of those|.X**.con|
|00003a90| 64 69 74 69 6f 6e 73 20 | 69 73 20 73 61 74 69 73 |ditions |is satis|
|00003aa0| 66 69 65 64 2e 20 6e 66 | 5f 45 52 52 20 6d 65 61 |fied. nf|_ERR mea|
|00003ab0| 6e 73 20 74 68 61 74 20 | 73 6f 6d 65 20 65 72 72 |ns that |some err|
|00003ac0| 6f 72 20 68 61 73 0a 58 | 2a 2a 09 6f 63 63 75 72 |or has.X|**.occur|
|00003ad0| 72 65 64 3b 20 6e 66 5f | 45 52 52 20 6e 6f 64 65 |red; nf_|ERR node|
|00003ae0| 73 20 61 72 65 20 6e 65 | 76 65 72 20 74 6f 75 63 |s are ne|ver touc|
|00003af0| 68 65 64 20 61 67 61 69 | 6e 3b 20 65 78 63 65 70 |hed agai|n; excep|
|00003b00| 74 20 66 6f 72 0a 58 2a | 2a 09 70 72 69 6e 74 69 |t for.X*|*.printi|
|00003b10| 6e 67 20 74 68 65 20 65 | 72 72 6f 72 20 6d 65 73 |ng the e|rror mes|
|00003b20| 73 61 67 65 73 20 74 68 | 65 6d 73 65 6c 76 65 73 |sages th|emselves|
|00003b30| 2e 20 28 4e 4f 57 41 59 | 20 6e 6f 64 65 73 20 2a |. (NOWAY| nodes *|
|00003b40| 61 72 65 2a 0a 58 2a 2a | 09 74 6f 75 63 68 65 64 |are*.X**|.touched|
|00003b50| 20 62 79 20 61 63 74 2e | 63 20 74 6f 20 75 70 64 | by act.|c to upd|
|00003b60| 61 74 65 20 61 73 20 6d | 61 6e 79 20 61 6e 63 65 |ate as m|any ance|
|00003b70| 73 74 6f 72 73 20 61 73 | 20 70 6f 73 73 69 62 6c |stors as| possibl|
|00003b80| 65 2e 29 0a 58 2a 2a 0a | 58 2a 2a 09 57 68 65 6e |e.).X**.|X**.When|
|00003b90| 65 76 65 72 20 6e 66 5f | 45 52 52 20 69 73 20 6e |ever nf_|ERR is n|
|00003ba0| 6f 74 20 73 65 74 2c 20 | 64 6f 5f 63 68 61 73 65 |ot set, |do_chase|
|00003bb0| 20 73 65 74 73 20 74 68 | 65 20 75 74 69 6d 65 20 | sets th|e utime |
|00003bc0| 66 69 65 6c 64 2c 0a 58 | 2a 2a 09 61 6e 64 20 74 |field,.X|**.and t|
|00003bd0| 68 65 20 72 74 69 6d 65 | 20 66 69 65 6c 64 20 61 |he rtime| field a|
|00003be0| 73 20 77 65 6c 6c 20 69 | 66 20 74 68 65 20 66 69 |s well i|f the fi|
|00003bf0| 6c 65 20 65 78 69 73 74 | 73 2e 0a 58 2a 2f 0a 58 |le exist|s..X*/.X|
|00003c00| 0a 58 64 6f 5f 63 68 61 | 73 65 28 6e 6f 64 65 2c |.Xdo_cha|se(node,|
|00003c10| 20 70 69 63 6b 65 64 29 | 0a 58 72 65 67 09 4e 6f | picked)|.Xreg.No|
|00003c20| 64 65 09 2a 6e 6f 64 65 | 3b 0a 58 72 65 67 09 45 |de.*node|;.Xreg.E|
|00003c30| 6e 74 72 79 09 2a 70 69 | 63 6b 65 64 3b 0a 58 7b |ntry.*pi|cked;.X{|
|00003c40| 0a 58 09 65 78 74 65 72 | 6e 09 09 67 65 74 5f 75 |.X.exter|n..get_u|
|00003c50| 74 69 6d 65 28 29 3b 0a | 58 09 65 78 74 65 72 6e |time();.|X.extern|
|00003c60| 09 74 69 6d 65 5f 74 09 | 63 61 6b 65 5f 67 65 74 |.time_t.|cake_get|
|00003c70| 74 69 6d 65 28 29 3b 0a | 58 09 65 78 74 65 72 6e |time();.|X.extern|
|00003c80| 09 4e 6f 64 65 09 2a 63 | 68 61 73 65 28 29 3b 0a |.Node.*c|hase();.|
|00003c90| 58 09 65 78 74 65 72 6e | 09 4e 6f 64 65 09 2a 63 |X.extern|.Node.*c|
|00003ca0| 68 61 73 65 5f 6e 6f 64 | 65 28 29 3b 0a 58 09 65 |hase_nod|e();.X.e|
|00003cb0| 78 74 65 72 6e 09 74 69 | 6d 65 5f 74 09 70 69 63 |xtern.ti|me_t.pic|
|00003cc0| 6b 5f 74 69 6d 65 28 29 | 3b 0a 58 09 65 78 74 65 |k_time()|;.X.exte|
|00003cd0| 72 6e 09 62 6f 6f 6c 09 | 6d 61 74 63 68 28 29 3b |rn.bool.|match();|
|00003ce0| 0a 58 09 65 78 74 65 72 | 6e 09 62 6f 6f 6c 09 65 |.X.exter|n.bool.e|
|00003cf0| 76 61 6c 28 29 3b 0a 58 | 09 65 78 74 65 72 6e 09 |val();.X|.extern.|
|00003d00| 45 6e 74 72 79 09 2a 67 | 72 6f 75 6e 64 5f 65 6e |Entry.*g|round_en|
|00003d10| 74 72 79 28 29 3b 0a 58 | 09 65 78 74 65 72 6e 09 |try();.X|.extern.|
|00003d20| 54 65 73 74 09 2a 64 65 | 72 65 66 5f 74 65 73 74 |Test.*de|ref_test|
|00003d30| 28 29 3b 0a 58 09 65 78 | 74 65 72 6e 09 09 64 65 |();.X.ex|tern..de|
|00003d40| 72 65 66 5f 65 6e 74 72 | 79 28 29 3b 0a 58 09 65 |ref_entr|y();.X.e|
|00003d50| 78 74 65 72 6e 09 4c 69 | 73 74 09 2a 65 6e 74 72 |xtern.Li|st.*entr|
|00003d60| 69 65 73 3b 0a 58 09 65 | 78 74 65 72 6e 09 63 68 |ies;.X.e|xtern.ch|
|00003d70| 61 72 09 2a 6c 69 73 74 | 5f 6e 61 6d 65 73 28 29 |ar.*list|_names()|
|00003d80| 3b 0a 58 09 45 6e 76 09 | 09 65 6e 76 3b 0a 58 09 |;.X.Env.|.env;.X.|
|00003d90| 72 65 67 09 4c 69 73 74 | 09 2a 70 74 72 2c 20 2a |reg.List|.*ptr, *|
|00003da0| 70 74 72 31 2c 20 2a 70 | 74 72 32 3b 0a 58 09 72 |ptr1, *p|tr2;.X.r|
|00003db0| 65 67 09 4e 6f 64 65 09 | 2a 6e 65 77 6e 6f 64 65 |eg.Node.|*newnode|
|00003dc0| 2c 20 2a 6f 6e 6f 64 65 | 3b 0a 58 09 72 65 67 09 |, *onode|;.X.reg.|
|00003dd0| 45 6e 74 72 79 09 2a 65 | 6e 74 72 79 2c 20 2a 6e |Entry.*e|ntry, *n|
|00003de0| 65 77 65 6e 74 72 79 3b | 0a 58 09 72 65 67 09 50 |ewentry;|.X.reg.P|
|00003df0| 61 74 09 2a 70 61 74 3b | 0a 58 09 72 65 67 09 4c |at.*pat;|.X.reg.L|
|00003e00| 69 73 74 09 2a 65 6e 74 | 72 79 5f 61 6e 61 79 2c |ist.*ent|ry_anay,|
|00003e10| 20 2a 65 6e 74 72 79 5f | 61 79 65 61 3b 09 2f 2a | *entry_|ayea;./*|
|00003e20| 20 6f 66 20 45 6e 74 72 | 79 09 2a 2f 0a 58 09 72 | of Entr|y.*/.X.r|
|00003e30| 65 67 09 4c 69 73 74 09 | 2a 6d 69 73 73 5f 61 6e |eg.List.|*miss_an|
|00003e40| 61 79 2c 20 2a 6d 69 73 | 73 5f 61 79 65 61 3b 09 |ay, *mis|s_ayea;.|
|00003e50| 09 2f 2a 20 6f 66 20 4e | 6f 64 65 09 2a 2f 0a 58 |./* of N|ode.*/.X|
|00003e60| 09 72 65 67 09 4c 69 73 | 74 09 2a 70 6f 74 5f 65 |.reg.Lis|t.*pot_e|
|00003e70| 6e 74 72 79 3b 09 09 2f | 2a 20 6f 66 20 45 6e 74 |ntry;../|* of Ent|
|00003e80| 72 79 09 2a 2f 0a 58 09 | 72 65 67 09 4c 69 73 74 |ry.*/.X.|reg.List|
|00003e90| 09 2a 70 6f 74 5f 70 61 | 74 3b 09 09 2f 2a 20 6f |.*pot_pa|t;../* o|
|00003ea0| 66 20 50 61 74 09 2a 2f | 0a 58 09 72 65 67 09 4c |f Pat.*/|.X.reg.L|
|00003eb0| 69 73 74 09 2a 70 72 6f | 62 65 5f 6f 6c 64 3b 09 |ist.*pro|be_old;.|
|00003ec0| 09 2f 2a 20 6f 66 20 4e | 6f 64 65 09 2a 2f 0a 58 |./* of N|ode.*/.X|
|00003ed0| 09 72 65 67 09 62 6f 6f | 6c 09 66 6f 75 6e 64 2c |.reg.boo|l.found,|
|00003ee0| 20 6d 69 73 73 69 6e 67 | 3b 0a 58 09 72 65 67 09 | missing|;.X.reg.|
|00003ef0| 62 6f 6f 6c 09 73 69 6e | 67 6c 65 74 6f 6e 2c 20 |bool.sin|gleton, |
|00003f00| 6f 72 70 68 61 6e 3b 0a | 58 0a 58 09 70 75 74 5f |orphan;.|X.X.put_|
|00003f10| 74 72 61 69 6c 28 22 64 | 6f 5f 63 68 61 73 65 22 |trail("d|o_chase"|
|00003f20| 2c 20 22 73 74 61 72 74 | 22 29 3b 0a 58 09 63 64 |, "start|");.X.cd|
|00003f30| 65 62 75 67 28 22 63 68 | 61 73 69 6e 67 20 25 73 |ebug("ch|asing %s|
|00003f40| 5c 6e 22 2c 20 6e 6f 64 | 65 2d 3e 6e 5f 6e 61 6d |\n", nod|e->n_nam|
|00003f50| 65 29 3b 0a 58 0a 58 09 | 69 66 20 28 6f 66 66 5f |e);.X.X.|if (off_|
|00003f60| 6e 6f 64 65 28 6e 6f 64 | 65 2c 20 6e 66 5f 45 58 |node(nod|e, nf_EX|
|00003f70| 49 53 54 29 29 0a 58 09 | 09 73 65 74 5f 6e 6f 64 |IST)).X.|.set_nod|
|00003f80| 65 28 6e 6f 64 65 2c 20 | 6e 66 5f 4e 45 57 46 49 |e(node, |nf_NEWFI|
|00003f90| 4c 45 29 3b 0a 58 0a 58 | 09 2f 2a 20 66 69 6e 64 |LE);.X.X|./* find|
|00003fa0| 20 61 6c 6c 20 65 6e 74 | 72 69 65 73 20 77 68 69 | all ent|ries whi|
|00003fb0| 63 68 20 63 6f 75 6c 64 | 20 67 65 6e 65 72 61 74 |ch could| generat|
|00003fc0| 65 20 74 68 69 73 20 6e | 61 6d 65 20 2a 2f 0a 58 |e this n|ame */.X|
|00003fd0| 09 70 6f 74 5f 65 6e 74 | 72 79 20 3d 20 6d 61 6b |.pot_ent|ry = mak|
|00003fe0| 65 6c 69 73 74 30 28 29 | 3b 0a 58 09 70 6f 74 5f |elist0()|;.X.pot_|
|00003ff0| 70 61 74 20 20 20 3d 20 | 6d 61 6b 65 6c 69 73 74 |pat = |makelist|
|00004000| 30 28 29 3b 0a 58 09 66 | 6f 72 5f 6c 69 73 74 20 |0();.X.f|or_list |
|00004010| 28 70 74 72 2c 20 65 6e | 74 72 69 65 73 29 0a 58 |(ptr, en|tries).X|
|00004020| 09 7b 0a 58 09 09 65 6e | 74 72 79 20 3d 20 28 45 |.{.X..en|try = (E|
|00004030| 6e 74 72 79 20 2a 29 20 | 6c 64 61 74 61 28 70 74 |ntry *) |ldata(pt|
|00004040| 72 29 3b 0a 58 09 09 2f | 2a 20 74 72 79 20 65 76 |r);.X../|* try ev|
|00004050| 65 72 79 74 68 69 6e 67 | 20 6f 6e 20 74 68 65 20 |erything| on the |
|00004060| 6c 65 66 74 20 73 69 64 | 65 20 6f 66 20 74 68 65 |left sid|e of the|
|00004070| 20 65 6e 74 72 79 20 2a | 2f 0a 58 09 09 66 6f 72 | entry *|/.X..for|
|00004080| 5f 6c 69 73 74 20 28 70 | 74 72 31 2c 20 65 6e 74 |_list (p|tr1, ent|
|00004090| 72 79 2d 3e 65 5f 6e 65 | 77 29 0a 58 09 09 7b 0a |ry->e_ne|w).X..{.|
|000040a0| 58 09 09 09 70 61 74 20 | 3d 20 28 50 61 74 20 2a |X...pat |= (Pat *|
|000040b0| 29 20 6c 64 61 74 61 28 | 70 74 72 31 29 3b 0a 58 |) ldata(|ptr1);.X|
|000040c0| 09 09 09 69 66 20 28 6d | 61 74 63 68 28 65 6e 76 |...if (m|atch(env|
|000040d0| 2c 20 6e 6f 64 65 2d 3e | 6e 5f 6e 61 6d 65 2c 20 |, node->|n_name, |
|000040e0| 70 61 74 29 29 0a 58 09 | 09 09 7b 0a 58 09 09 09 |pat)).X.|..{.X...|
|000040f0| 09 69 66 20 28 28 6e 65 | 77 65 6e 74 72 79 20 3d |.if ((ne|wentry =|
|00004100| 20 67 72 6f 75 6e 64 5f | 65 6e 74 72 79 28 65 6e | ground_|entry(en|
|00004110| 76 2c 20 65 6e 74 72 79 | 29 29 20 3d 3d 20 28 45 |v, entry|)) == (E|
|00004120| 6e 74 72 79 20 2a 29 20 | 4e 55 4c 4c 29 0a 58 09 |ntry *) |NULL).X.|
|00004130| 09 09 09 7b 0a 58 09 09 | 09 09 09 73 70 72 69 6e |...{.X..|...sprin|
|00004140| 74 66 28 73 63 72 61 74 | 63 68 62 75 66 2c 20 22 |tf(scrat|chbuf, "|
|00004150| 63 61 6e 6e 6f 74 20 70 | 65 72 66 6f 72 6d 20 73 |cannot p|erform s|
|00004160| 75 62 73 74 69 74 75 74 | 69 6f 6e 73 20 6f 6e 20 |ubstitut|ions on |
|00004170| 65 6e 74 72 79 20 66 6f | 72 20 25 73 22 2c 0a 58 |entry fo|r %s",.X|
|00004180| 09 09 09 09 09 09 6e 6f | 64 65 2d 3e 6e 5f 6e 61 |......no|de->n_na|
|00004190| 6d 65 29 3b 0a 58 09 09 | 09 09 09 61 64 64 5f 65 |me);.X..|...add_e|
|000041a0| 72 72 6f 72 28 6e 6f 64 | 65 2c 20 6e 65 77 5f 6e |rror(nod|e, new_n|
|000041b0| 61 6d 65 28 73 63 72 61 | 74 63 68 62 75 66 29 2c |ame(scra|tchbuf),|
|000041c0| 20 4c 4e 55 4c 4c 2c 20 | 54 52 55 45 29 3b 0a 58 | LNULL, |TRUE);.X|
|000041d0| 09 09 09 09 09 67 6f 74 | 6f 20 65 6e 64 3b 0a 58 |.....got|o end;.X|
|000041e0| 09 09 09 09 7d 0a 58 0a | 58 23 69 66 64 65 66 09 |....}.X.|X#ifdef.|
|000041f0| 43 41 4b 45 44 45 42 55 | 47 0a 58 09 09 09 09 69 |CAKEDEBU|G.X....i|
|00004200| 66 20 28 65 6e 74 72 79 | 64 65 62 75 67 29 0a 58 |f (entry|debug).X|
|00004210| 09 09 09 09 7b 0a 58 09 | 09 09 09 09 70 72 69 6e |....{.X.|....prin|
|00004220| 74 66 28 22 41 70 70 6c | 69 63 61 62 6c 65 20 65 |tf("Appl|icable e|
|00004230| 6e 74 72 79 5c 6e 22 29 | 3b 0a 58 09 09 09 09 09 |ntry\n")|;.X.....|
|00004240| 70 72 69 6e 74 5f 65 6e | 74 72 79 28 6e 65 77 65 |print_en|try(newe|
|00004250| 6e 74 72 79 29 3b 0a 58 | 09 09 09 09 7d 0a 58 23 |ntry);.X|....}.X#|
|00004260| 65 6e 64 69 66 0a 58 0a | 58 09 09 09 09 61 64 64 |endif.X.|X....add|
|00004270| 74 61 69 6c 28 70 6f 74 | 5f 65 6e 74 72 79 2c 20 |tail(pot|_entry, |
|00004280| 6e 65 77 65 6e 74 72 79 | 29 3b 09 2f 2a 20 6e 61 |newentry|);./* na|
|00004290| 20 2a 2f 0a 58 09 09 09 | 09 61 64 64 74 61 69 6c | */.X...|.addtail|
|000042a0| 28 70 6f 74 5f 70 61 74 | 2c 20 70 61 74 29 3b 09 |(pot_pat|, pat);.|
|000042b0| 09 2f 2a 20 6e 61 20 2a | 2f 0a 58 09 09 09 09 62 |./* na *|/.X....b|
|000042c0| 72 65 61 6b 3b 0a 58 09 | 09 09 7d 0a 58 09 09 7d |reak;.X.|..}.X..}|
|000042d0| 0a 58 09 7d 0a 58 0a 58 | 09 63 64 65 62 75 67 28 |.X.}.X.X|.cdebug(|
|000042e0| 22 25 73 3a 20 25 64 20 | 70 6f 74 65 6e 74 69 61 |"%s: %d |potentia|
|000042f0| 6c 73 5c 6e 22 2c 20 6e | 6f 64 65 2d 3e 6e 5f 6e |ls\n", n|ode->n_n|
|00004300| 61 6d 65 2c 20 6c 65 6e | 67 74 68 28 70 6f 74 5f |ame, len|gth(pot_|
|00004310| 65 6e 74 72 79 29 29 3b | 0a 58 0a 58 09 2f 2a 20 |entry));|.X.X./* |
|00004320| 66 69 6e 64 20 6f 75 74 | 20 77 68 69 63 68 20 74 |find out| which t|
|00004330| 65 73 74 73 20 61 72 65 | 20 73 61 74 69 73 66 69 |ests are| satisfi|
|00004340| 65 64 20 2a 2f 0a 58 09 | 65 6e 74 72 79 5f 61 6e |ed */.X.|entry_an|
|00004350| 61 79 20 3d 20 6d 61 6b | 65 6c 69 73 74 30 28 29 |ay = mak|elist0()|
|00004360| 3b 0a 58 09 65 6e 74 72 | 79 5f 61 79 65 61 20 3d |;.X.entr|y_ayea =|
|00004370| 20 6d 61 6b 65 6c 69 73 | 74 30 28 29 3b 0a 58 09 | makelis|t0();.X.|
|00004380| 66 6f 72 5f 32 6c 69 73 | 74 20 28 70 74 72 31 2c |for_2lis|t (ptr1,|
|00004390| 20 70 74 72 32 2c 20 70 | 6f 74 5f 65 6e 74 72 79 | ptr2, p|ot_entry|
|000043a0| 2c 20 70 6f 74 5f 70 61 | 74 29 0a 58 09 7b 0a 58 |, pot_pa|t).X.{.X|
|000043b0| 09 09 65 6e 74 72 79 20 | 3d 20 28 45 6e 74 72 79 |..entry |= (Entry|
|000043c0| 20 2a 29 20 6c 64 61 74 | 61 28 70 74 72 31 29 3b | *) ldat|a(ptr1);|
|000043d0| 0a 58 09 09 70 61 74 20 | 3d 20 28 50 61 74 20 2a |.X..pat |= (Pat *|
|000043e0| 29 20 6c 64 61 74 61 28 | 70 74 72 32 29 3b 0a 58 |) ldata(|ptr2);.X|
|000043f0| 0a 58 09 09 66 6f 72 5f | 6c 69 73 74 20 28 70 74 |.X..for_|list (pt|
|00004400| 72 2c 20 65 6e 74 72 79 | 2d 3e 65 5f 77 68 65 6e |r, entry|->e_when|
|00004410| 29 0a 58 09 09 7b 0a 58 | 09 09 09 72 65 67 09 4e |).X..{.X|...reg.N|
|00004420| 6f 64 65 09 2a 77 68 65 | 6e 6e 6f 64 65 3b 0a 58 |ode.*whe|nnode;.X|
|00004430| 09 09 09 72 65 67 09 50 | 61 74 09 2a 77 68 65 6e |...reg.P|at.*when|
|00004440| 70 61 74 3b 0a 58 0a 58 | 09 09 09 77 68 65 6e 70 |pat;.X.X|...whenp|
|00004450| 61 74 20 20 3d 20 28 50 | 61 74 20 2a 29 20 6c 64 |at = (P|at *) ld|
|00004460| 61 74 61 28 70 74 72 29 | 3b 0a 58 09 09 09 77 68 |ata(ptr)|;.X...wh|
|00004470| 65 6e 6e 6f 64 65 20 3d | 20 63 68 61 73 65 28 77 |ennode =| chase(w|
|00004480| 68 65 6e 70 61 74 2d 3e | 70 5f 73 74 72 2c 20 77 |henpat->|p_str, w|
|00004490| 68 65 6e 70 61 74 2d 3e | 70 5f 66 6c 61 67 2c 20 |henpat->|p_flag, |
|000044a0| 28 45 6e 74 72 79 20 2a | 29 20 4e 55 4c 4c 29 3b |(Entry *|) NULL);|
|000044b0| 0a 58 09 09 09 69 66 20 | 28 6f 66 66 5f 6e 6f 64 |.X...if |(off_nod|
|000044c0| 65 28 77 68 65 6e 6e 6f | 64 65 2c 20 6e 66 5f 45 |e(whenno|de, nf_E|
|000044d0| 52 52 29 29 0a 58 09 09 | 09 7b 0a 58 09 09 09 09 |RR)).X..|.{.X....|
|000044e0| 69 66 20 28 69 73 5f 6f | 6b 28 77 68 65 6e 6e 6f |if (is_o|k(whenno|
|000044f0| 64 65 29 29 0a 58 09 09 | 09 09 09 63 6f 6e 74 69 |de)).X..|...conti|
|00004500| 6e 75 65 3b 0a 58 0a 58 | 09 09 09 09 69 66 20 28 |nue;.X.X|....if (|
|00004510| 6e 66 6c 61 67 20 26 26 | 20 6f 66 66 5f 6e 6f 64 |nflag &&| off_nod|
|00004520| 65 28 77 68 65 6e 6e 6f | 64 65 2c 20 6e 66 5f 57 |e(whenno|de, nf_W|
|00004530| 41 52 4e 45 44 29 29 0a | 58 09 09 09 09 7b 0a 58 |ARNED)).|X....{.X|
|00004540| 09 09 09 09 09 70 72 69 | 6e 74 66 28 22 63 61 6b |.....pri|ntf("cak|
|00004550| 65 20 2d 6e 3a 20 77 61 | 72 6e 69 6e 67 2c 20 6e |e -n: wa|rning, n|
|00004560| 65 65 64 20 74 6f 20 6d | 61 6b 65 20 25 73 20 74 |eed to m|ake %s t|
|00004570| 6f 20 66 69 6e 64 20 64 | 65 70 65 6e 64 65 6e 63 |o find d|ependenc|
|00004580| 69 65 73 5c 6e 22 2c 0a | 58 09 09 09 09 09 09 77 |ies\n",.|X......w|
|00004590| 68 65 6e 70 61 74 2d 3e | 70 5f 73 74 72 29 3b 0a |henpat->|p_str);.|
|000045a0| 58 09 09 09 09 09 73 65 | 74 5f 6e 6f 64 65 28 77 |X.....se|t_node(w|
|000045b0| 68 65 6e 6e 6f 64 65 2c | 20 6e 66 5f 57 41 52 4e |hennode,| nf_WARN|
|000045c0| 45 44 29 3b 0a 58 09 09 | 09 09 7d 0a 58 0a 58 09 |ED);.X..|..}.X.X.|
|000045d0| 09 09 09 75 70 64 61 74 | 65 28 77 68 65 6e 6e 6f |...updat|e(whenno|
|000045e0| 64 65 2c 20 31 30 30 2c | 20 54 52 55 45 29 3b 0a |de, 100,| TRUE);.|
|000045f0| 58 09 09 09 7d 0a 58 0a | 58 09 09 09 69 66 20 28 |X...}.X.|X...if (|
|00004600| 6f 6e 5f 6e 6f 64 65 28 | 77 68 65 6e 6e 6f 64 65 |on_node(|whennode|
|00004610| 2c 20 6e 66 5f 45 52 52 | 29 20 7c 7c 20 21 20 69 |, nf_ERR|) || ! i|
|00004620| 73 5f 6f 6b 28 77 68 65 | 6e 6e 6f 64 65 29 29 0a |s_ok(whe|nnode)).|
|00004630| 58 09 09 09 7b 0a 58 09 | 09 09 09 73 70 72 69 6e |X...{.X.|...sprin|
|00004640| 74 66 28 73 63 72 61 74 | 63 68 62 75 66 2c 20 22 |tf(scrat|chbuf, "|
|00004650| 63 61 6e 6e 6f 74 20 66 | 69 6e 64 20 6f 75 74 20 |cannot f|ind out |
|00004660| 69 66 20 65 6e 74 72 79 | 20 61 70 70 6c 69 65 73 |if entry| applies|
|00004670| 20 74 6f 20 25 73 22 2c | 0a 58 09 09 09 09 09 6e | to %s",|.X.....n|
|00004680| 6f 64 65 2d 3e 6e 5f 6e | 61 6d 65 29 3b 0a 58 09 |ode->n_n|ame);.X.|
|00004690| 09 09 09 61 64 64 5f 65 | 72 72 6f 72 28 6e 6f 64 |...add_e|rror(nod|
|000046a0| 65 2c 20 6e 65 77 5f 6e | 61 6d 65 28 73 63 72 61 |e, new_n|ame(scra|
|000046b0| 74 63 68 62 75 66 29 2c | 20 6d 61 6b 65 6c 69 73 |tchbuf),| makelis|
|000046c0| 74 28 77 68 65 6e 6e 6f | 64 65 29 2c 20 54 52 55 |t(whenno|de), TRU|
|000046d0| 45 29 3b 0a 58 09 09 09 | 09 72 65 74 75 72 6e 3b |E);.X...|.return;|
|000046e0| 0a 58 09 09 09 7d 0a 58 | 09 09 7d 0a 58 0a 58 23 |.X...}.X|..}.X.X#|
|000046f0| 69 66 64 65 66 09 43 41 | 4b 45 44 45 42 55 47 0a |ifdef.CA|KEDEBUG.|
|00004700| 58 09 09 69 66 20 28 65 | 6e 74 72 79 64 65 62 75 |X..if (e|ntrydebu|
|00004710| 67 29 0a 58 09 09 7b 0a | 58 09 09 09 70 72 69 6e |g).X..{.|X...prin|
|00004720| 74 66 28 22 61 62 6f 75 | 74 20 74 6f 20 74 65 73 |tf("abou|t to tes|
|00004730| 74 20 63 6f 6e 64 69 74 | 69 6f 6e 5c 6e 22 29 3b |t condit|ion\n");|
|00004740| 0a 58 09 09 09 70 72 69 | 6e 74 5f 65 6e 74 72 79 |.X...pri|nt_entry|
|00004750| 28 65 6e 74 72 79 29 3b | 0a 58 09 09 7d 0a 58 23 |(entry);|.X..}.X#|
|00004760| 65 6e 64 69 66 0a 58 0a | 58 09 09 65 6e 74 72 79 |endif.X.|X..entry|
|00004770| 2d 3e 65 5f 63 6f 6e 64 | 20 3d 20 64 65 72 65 66 |->e_cond| = deref|
|00004780| 5f 74 65 73 74 28 65 6e | 74 72 79 2d 3e 65 5f 63 |_test(en|try->e_c|
|00004790| 6f 6e 64 29 3b 0a 58 09 | 09 69 66 20 28 21 20 65 |ond);.X.|.if (! e|
|000047a0| 76 61 6c 28 6e 6f 64 65 | 2c 20 65 6e 74 72 79 2d |val(node|, entry-|
|000047b0| 3e 65 5f 63 6f 6e 64 2c | 20 65 6e 76 29 29 0a 58 |>e_cond,| env)).X|
|000047c0| 09 09 7b 0a 58 09 09 09 | 63 64 65 62 75 67 28 22 |..{.X...|cdebug("|
|000047d0| 63 6f 6e 64 69 74 69 6f | 6e 20 46 41 4c 53 45 5c |conditio|n FALSE\|
|000047e0| 6e 22 29 3b 0a 58 09 09 | 09 63 6f 6e 74 69 6e 75 |n");.X..|.continu|
|000047f0| 65 3b 0a 58 09 09 7d 0a | 58 0a 58 09 09 2f 2a 20 |e;.X..}.|X.X../* |
|00004800| 68 65 72 65 20 77 65 20 | 6b 6e 6f 77 20 74 68 61 |here we |know tha|
|00004810| 74 20 74 68 69 73 20 65 | 6e 74 72 79 20 61 70 70 |t this e|ntry app|
|00004820| 6c 69 65 73 20 2a 2f 0a | 58 09 09 64 65 72 65 66 |lies */.|X..deref|
|00004830| 5f 65 6e 74 72 79 28 65 | 6e 76 2c 20 65 6e 74 72 |_entry(e|nv, entr|
|00004840| 79 29 3b 0a 58 0a 58 09 | 09 69 66 20 28 4c 66 6c |y);.X.X.|.if (Lfl|
|00004850| 61 67 29 0a 58 09 09 7b | 0a 58 09 09 09 66 6f 72 |ag).X..{|.X...for|
|00004860| 5f 6c 69 73 74 20 28 70 | 74 72 2c 20 65 6e 74 72 |_list (p|tr, entr|
|00004870| 79 2d 3e 65 5f 6f 6c 64 | 29 0a 58 09 09 09 7b 0a |y->e_old|).X...{.|
|00004880| 58 09 09 09 09 72 65 67 | 09 50 61 74 09 2a 6f 70 |X....reg|.Pat.*op|
|00004890| 61 74 3b 0a 58 0a 58 09 | 09 09 09 6f 70 61 74 20 |at;.X.X.|...opat |
|000048a0| 3d 20 28 50 61 74 20 2a | 29 20 6c 64 61 74 61 28 |= (Pat *|) ldata(|
|000048b0| 70 74 72 29 3b 0a 58 09 | 09 09 09 69 66 20 28 73 |ptr);.X.|...if (s|
|000048c0| 74 72 65 71 28 6e 6f 64 | 65 2d 3e 6e 5f 6e 61 6d |treq(nod|e->n_nam|
|000048d0| 65 2c 20 6f 70 61 74 2d | 3e 70 5f 73 74 72 29 29 |e, opat-|>p_str))|
|000048e0| 0a 58 09 09 09 09 7b 0a | 58 09 09 09 09 09 63 64 |.X....{.|X.....cd|
|000048f0| 65 62 75 67 28 22 66 6f | 75 6e 64 20 6c 6f 6f 70 |ebug("fo|und loop|
|00004900| 20 69 6e 20 65 6e 74 72 | 79 20 61 74 20 25 73 5c | in entr|y at %s\|
|00004910| 6e 22 2c 20 6e 6f 64 65 | 2d 3e 6e 5f 6e 61 6d 65 |n", node|->n_name|
|00004920| 29 3b 0a 58 09 09 09 09 | 09 63 6f 6e 74 69 6e 75 |);.X....|.continu|
|00004930| 65 3b 0a 58 09 09 09 09 | 7d 0a 58 09 09 09 7d 0a |e;.X....|}.X...}.|
|00004940| 58 09 09 7d 0a 58 0a 58 | 09 09 6e 6f 64 65 2d 3e |X..}.X.X|..node->|
|00004950| 6e 5f 66 6c 61 67 20 7c | 3d 20 70 61 74 2d 3e 70 |n_flag ||= pat->p|
|00004960| 5f 66 6c 61 67 3b 0a 58 | 09 09 69 66 20 28 6c 65 |_flag;.X|..if (le|
|00004970| 6e 67 74 68 28 65 6e 74 | 72 79 2d 3e 65 5f 61 63 |ngth(ent|ry->e_ac|
|00004980| 74 29 20 3d 3d 20 30 29 | 0a 58 09 09 09 61 64 64 |t) == 0)|.X...add|
|00004990| 74 61 69 6c 28 65 6e 74 | 72 79 5f 61 6e 61 79 2c |tail(ent|ry_anay,|
|000049a0| 20 65 6e 74 72 79 29 3b | 09 2f 2a 20 6e 6f 20 61 | entry);|./* no a|
|000049b0| 73 73 69 67 6d 65 6e 74 | 20 2a 2f 0a 58 09 09 65 |ssigment| */.X..e|
|000049c0| 6c 73 65 0a 58 09 09 09 | 61 64 64 74 61 69 6c 28 |lse.X...|addtail(|
|000049d0| 65 6e 74 72 79 5f 61 79 | 65 61 2c 20 65 6e 74 72 |entry_ay|ea, entr|
|000049e0| 79 29 3b 09 2f 2a 20 6e | 6f 20 61 73 73 69 67 6d |y);./* n|o assigm|
|000049f0| 65 6e 74 20 2a 2f 0a 58 | 09 7d 0a 58 0a 58 09 69 |ent */.X|.}.X.X.i|
|00004a00| 66 20 28 6f 6e 5f 6e 6f | 64 65 28 6e 6f 64 65 2c |f (on_no|de(node,|
|00004a10| 20 6e 66 5f 45 52 52 29 | 29 0a 58 09 09 72 65 74 | nf_ERR)|).X..ret|
|00004a20| 75 72 6e 3b 0a 58 0a 58 | 09 63 64 65 62 75 67 28 |urn;.X.X|.cdebug(|
|00004a30| 22 25 73 3a 20 6e 6f 20 | 61 63 74 69 6f 6e 3a 20 |"%s: no |action: |
|00004a40| 25 64 2c 20 77 69 74 68 | 20 61 63 74 69 6f 6e 73 |%d, with| actions|
|00004a50| 3a 20 25 64 5c 6e 22 2c | 0a 58 09 09 6e 6f 64 65 |: %d\n",|.X..node|
|00004a60| 2d 3e 6e 5f 6e 61 6d 65 | 2c 20 6c 65 6e 67 74 68 |->n_name|, length|
|00004a70| 28 65 6e 74 72 79 5f 61 | 6e 61 79 29 2c 20 6c 65 |(entry_a|nay), le|
|00004a80| 6e 67 74 68 28 65 6e 74 | 72 79 5f 61 79 65 61 29 |ngth(ent|ry_ayea)|
|00004a90| 29 3b 0a 58 0a 58 09 2f | 2a 20 41 6c 6c 20 65 6e |);.X.X./|* All en|
|00004aa0| 74 72 69 65 73 20 63 6f | 6e 73 69 64 65 72 65 64 |tries co|nsidered|
|00004ab0| 20 66 72 6f 6d 20 6e 6f | 77 20 6f 6e 20 61 72 65 | from no|w on are|
|00004ac0| 20 67 72 6f 75 6e 64 20 | 2a 2f 0a 58 0a 58 09 2f | ground |*/.X.X./|
|00004ad0| 2a 20 73 65 65 20 69 66 | 20 74 68 65 20 66 69 6c |* see if| the fil|
|00004ae0| 65 20 69 73 20 61 6e 20 | 6f 72 69 67 69 6e 61 6c |e is an |original|
|00004af0| 20 2a 2f 0a 58 09 69 66 | 20 28 6c 65 6e 67 74 68 | */.X.if| (length|
|00004b00| 28 65 6e 74 72 79 5f 61 | 6e 61 79 29 20 3d 3d 20 |(entry_a|nay) == |
|00004b10| 30 20 26 26 20 6c 65 6e | 67 74 68 28 65 6e 74 72 |0 && len|gth(entr|
|00004b20| 79 5f 61 79 65 61 29 20 | 3d 3d 20 30 29 0a 58 09 |y_ayea) |== 0).X.|
|00004b30| 7b 0a 58 09 09 69 66 20 | 28 6f 66 66 5f 6e 6f 64 |{.X..if |(off_nod|
|00004b40| 65 28 6e 6f 64 65 2c 20 | 6e 66 5f 45 58 49 53 54 |e(node, |nf_EXIST|
|00004b50| 29 29 0a 58 09 09 7b 0a | 58 09 09 09 63 64 65 62 |)).X..{.|X...cdeb|
|00004b60| 75 67 28 22 25 73 3a 20 | 6e 6f 77 61 79 5c 6e 22 |ug("%s: |noway\n"|
|00004b70| 2c 20 6e 6f 64 65 2d 3e | 6e 5f 6e 61 6d 65 29 3b |, node->|n_name);|
|00004b80| 0a 58 09 09 09 6e 6f 64 | 65 2d 3e 6e 5f 6b 69 6e |.X...nod|e->n_kin|
|00004b90| 64 20 20 3d 20 6e 5f 4e | 4f 57 41 59 3b 0a 58 09 |d = n_N|OWAY;.X.|
|00004ba0| 09 09 6e 6f 64 65 2d 3e | 6e 5f 75 74 69 6d 65 20 |..node->|n_utime |
|00004bb0| 3d 20 47 45 4e 45 53 49 | 53 3b 0a 58 09 09 09 73 |= GENESI|S;.X...s|
|00004bc0| 70 72 69 6e 74 66 28 73 | 63 72 61 74 63 68 62 75 |printf(s|cratchbu|
|00004bd0| 66 2c 20 22 62 61 73 65 | 20 66 69 6c 65 20 25 73 |f, "base| file %s|
|00004be0| 20 64 6f 65 73 20 6e 6f | 74 20 65 78 69 73 74 22 | does no|t exist"|
|00004bf0| 2c 20 6e 6f 64 65 2d 3e | 6e 5f 6e 61 6d 65 29 3b |, node->|n_name);|
|00004c00| 0a 58 09 09 09 61 64 64 | 5f 65 72 72 6f 72 28 6e |.X...add|_error(n|
|00004c10| 6f 64 65 2c 20 6e 65 77 | 5f 6e 61 6d 65 28 73 63 |ode, new|_name(sc|
|00004c20| 72 61 74 63 68 62 75 66 | 29 2c 20 4c 4e 55 4c 4c |ratchbuf|), LNULL|
|00004c30| 2c 20 46 41 4c 53 45 29 | 3b 0a 58 09 09 09 67 6f |, FALSE)|;.X...go|
|00004c40| 74 6f 20 65 6e 64 3b 0a | 58 09 09 7d 0a 58 0a 58 |to end;.|X..}.X.X|
|00004c50| 09 09 73 65 74 5f 6e 6f | 64 65 28 6e 6f 64 65 2c |..set_no|de(node,|
|00004c60| 20 6e 66 5f 4f 52 49 47 | 29 3b 0a 58 09 09 63 64 | nf_ORIG|);.X..cd|
|00004c70| 65 62 75 67 28 22 25 73 | 3a 20 6f 72 69 67 20 6f |ebug("%s|: orig o|
|00004c80| 6b 5c 6e 22 2c 20 6e 6f | 64 65 2d 3e 6e 5f 6e 61 |k\n", no|de->n_na|
|00004c90| 6d 65 29 3b 0a 58 09 09 | 6e 6f 64 65 2d 3e 6e 5f |me);.X..|node->n_|
|00004ca0| 6b 69 6e 64 20 20 3d 20 | 6e 5f 4f 4b 3b 0a 58 09 |kind = |n_OK;.X.|
|00004cb0| 09 6e 6f 64 65 2d 3e 6e | 5f 75 74 69 6d 65 20 3d |.node->n|_utime =|
|00004cc0| 20 6e 6f 64 65 2d 3e 6e | 5f 72 74 69 6d 65 3b 0a | node->n|_rtime;.|
|00004cd0| 58 09 09 67 6f 74 6f 20 | 65 6e 64 3b 0a 58 09 7d |X..goto |end;.X.}|
|00004ce0| 0a 58 0a 58 09 2f 2a 20 | 73 65 65 20 74 6f 20 61 |.X.X./* |see to a|
|00004cf0| 63 74 69 6f 6e 6c 65 73 | 73 20 64 65 70 65 6e 64 |ctionles|s depend|
|00004d00| 65 6e 63 69 65 73 20 2a | 2f 0a 58 09 6d 69 73 73 |encies *|/.X.miss|
|00004d10| 69 6e 67 20 3d 20 46 41 | 4c 53 45 3b 0a 58 09 6d |ing = FA|LSE;.X.m|
|00004d20| 69 73 73 5f 61 6e 61 79 | 20 3d 20 4e 55 4c 4c 3b |iss_anay| = NULL;|
|00004d30| 0a 58 09 66 6f 72 5f 6c | 69 73 74 20 28 70 74 72 |.X.for_l|ist (ptr|
|00004d40| 2c 20 65 6e 74 72 79 5f | 61 6e 61 79 29 0a 58 09 |, entry_|anay).X.|
|00004d50| 7b 0a 58 09 09 65 6e 74 | 72 79 20 3d 20 28 45 6e |{.X..ent|ry = (En|
|00004d60| 74 72 79 20 2a 29 20 6c | 64 61 74 61 28 70 74 72 |try *) l|data(ptr|
|00004d70| 29 3b 0a 58 09 09 66 6f | 72 5f 6c 69 73 74 20 28 |);.X..fo|r_list (|
|00004d80| 70 74 72 31 2c 20 65 6e | 74 72 79 2d 3e 65 5f 6f |ptr1, en|try->e_o|
|00004d90| 6c 64 29 0a 58 09 09 7b | 0a 58 09 09 09 70 61 74 |ld).X..{|.X...pat|
|00004da0| 20 3d 20 28 50 61 74 20 | 2a 29 20 6c 64 61 74 61 | = (Pat |*) ldata|
|00004db0| 28 70 74 72 31 29 3b 0a | 58 09 09 09 6e 65 77 6e |(ptr1);.|X...newn|
|00004dc0| 6f 64 65 20 3d 20 63 68 | 61 73 65 28 70 61 74 2d |ode = ch|ase(pat-|
|00004dd0| 3e 70 5f 73 74 72 2c 20 | 70 61 74 2d 3e 70 5f 66 |>p_str, |pat->p_f|
|00004de0| 6c 61 67 2c 20 28 45 6e | 74 72 79 20 2a 29 20 4e |lag, (En|try *) N|
|00004df0| 55 4c 4c 29 3b 0a 58 09 | 09 09 69 66 20 28 6f 6e |ULL);.X.|..if (on|
|00004e00| 5f 6e 6f 64 65 28 6e 65 | 77 6e 6f 64 65 2c 20 6e |_node(ne|wnode, n|
|00004e10| 66 5f 45 52 52 29 20 7c | 7c 20 69 73 5f 6e 6f 77 |f_ERR) ||| is_now|
|00004e20| 61 79 28 6e 65 77 6e 6f | 64 65 29 29 0a 58 09 09 |ay(newno|de)).X..|
|00004e30| 09 7b 0a 58 09 09 09 09 | 6d 69 73 73 69 6e 67 20 |.{.X....|missing |
|00004e40| 3d 20 54 52 55 45 3b 0a | 58 09 09 09 09 6d 69 73 |= TRUE;.|X....mis|
|00004e50| 73 5f 61 6e 61 79 20 3d | 20 61 64 64 74 61 69 6c |s_anay =| addtail|
|00004e60| 28 6d 69 73 73 5f 61 6e | 61 79 2c 20 6e 65 77 6e |(miss_an|ay, newn|
|00004e70| 6f 64 65 29 3b 0a 58 09 | 09 09 7d 0a 58 0a 58 09 |ode);.X.|..}.X.X.|
|00004e80| 09 09 61 64 64 74 61 69 | 6c 28 6e 6f 64 65 2d 3e |..addtai|l(node->|
|00004e90| 6e 5f 6f 6c 64 2c 20 6e | 65 77 6e 6f 64 65 29 3b |n_old, n|ewnode);|
|00004ea0| 09 2f 2a 20 6e 61 20 2a | 2f 0a 58 09 09 7d 0a 58 |./* na *|/.X..}.X|
|00004eb0| 09 7d 0a 58 0a 58 09 63 | 64 65 62 75 67 28 22 25 |.}.X.X.c|debug("%|
|00004ec0| 73 3a 20 75 6e 63 6f 6e | 64 69 74 69 6f 6e 61 6c |s: uncon|ditional|
|00004ed0| 20 64 65 70 65 6e 64 65 | 6e 63 69 65 73 2c 20 25 | depende|ncies, %|
|00004ee0| 73 5c 6e 22 2c 0a 58 09 | 09 6e 6f 64 65 2d 3e 6e |s\n",.X.|.node->n|
|00004ef0| 5f 6e 61 6d 65 2c 20 6d | 69 73 73 69 6e 67 3f 20 |_name, m|issing? |
|00004f00| 22 73 6f 6d 65 20 6d 69 | 73 73 69 6e 67 22 3a 20 |"some mi|ssing": |
|00004f10| 22 61 6c 6c 20 74 68 65 | 72 65 22 29 3b 0a 58 0a |"all the|re");.X.|
|00004f20| 58 09 2f 2a 0a 58 09 2a | 2a 09 49 66 20 6e 65 63 |X./*.X.*|*.If nec|
|00004f30| 65 73 73 61 72 79 2c 20 | 63 68 6f 6f 73 65 20 61 |essary, |choose a|
|00004f40| 20 66 65 61 73 69 62 6c | 65 20 61 63 74 69 6f 6e | feasibl|e action|
|00004f50| 20 64 65 70 65 6e 64 65 | 6e 63 79 2e 0a 58 09 2a | depende|ncy..X.*|
|00004f60| 2a 09 48 6f 77 65 76 65 | 72 2c 20 69 66 20 74 68 |*.Howeve|r, if th|
|00004f70| 65 72 65 20 69 73 20 6f | 6e 6c 79 20 6f 6e 65 2c |ere is o|nly one,|
|00004f80| 20 73 65 6c 65 63 74 20 | 69 74 20 65 76 65 6e 20 | select |it even |
|00004f90| 69 66 0a 58 09 2a 2a 09 | 69 74 20 69 73 20 6e 6f |if.X.**.|it is no|
|00004fa0| 74 20 66 65 61 73 69 62 | 6c 65 2e 0a 58 09 2a 2f |t feasib|le..X.*/|
|00004fb0| 0a 58 0a 58 09 66 6f 75 | 6e 64 20 3d 20 46 41 4c |.X.X.fou|nd = FAL|
|00004fc0| 53 45 3b 0a 58 09 6d 69 | 73 73 5f 61 79 65 61 20 |SE;.X.mi|ss_ayea |
|00004fd0| 3d 20 4e 55 4c 4c 3b 0a | 58 09 69 66 20 28 70 69 |= NULL;.|X.if (pi|
|00004fe0| 63 6b 65 64 20 3d 3d 20 | 28 45 6e 74 72 79 20 2a |cked == |(Entry *|
|00004ff0| 29 20 4e 55 4c 4c 29 0a | 58 09 7b 0a 58 09 09 73 |) NULL).|X.{.X..s|
|00005000| 69 6e 67 6c 65 74 6f 6e | 20 3d 20 28 6c 65 6e 67 |ingleton| = (leng|
|00005010| 74 68 28 65 6e 74 72 79 | 5f 61 79 65 61 29 20 3d |th(entry|_ayea) =|
|00005020| 3d 20 31 29 3b 0a 58 09 | 09 6f 72 70 68 61 6e 20 |= 1);.X.|.orphan |
|00005030| 20 20 20 3d 20 28 6c 65 | 6e 67 74 68 28 65 6e 74 | = (le|ngth(ent|
|00005040| 72 79 5f 61 79 65 61 29 | 20 3d 3d 20 30 29 3b 0a |ry_ayea)| == 0);.|
|00005050| 58 0a 58 09 09 66 6f 72 | 5f 6c 69 73 74 20 28 70 |X.X..for|_list (p|
|00005060| 74 72 2c 20 65 6e 74 72 | 79 5f 61 79 65 61 29 0a |tr, entr|y_ayea).|
|00005070| 58 09 09 7b 0a 58 09 09 | 09 65 6e 74 72 79 20 3d |X..{.X..|.entry =|
|00005080| 20 28 45 6e 74 72 79 20 | 2a 29 20 6c 64 61 74 61 | (Entry |*) ldata|
|00005090| 28 70 74 72 29 3b 0a 58 | 09 09 09 2f 2a 20 66 69 |(ptr);.X|.../* fi|
|000050a0| 72 73 74 20 63 6f 70 79 | 20 6f 66 20 74 68 69 73 |rst copy| of this|
|000050b0| 20 63 6f 64 65 2c 20 77 | 69 74 68 20 63 68 61 73 | code, w|ith chas|
|000050c0| 65 20 2a 2f 0a 58 09 09 | 09 66 6f 75 6e 64 20 3d |e */.X..|.found =|
|000050d0| 20 54 52 55 45 3b 20 2f | 2a 20 61 73 73 75 6d 65 | TRUE; /|* assume|
|000050e0| 20 69 74 20 66 6f 72 20 | 74 68 65 20 6d 6f 6d 65 | it for |the mome|
|000050f0| 6e 74 20 2a 2f 0a 58 09 | 09 09 70 72 6f 62 65 5f |nt */.X.|..probe_|
|00005100| 6f 6c 64 20 3d 20 6d 61 | 6b 65 6c 69 73 74 30 28 |old = ma|kelist0(|
|00005110| 29 3b 0a 58 09 09 09 66 | 6f 72 5f 6c 69 73 74 20 |);.X...f|or_list |
|00005120| 28 70 74 72 31 2c 20 65 | 6e 74 72 79 2d 3e 65 5f |(ptr1, e|ntry->e_|
|00005130| 6f 6c 64 29 0a 58 09 09 | 09 7b 0a 58 09 09 09 09 |old).X..|.{.X....|
|00005140| 70 61 74 20 3d 20 28 50 | 61 74 20 2a 29 20 6c 64 |pat = (P|at *) ld|
|00005150| 61 74 61 28 70 74 72 31 | 29 3b 0a 58 09 09 09 09 |ata(ptr1|);.X....|
|00005160| 6e 65 77 6e 6f 64 65 20 | 3d 20 63 68 61 73 65 28 |newnode |= chase(|
|00005170| 70 61 74 2d 3e 70 5f 73 | 74 72 2c 20 70 61 74 2d |pat->p_s|tr, pat-|
|00005180| 3e 70 5f 66 6c 61 67 2c | 20 28 45 6e 74 72 79 20 |>p_flag,| (Entry |
|00005190| 2a 29 20 4e 55 4c 4c 29 | 3b 0a 58 09 09 09 09 69 |*) NULL)|;.X....i|
|000051a0| 66 20 28 6f 6e 5f 6e 6f | 64 65 28 6e 65 77 6e 6f |f (on_no|de(newno|
|000051b0| 64 65 2c 20 6e 66 5f 45 | 52 52 29 20 7c 7c 20 69 |de, nf_E|RR) || i|
|000051c0| 73 5f 6e 6f 77 61 79 28 | 6e 65 77 6e 6f 64 65 29 |s_noway(|newnode)|
|000051d0| 29 0a 58 09 09 09 09 7b | 0a 58 09 09 09 09 09 66 |).X....{|.X.....f|
|000051e0| 6f 75 6e 64 20 3d 20 46 | 41 4c 53 45 3b 0a 58 09 |ound = F|ALSE;.X.|
|000051f0| 09 09 09 09 6d 69 73 73 | 5f 61 79 65 61 20 3d 20 |....miss|_ayea = |
|00005200| 61 64 64 74 61 69 6c 28 | 6d 69 73 73 5f 61 79 65 |addtail(|miss_aye|
|00005210| 61 2c 20 6e 65 77 6e 6f | 64 65 29 3b 0a 58 09 09 |a, newno|de);.X..|
|00005220| 09 09 09 69 66 20 28 21 | 20 73 69 6e 67 6c 65 74 |...if (!| singlet|
|00005230| 6f 6e 29 0a 58 09 09 09 | 09 09 09 62 72 65 61 6b |on).X...|...break|
|00005240| 3b 0a 58 09 09 09 09 7d | 0a 58 0a 58 09 09 09 09 |;.X....}|.X.X....|
|00005250| 61 64 64 74 61 69 6c 28 | 70 72 6f 62 65 5f 6f 6c |addtail(|probe_ol|
|00005260| 64 2c 20 6e 65 77 6e 6f | 64 65 29 3b 09 2f 2a 20 |d, newno|de);./* |
|00005270| 6e 61 20 2a 2f 0a 58 09 | 09 09 7d 0a 58 0a 58 09 |na */.X.|..}.X.X.|
|00005280| 09 09 69 66 20 28 66 6f | 75 6e 64 29 0a 58 09 09 |..if (fo|und).X..|
|00005290| 09 09 62 72 65 61 6b 3b | 0a 58 09 09 7d 0a 58 09 |..break;|.X..}.X.|
|000052a0| 7d 0a 58 09 65 6c 73 65 | 0a 58 09 7b 0a 58 09 09 |}.X.else|.X.{.X..|
|000052b0| 73 69 6e 67 6c 65 74 6f | 6e 20 3d 20 54 52 55 45 |singleto|n = TRUE|
|000052c0| 3b 0a 58 09 09 6f 72 70 | 68 61 6e 20 20 20 20 3d |;.X..orp|han =|
|000052d0| 20 46 41 4c 53 45 3b 0a | 58 0a 58 09 09 63 64 65 | FALSE;.|X.X..cde|
|000052e0| 62 75 67 28 22 25 73 3a | 20 77 61 73 20 67 69 76 |bug("%s:| was giv|
|000052f0| 65 6e 20 67 65 6e 65 72 | 61 74 6f 72 5c 6e 22 2c |en gener|ator\n",|
|00005300| 20 6e 6f 64 65 2d 3e 6e | 5f 6e 61 6d 65 29 3b 0a | node->n|_name);.|
|00005310| 58 09 09 65 6e 74 72 79 | 20 3d 20 70 69 63 6b 65 |X..entry| = picke|
|00005320| 64 3b 0a 58 0a 58 09 09 | 2f 2a 20 73 65 63 6f 6e |d;.X.X..|/* secon|
|00005330| 64 20 63 6f 70 79 20 6f | 66 20 74 68 69 73 20 63 |d copy o|f this c|
|00005340| 6f 64 65 2c 20 77 69 74 | 68 20 63 68 61 73 65 5f |ode, wit|h chase_|
|00005350| 6e 6f 64 65 20 2a 2f 0a | 58 09 09 66 6f 75 6e 64 |node */.|X..found|
|00005360| 20 3d 20 54 52 55 45 3b | 20 2f 2a 20 61 73 73 75 | = TRUE;| /* assu|
|00005370| 6d 65 20 69 74 20 66 6f | 72 20 74 68 65 20 6d 6f |me it fo|r the mo|
|00005380| 6d 65 6e 74 20 2a 2f 0a | 58 09 09 70 72 6f 62 65 |ment */.|X..probe|
|00005390| 5f 6f 6c 64 20 3d 20 6d | 61 6b 65 6c 69 73 74 30 |_old = m|akelist0|
|000053a0| 28 29 3b 0a 58 09 09 66 | 6f 72 5f 6c 69 73 74 20 |();.X..f|or_list |
|000053b0| 28 70 74 72 31 2c 20 65 | 6e 74 72 79 2d 3e 65 5f |(ptr1, e|ntry->e_|
|000053c0| 6f 6c 64 29 0a 58 09 09 | 7b 0a 58 09 09 09 70 61 |old).X..|{.X...pa|
|000053d0| 74 20 3d 20 28 50 61 74 | 20 2a 29 20 6c 64 61 74 |t = (Pat| *) ldat|
|000053e0| 61 28 70 74 72 31 29 3b | 0a 58 09 09 09 6e 65 77 |a(ptr1);|.X...new|
|000053f0| 6e 6f 64 65 20 3d 20 63 | 68 61 73 65 5f 6e 6f 64 |node = c|hase_nod|
|00005400| 65 28 70 61 74 2d 3e 70 | 5f 73 74 72 29 3b 0a 58 |e(pat->p|_str);.X|
|00005410| 09 09 09 69 66 20 28 6f | 6e 5f 6e 6f 64 65 28 6e |...if (o|n_node(n|
|00005420| 65 77 6e 6f 64 65 2c 20 | 6e 66 5f 45 52 52 29 20 |ewnode, |nf_ERR) |
|00005430| 7c 7c 20 69 73 5f 6e 6f | 77 61 79 28 6e 65 77 6e ||| is_no|way(newn|
|00005440| 6f 64 65 29 29 0a 58 09 | 09 09 7b 0a 58 09 09 09 |ode)).X.|..{.X...|
|00005450| 09 66 6f 75 6e 64 20 3d | 20 46 41 4c 53 45 3b 0a |.found =| FALSE;.|
|00005460| 58 09 09 09 09 6d 69 73 | 73 5f 61 79 65 61 20 3d |X....mis|s_ayea =|
|00005470| 20 61 64 64 74 61 69 6c | 28 6d 69 73 73 5f 61 79 | addtail|(miss_ay|
|00005480| 65 61 2c 20 6e 65 77 6e | 6f 64 65 29 3b 0a 58 09 |ea, newn|ode);.X.|
|00005490| 09 09 09 69 66 20 28 21 | 20 73 69 6e 67 6c 65 74 |...if (!| singlet|
|000054a0| 6f 6e 29 0a 58 09 09 09 | 09 09 62 72 65 61 6b 3b |on).X...|..break;|
|000054b0| 0a 58 09 09 09 7d 0a 58 | 0a 58 09 09 09 61 64 64 |.X...}.X|.X...add|
|000054c0| 74 61 69 6c 28 70 72 6f | 62 65 5f 6f 6c 64 2c 20 |tail(pro|be_old, |
|000054d0| 6e 65 77 6e 6f 64 65 29 | 3b 09 2f 2a 20 6e 61 20 |newnode)|;./* na |
|000054e0| 2a 2f 0a 58 09 09 7d 0a | 58 09 7d 0a 58 0a 58 09 |*/.X..}.|X.}.X.X.|
|000054f0| 69 66 20 28 66 6f 75 6e | 64 29 0a 58 09 7b 0a 58 |if (foun|d).X.{.X|
|00005500| 09 09 2f 2a 20 77 65 20 | 68 61 76 65 20 66 6f 75 |../* we |have fou|
|00005510| 6e 64 20 61 6e 20 61 70 | 70 6c 69 63 61 62 6c 65 |nd an ap|plicable|
|00005520| 20 65 6e 74 72 79 20 2a | 2f 0a 58 09 09 63 64 65 | entry *|/.X..cde|
|00005530| 62 75 67 28 22 25 73 3a | 20 66 6f 75 6e 64 20 66 |bug("%s:| found f|
|00005540| 65 61 73 69 62 6c 65 20 | 67 65 6e 65 72 61 74 6f |easible |generato|
|00005550| 72 5c 6e 22 2c 20 6e 6f | 64 65 2d 3e 6e 5f 6e 61 |r\n", no|de->n_na|
|00005560| 6d 65 29 3b 0a 58 09 09 | 61 64 64 6c 69 73 74 28 |me);.X..|addlist(|
|00005570| 6e 6f 64 65 2d 3e 6e 5f | 6f 6c 64 2c 20 70 72 6f |node->n_|old, pro|
|00005580| 62 65 5f 6f 6c 64 29 3b | 09 2f 2a 20 6e 61 20 2a |be_old);|./* na *|
|00005590| 2f 0a 58 09 09 6e 6f 64 | 65 2d 3e 6e 5f 61 63 74 |/.X..nod|e->n_act|
|000055a0| 20 3d 20 65 6e 74 72 79 | 2d 3e 65 5f 61 63 74 3b | = entry|->e_act;|
|000055b0| 0a 58 09 09 69 66 20 28 | 70 69 63 6b 65 64 20 3d |.X..if (|picked =|
|000055c0| 3d 20 28 45 6e 74 72 79 | 20 2a 29 20 4e 55 4c 4c |= (Entry| *) NULL|
|000055d0| 29 0a 58 09 09 09 73 65 | 74 5f 62 75 64 64 69 65 |).X...se|t_buddie|
|000055e0| 73 28 6e 6f 64 65 2c 20 | 65 6e 74 72 79 29 3b 0a |s(node, |entry);.|
|000055f0| 58 09 09 70 69 63 6b 65 | 64 20 3d 20 65 6e 74 72 |X..picke|d = entr|
|00005600| 79 3b 0a 58 09 7d 0a 58 | 09 6f 72 20 28 73 69 6e |y;.X.}.X|.or (sin|
|00005610| 67 6c 65 74 6f 6e 29 0a | 58 09 7b 0a 58 09 09 2f |gleton).|X.{.X../|
|00005620| 2a 20 77 65 20 68 61 76 | 65 20 6f 6e 6c 79 20 6f |* we hav|e only o|
|00005630| 6e 65 20 28 69 6e 61 70 | 70 6c 69 63 61 62 6c 65 |ne (inap|plicable|
|00005640| 29 20 65 6e 74 72 79 20 | 2a 2f 0a 58 09 09 2f 2a |) entry |*/.X../*|
|00005650| 20 73 6f 20 77 65 20 73 | 68 61 6c 6c 20 6d 61 6b | so we s|hall mak|
|00005660| 65 20 64 6f 20 61 73 20 | 62 65 73 74 20 77 65 20 |e do as |best we |
|00005670| 63 61 6e 20 2a 2f 0a 58 | 09 09 63 64 65 62 75 67 |can */.X|..cdebug|
|00005680| 28 22 25 73 3a 20 66 6f | 75 6e 64 20 73 69 6e 67 |("%s: fo|und sing|
|00005690| 6c 65 20 69 6e 66 65 61 | 73 69 62 6c 65 20 67 65 |le infea|sible ge|
|000056a0| 6e 65 72 61 74 6f 72 5c | 6e 22 2c 20 6e 6f 64 65 |nerator\|n", node|
|000056b0| 2d 3e 6e 5f 6e 61 6d 65 | 29 3b 0a 58 09 09 61 64 |->n_name|);.X..ad|
|000056c0| 64 6c 69 73 74 28 6e 6f | 64 65 2d 3e 6e 5f 6f 6c |dlist(no|de->n_ol|
|000056d0| 64 2c 20 70 72 6f 62 65 | 5f 6f 6c 64 29 3b 09 2f |d, probe|_old);./|
|000056e0| 2a 20 6e 61 20 2a 2f 0a | 58 09 09 6e 6f 64 65 2d |* na */.|X..node-|
|000056f0| 3e 6e 5f 61 63 74 20 3d | 20 65 6e 74 72 79 2d 3e |>n_act =| entry->|
|00005700| 65 5f 61 63 74 3b 0a 58 | 09 09 69 66 20 28 70 69 |e_act;.X|..if (pi|
|00005710| 63 6b 65 64 20 3d 3d 20 | 28 45 6e 74 72 79 20 2a |cked == |(Entry *|
|00005720| 29 20 4e 55 4c 4c 29 0a | 58 09 09 09 73 65 74 5f |) NULL).|X...set_|
|00005730| 62 75 64 64 69 65 73 28 | 6e 6f 64 65 2c 20 65 6e |buddies(|node, en|
|00005740| 74 72 79 29 3b 0a 58 09 | 09 70 69 63 6b 65 64 20 |try);.X.|.picked |
|00005750| 3d 20 65 6e 74 72 79 3b | 0a 58 09 7d 0a 58 09 6f |= entry;|.X.}.X.o|
|00005760| 72 20 28 6f 72 70 68 61 | 6e 20 26 26 20 6f 6e 5f |r (orpha|n && on_|
|00005770| 6e 6f 64 65 28 6e 6f 64 | 65 2c 20 6e 66 5f 50 53 |node(nod|e, nf_PS|
|00005780| 45 55 44 4f 29 29 0a 58 | 09 7b 0a 58 09 09 2f 2a |EUDO)).X|.{.X../*|
|00005790| 20 6e 6f 20 65 6e 74 72 | 79 20 69 73 20 6e 65 65 | no entr|y is nee|
|000057a0| 64 65 64 2c 20 61 63 74 | 20 61 73 20 77 65 20 68 |ded, act| as we h|
|000057b0| 61 64 20 6f 6e 65 20 2a | 2f 0a 58 09 09 66 6f 75 |ad one *|/.X..fou|
|000057c0| 6e 64 20 3d 20 54 52 55 | 45 3b 0a 58 09 09 63 64 |nd = TRU|E;.X..cd|
|000057d0| 65 62 75 67 28 22 25 73 | 3a 20 6e 6f 20 67 65 6e |ebug("%s|: no gen|
|000057e0| 65 72 61 74 6f 72 2c 20 | 6e 6f 20 70 72 6f 62 6c |erator, |no probl|
|000057f0| 65 6d 5c 6e 22 2c 20 6e | 6f 64 65 2d 3e 6e 5f 6e |em\n", n|ode->n_n|
|00005800| 61 6d 65 29 3b 0a 58 09 | 09 6e 6f 64 65 2d 3e 6e |ame);.X.|.node->n|
|00005810| 5f 61 63 74 20 3d 20 6d | 61 6b 65 6c 69 73 74 30 |_act = m|akelist0|
|00005820| 28 29 3b 0a 58 09 7d 0a | 58 09 65 6c 73 65 0a 58 |();.X.}.|X.else.X|
|00005830| 09 7b 0a 58 09 09 63 64 | 65 62 75 67 28 22 25 73 |.{.X..cd|ebug("%s|
|00005840| 3a 20 6e 6f 20 66 65 61 | 73 69 62 6c 65 20 67 65 |: no fea|sible ge|
|00005850| 6e 65 72 61 74 6f 72 5c | 6e 22 2c 20 6e 6f 64 65 |nerator\|n", node|
|00005860| 2d 3e 6e 5f 6e 61 6d 65 | 29 3b 0a 58 09 09 6e 6f |->n_name|);.X..no|
|00005870| 64 65 2d 3e 6e 5f 61 63 | 74 20 3d 20 6d 61 6b 65 |de->n_ac|t = make|
|00005880| 6c 69 73 74 30 28 29 3b | 0a 58 09 7d 0a 58 0a 58 |list0();|.X.}.X.X|
|00005890| 09 69 66 20 28 6c 65 6e | 67 74 68 28 6e 6f 64 65 |.if (len|gth(node|
|000058a0| 2d 3e 6e 5f 61 63 74 29 | 20 3e 20 30 20 26 26 20 |->n_act)| > 0 && |
|000058b0| 6c 65 6e 67 74 68 28 70 | 69 63 6b 65 64 2d 3e 65 |length(p|icked->e|
|000058c0| 5f 6f 6c 64 29 20 3d 3d | 20 30 29 0a 58 09 09 6e |_old) ==| 0).X..n|
|000058d0| 6f 64 65 2d 3e 6e 5f 75 | 74 69 6d 65 20 3d 20 63 |ode->n_u|time = c|
|000058e0| 61 6b 65 5f 67 65 74 74 | 69 6d 65 28 29 3b 0a 58 |ake_gett|ime();.X|
|000058f0| 09 65 6c 73 65 0a 58 09 | 09 67 65 74 5f 75 74 69 |.else.X.|.get_uti|
|00005900| 6d 65 28 6e 6f 64 65 2c | 20 54 52 55 45 29 3b 0a |me(node,| TRUE);.|
|00005910| 58 0a 58 09 66 6f 72 5f | 6c 69 73 74 20 28 70 74 |X.X.for_|list (pt|
|00005920| 72 2c 20 6e 6f 64 65 2d | 3e 6e 5f 6f 6c 64 29 0a |r, node-|>n_old).|
|00005930| 58 09 7b 0a 58 09 09 6e | 65 77 6e 6f 64 65 20 3d |X.{.X..n|ewnode =|
|00005940| 20 28 4e 6f 64 65 20 2a | 29 20 6c 64 61 74 61 28 | (Node *|) ldata(|
|00005950| 70 74 72 29 3b 0a 58 09 | 09 69 66 20 28 6f 6e 5f |ptr);.X.|.if (on_|
|00005960| 6e 6f 64 65 28 6e 65 77 | 6e 6f 64 65 2c 20 6e 66 |node(new|node, nf|
|00005970| 5f 4e 4f 4e 56 4f 4c 29 | 29 0a 58 09 09 09 73 65 |_NONVOL)|).X...se|
|00005980| 74 5f 6e 6f 64 65 28 6e | 6f 64 65 2c 20 6e 66 5f |t_node(n|ode, nf_|
|00005990| 44 45 50 4e 4f 4e 56 4f | 4c 29 3b 0a 58 09 7d 0a |DEPNONVO|L);.X.}.|
|000059a0| 58 0a 58 09 69 66 20 28 | 6d 69 73 73 69 6e 67 29 |X.X.if (|missing)|
|000059b0| 0a 58 09 7b 0a 58 09 09 | 6e 6f 64 65 2d 3e 6e 5f |.X.{.X..|node->n_|
|000059c0| 6b 69 6e 64 20 3d 20 6e | 5f 4e 4f 57 41 59 3b 0a |kind = n|_NOWAY;.|
|000059d0| 58 09 09 73 70 72 69 6e | 74 66 28 73 63 72 61 74 |X..sprin|tf(scrat|
|000059e0| 63 68 62 75 66 2c 20 22 | 25 73 20 69 73 20 6d 69 |chbuf, "|%s is mi|
|000059f0| 73 73 69 6e 67 20 74 68 | 65 20 70 72 65 72 65 71 |ssing th|e prereq|
|00005a00| 75 69 73 69 74 65 25 73 | 20 25 73 22 2c 0a 58 09 |uisite%s| %s",.X.|
|00005a10| 09 09 6e 6f 64 65 2d 3e | 6e 5f 6e 61 6d 65 2c 20 |..node->|n_name, |
|00005a20| 6c 65 6e 67 74 68 28 6d | 69 73 73 5f 61 6e 61 79 |length(m|iss_anay|
|00005a30| 29 3d 3d 31 3f 20 22 22 | 3a 20 22 73 22 2c 20 6c |)==1? ""|: "s", l|
|00005a40| 69 73 74 5f 6e 61 6d 65 | 73 28 6d 69 73 73 5f 61 |ist_name|s(miss_a|
|00005a50| 6e 61 79 29 29 3b 0a 58 | 09 09 61 64 64 5f 65 72 |nay));.X|..add_er|
|00005a60| 72 6f 72 28 6e 6f 64 65 | 2c 20 6e 65 77 5f 6e 61 |ror(node|, new_na|
|00005a70| 6d 65 28 73 63 72 61 74 | 63 68 62 75 66 29 2c 20 |me(scrat|chbuf), |
|00005a80| 6d 69 73 73 5f 61 6e 61 | 79 2c 20 46 41 4c 53 45 |miss_ana|y, FALSE|
|00005a90| 29 3b 0a 58 09 7d 0a 58 | 09 6f 72 20 28 21 20 66 |);.X.}.X|.or (! f|
|00005aa0| 6f 75 6e 64 29 0a 58 09 | 7b 0a 58 09 09 6e 6f 64 |ound).X.|{.X..nod|
|00005ab0| 65 2d 3e 6e 5f 6b 69 6e | 64 20 3d 20 6e 5f 4e 4f |e->n_kin|d = n_NO|
|00005ac0| 57 41 59 3b 0a 58 09 09 | 69 66 20 28 6d 69 73 73 |WAY;.X..|if (miss|
|00005ad0| 5f 61 79 65 61 20 3d 3d | 20 28 4c 69 73 74 20 2a |_ayea ==| (List *|
|00005ae0| 29 20 4e 55 4c 4c 29 0a | 58 09 09 09 73 70 72 69 |) NULL).|X...spri|
|00005af0| 6e 74 66 28 73 63 72 61 | 74 63 68 62 75 66 2c 20 |ntf(scra|tchbuf, |
|00005b00| 22 25 73 20 68 61 73 20 | 6e 6f 20 61 70 70 6c 69 |"%s has |no appli|
|00005b10| 63 61 62 6c 65 20 65 6e | 74 72 69 65 73 20 77 69 |cable en|tries wi|
|00005b20| 74 68 20 61 63 74 69 6f | 6e 73 5c 6e 22 2c 0a 58 |th actio|ns\n",.X|
|00005b30| 09 09 09 09 6e 6f 64 65 | 2d 3e 6e 5f 6e 61 6d 65 |....node|->n_name|
|00005b40| 29 3b 0a 58 09 09 65 6c | 73 65 0a 58 09 09 09 73 |);.X..el|se.X...s|
|00005b50| 70 72 69 6e 74 66 28 73 | 63 72 61 74 63 68 62 75 |printf(s|cratchbu|
|00005b60| 66 2c 20 22 25 73 20 69 | 73 20 6d 69 73 73 69 6e |f, "%s i|s missin|
|00005b70| 67 20 74 68 65 20 61 6e | 63 65 73 74 6f 72 25 73 |g the an|cestor%s|
|00005b80| 20 25 73 22 2c 0a 58 09 | 09 09 09 6e 6f 64 65 2d | %s",.X.|...node-|
|00005b90| 3e 6e 5f 6e 61 6d 65 2c | 20 6c 65 6e 67 74 68 28 |>n_name,| length(|
|00005ba0| 6d 69 73 73 5f 61 79 65 | 61 29 3d 3d 31 3f 20 22 |miss_aye|a)==1? "|
|00005bb0| 22 3a 20 22 73 22 2c 20 | 6c 69 73 74 5f 6e 61 6d |": "s", |list_nam|
|00005bc0| 65 73 28 6d 69 73 73 5f | 61 79 65 61 29 29 3b 0a |es(miss_|ayea));.|
|00005bd0| 58 0a 58 09 09 61 64 64 | 5f 65 72 72 6f 72 28 6e |X.X..add|_error(n|
|00005be0| 6f 64 65 2c 20 6e 65 77 | 5f 6e 61 6d 65 28 73 63 |ode, new|_name(sc|
|00005bf0| 72 61 74 63 68 62 75 66 | 29 2c 20 6d 69 73 73 5f |ratchbuf|), miss_|
|00005c00| 61 79 65 61 2c 20 46 41 | 4c 53 45 29 3b 0a 58 09 |ayea, FA|LSE);.X.|
|00005c10| 7d 0a 58 09 6f 72 20 28 | 6f 6e 5f 6e 6f 64 65 28 |}.X.or (|on_node(|
|00005c20| 6e 6f 64 65 2c 20 6e 66 | 5f 45 58 49 53 54 29 20 |node, nf|_EXIST) |
|00005c30| 26 26 20 6e 6f 64 65 2d | 3e 6e 5f 75 74 69 6d 65 |&& node-|>n_utime|
|00005c40| 20 3c 3d 20 6e 6f 64 65 | 2d 3e 6e 5f 72 74 69 6d | <= node|->n_rtim|
|00005c50| 65 29 0a 58 09 09 6e 6f | 64 65 2d 3e 6e 5f 6b 69 |e).X..no|de->n_ki|
|00005c60| 6e 64 20 3d 20 6e 5f 4f | 4b 3b 0a 58 09 6f 72 20 |nd = n_O|K;.X.or |
|00005c70| 28 6f 6e 5f 6e 6f 64 65 | 28 6e 6f 64 65 2c 20 6e |(on_node|(node, n|
|00005c80| 66 5f 50 53 45 55 44 4f | 29 20 26 26 20 6c 65 6e |f_PSEUDO|) && len|
|00005c90| 67 74 68 28 6e 6f 64 65 | 2d 3e 6e 5f 61 63 74 29 |gth(node|->n_act)|
|00005ca0| 20 3d 3d 20 30 29 0a 58 | 09 7b 0a 58 09 09 6e 6f | == 0).X|.{.X..no|
|00005cb0| 64 65 2d 3e 6e 5f 6b 69 | 6e 64 20 3d 20 6e 5f 4f |de->n_ki|nd = n_O|
|00005cc0| 4b 3b 0a 58 09 09 66 6f | 72 5f 6c 69 73 74 20 28 |K;.X..fo|r_list (|
|00005cd0| 70 74 72 2c 20 6e 6f 64 | 65 2d 3e 6e 5f 6f 6c 64 |ptr, nod|e->n_old|
|00005ce0| 29 0a 58 09 09 7b 0a 58 | 09 09 09 6f 6e 6f 64 65 |).X..{.X|...onode|
|00005cf0| 20 3d 20 28 4e 6f 64 65 | 20 2a 29 20 6c 64 61 74 | = (Node| *) ldat|
|00005d00| 61 28 70 74 72 29 3b 0a | 58 09 09 09 69 66 20 28 |a(ptr);.|X...if (|
|00005d10| 69 73 5f 63 61 6e 64 6f | 28 6f 6e 6f 64 65 29 29 |is_cando|(onode))|
|00005d20| 0a 58 09 09 09 09 6e 6f | 64 65 2d 3e 6e 5f 6b 69 |.X....no|de->n_ki|
|00005d30| 6e 64 20 3d 20 6e 5f 43 | 41 4e 44 4f 3b 0a 58 09 |nd = n_C|ANDO;.X.|
|00005d40| 09 7d 0a 58 09 7d 0a 58 | 09 65 6c 73 65 0a 58 09 |.}.X.}.X|.else.X.|
|00005d50| 09 6e 6f 64 65 2d 3e 6e | 5f 6b 69 6e 64 20 3d 20 |.node->n|_kind = |
|00005d60| 6e 5f 43 41 4e 44 4f 3b | 0a 58 09 0a 58 65 6e 64 |n_CANDO;|.X..Xend|
|00005d70| 3a 0a 58 23 69 66 64 65 | 66 09 43 41 4b 45 44 45 |:.X#ifde|f.CAKEDE|
|00005d80| 42 55 47 0a 58 09 69 66 | 20 28 63 61 6b 65 64 65 |BUG.X.if| (cakede|
|00005d90| 62 75 67 29 0a 58 09 7b | 0a 58 09 09 70 72 69 6e |bug).X.{|.X..prin|
|00005da0| 74 66 28 22 63 68 61 73 | 65 20 65 78 69 74 5c 6e |tf("chas|e exit\n|
|00005db0| 22 29 3b 0a 58 09 09 70 | 72 69 6e 74 5f 6e 6f 64 |");.X..p|rint_nod|
|00005dc0| 65 28 6e 6f 64 65 29 3b | 0a 58 09 7d 0a 58 23 65 |e(node);|.X.}.X#e|
|00005dd0| 6e 64 69 66 0a 58 0a 58 | 09 70 75 74 5f 74 72 61 |ndif.X.X|.put_tra|
|00005de0| 69 6c 28 22 64 6f 5f 63 | 68 61 73 65 22 2c 20 22 |il("do_c|hase", "|
|00005df0| 66 69 6e 69 73 68 22 29 | 3b 0a 58 7d 0a 58 0a 58 |finish")|;.X}.X.X|
|00005e00| 2f 2a 0a 58 2a 2a 09 43 | 61 6c 63 75 6c 61 74 65 |/*.X**.C|alculate|
|00005e10| 20 74 68 65 20 22 75 70 | 64 61 74 65 20 74 69 6d | the "up|date tim|
|00005e20| 65 22 20 6f 66 20 74 68 | 65 20 67 69 76 65 6e 20 |e" of th|e given |
|00005e30| 6e 6f 64 65 2e 20 54 68 | 65 20 73 65 63 6f 6e 64 |node. Th|e second|
|00005e40| 20 61 72 67 0a 58 2a 2a | 09 74 65 6c 6c 73 20 75 | arg.X**|.tells u|
|00005e50| 73 20 77 68 65 74 68 65 | 72 20 77 65 20 73 68 6f |s whethe|r we sho|
|00005e60| 75 6c 64 20 73 65 74 20 | 61 20 66 6c 61 67 20 66 |uld set |a flag f|
|00005e70| 6f 72 20 6e 6f 6e 76 6f | 6c 61 74 69 6c 65 20 61 |or nonvo|latile a|
|00005e80| 6e 63 65 73 74 6f 72 73 | 2e 0a 58 2a 2f 0a 58 0a |ncestors|..X*/.X.|
|00005e90| 58 67 65 74 5f 75 74 69 | 6d 65 28 6e 6f 64 65 2c |Xget_uti|me(node,|
|00005ea0| 20 70 6c 61 6e 6e 69 6e | 67 29 0a 58 72 65 67 09 | plannin|g).Xreg.|
|00005eb0| 4e 6f 64 65 09 2a 6e 6f | 64 65 3b 0a 58 72 65 67 |Node.*no|de;.Xreg|
|00005ec0| 09 62 6f 6f 6c 09 70 6c | 61 6e 6e 69 6e 67 3b 0a |.bool.pl|anning;.|
|00005ed0| 58 7b 0a 58 09 65 78 74 | 65 72 6e 09 74 69 6d 65 |X{.X.ext|ern.time|
|00005ee0| 5f 74 09 67 65 74 5f 79 | 6f 75 6e 67 65 73 74 28 |_t.get_y|oungest(|
|00005ef0| 29 2c 20 63 61 6b 65 5f | 67 65 74 74 69 6d 65 28 |), cake_|gettime(|
|00005f00| 29 3b 0a 58 09 72 65 67 | 09 74 69 6d 65 5f 74 09 |);.X.reg|.time_t.|
|00005f10| 79 6f 75 6e 67 65 73 74 | 3b 0a 58 0a 58 09 69 66 |youngest|;.X.X.if|
|00005f20| 20 28 28 79 6f 75 6e 67 | 65 73 74 20 3d 20 67 65 | ((young|est = ge|
|00005f30| 74 5f 79 6f 75 6e 67 65 | 73 74 28 6e 6f 64 65 2c |t_younge|st(node,|
|00005f40| 20 70 6c 61 6e 6e 69 6e | 67 29 29 20 3d 3d 20 47 | plannin|g)) == G|
|00005f50| 45 4e 45 53 49 53 29 0a | 58 09 09 6e 6f 64 65 2d |ENESIS).|X..node-|
|00005f60| 3e 6e 5f 75 74 69 6d 65 | 20 3d 20 63 61 6b 65 5f |>n_utime| = cake_|
|00005f70| 67 65 74 74 69 6d 65 28 | 29 3b 0a 58 09 65 6c 73 |gettime(|);.X.els|
|00005f80| 65 0a 58 09 09 6e 6f 64 | 65 2d 3e 6e 5f 75 74 69 |e.X..nod|e->n_uti|
|00005f90| 6d 65 20 3d 20 79 6f 75 | 6e 67 65 73 74 3b 0a 58 |me = you|ngest;.X|
|00005fa0| 7d 0a 58 0a 58 2f 2a 0a | 58 2a 2a 09 52 65 74 75 |}.X.X/*.|X**.Retu|
|00005fb0| 72 6e 20 74 68 65 20 74 | 69 6d 65 20 6f 66 20 75 |rn the t|ime of u|
|00005fc0| 70 64 61 74 65 20 6f 66 | 20 74 68 65 20 79 6f 75 |pdate of| the you|
|00005fd0| 6e 67 65 73 74 20 64 65 | 70 65 6e 64 65 6e 74 2e |ngest de|pendent.|
|00005fe0| 0a 58 2a 2f 0a 58 0a 58 | 74 69 6d 65 5f 74 0a 58 |.X*/.X.X|time_t.X|
|00005ff0| 67 65 74 5f 79 6f 75 6e | 67 65 73 74 28 6e 6f 64 |get_youn|gest(nod|
|00006000| 65 2c 20 70 6c 61 6e 6e | 69 6e 67 29 0a 58 72 65 |e, plann|ing).Xre|
|00006010| 67 09 4e 6f 64 65 09 2a | 6e 6f 64 65 3b 0a 58 72 |g.Node.*|node;.Xr|
|00006020| 65 67 09 62 6f 6f 6c 09 | 70 6c 61 6e 6e 69 6e 67 |eg.bool.|planning|
|00006030| 3b 0a 58 7b 0a 58 09 72 | 65 67 09 4c 69 73 74 09 |;.X{.X.r|eg.List.|
|00006040| 2a 70 74 72 3b 0a 58 09 | 72 65 67 09 4e 6f 64 65 |*ptr;.X.|reg.Node|
|00006050| 09 2a 6f 6e 6f 64 65 3b | 0a 58 09 72 65 67 09 74 |.*onode;|.X.reg.t|
|00006060| 69 6d 65 5f 74 09 79 6f | 75 6e 67 65 73 74 2c 20 |ime_t.yo|ungest, |
|00006070| 70 69 63 6b 65 64 5f 74 | 69 6d 65 3b 0a 58 09 72 |picked_t|ime;.X.r|
|00006080| 65 67 09 4c 69 73 74 09 | 2a 65 72 72 6e 6f 64 65 |eg.List.|*errnode|
|00006090| 73 3b 0a 58 0a 58 09 79 | 6f 75 6e 67 65 73 74 20 |s;.X.X.y|oungest |
|000060a0| 3d 20 47 45 4e 45 53 49 | 53 3b 0a 58 09 65 72 72 |= GENESI|S;.X.err|
|000060b0| 6e 6f 64 65 73 20 3d 20 | 4e 55 4c 4c 3b 0a 58 09 |nodes = |NULL;.X.|
|000060c0| 66 6f 72 5f 6c 69 73 74 | 20 28 70 74 72 2c 20 6e |for_list| (ptr, n|
|000060d0| 6f 64 65 2d 3e 6e 5f 6f | 6c 64 29 0a 58 09 7b 0a |ode->n_o|ld).X.{.|
|000060e0| 58 09 09 6f 6e 6f 64 65 | 20 3d 20 28 4e 6f 64 65 |X..onode| = (Node|
|000060f0| 20 2a 29 20 6c 64 61 74 | 61 28 70 74 72 29 3b 0a | *) ldat|a(ptr);.|
|00006100| 58 09 09 69 66 20 28 6f | 6e 5f 6e 6f 64 65 28 6f |X..if (o|n_node(o|
|00006110| 6e 6f 64 65 2c 20 6e 66 | 5f 45 52 52 29 29 0a 58 |node, nf|_ERR)).X|
|00006120| 09 09 09 65 72 72 6e 6f | 64 65 73 20 3d 20 61 64 |...errno|des = ad|
|00006130| 64 74 61 69 6c 28 65 72 | 72 6e 6f 64 65 73 2c 20 |dtail(er|rnodes, |
|00006140| 6f 6e 6f 64 65 29 3b 0a | 58 09 09 65 6c 73 65 0a |onode);.|X..else.|
|00006150| 58 09 09 7b 0a 58 09 09 | 09 69 66 20 28 28 70 69 |X..{.X..|.if ((pi|
|00006160| 63 6b 65 64 5f 74 69 6d | 65 20 3d 20 70 69 63 6b |cked_tim|e = pick|
|00006170| 5f 74 69 6d 65 28 6f 6e | 6f 64 65 2c 20 70 6c 61 |_time(on|ode, pla|
|00006180| 6e 6e 69 6e 67 29 29 20 | 3e 20 79 6f 75 6e 67 65 |nning)) |> younge|
|00006190| 73 74 29 0a 58 09 09 09 | 09 79 6f 75 6e 67 65 73 |st).X...|.younges|
|000061a0| 74 20 3d 20 70 69 63 6b | 65 64 5f 74 69 6d 65 3b |t = pick|ed_time;|
|000061b0| 0a 58 09 09 7d 0a 58 09 | 7d 0a 58 0a 58 09 69 66 |.X..}.X.|}.X.X.if|
|000061c0| 20 28 65 72 72 6e 6f 64 | 65 73 20 21 3d 20 28 4c | (errnod|es != (L|
|000061d0| 69 73 74 20 2a 29 20 4e | 55 4c 4c 29 0a 58 09 7b |ist *) N|ULL).X.{|
|000061e0| 0a 58 09 09 73 70 72 69 | 6e 74 66 28 73 63 72 61 |.X..spri|ntf(scra|
|000061f0| 74 63 68 62 75 66 2c 20 | 22 64 6f 6e 27 74 20 6b |tchbuf, |"don't k|
|00006200| 6e 6f 77 20 77 68 61 74 | 20 74 6f 20 64 6f 20 77 |now what| to do w|
|00006210| 69 74 68 20 25 73 20 62 | 65 63 61 75 73 65 20 6f |ith %s b|ecause o|
|00006220| 66 20 70 72 6f 62 6c 65 | 6d 73 20 77 69 74 68 20 |f proble|ms with |
|00006230| 25 73 22 2c 0a 58 09 09 | 09 6e 6f 64 65 2d 3e 6e |%s",.X..|.node->n|
|00006240| 5f 6e 61 6d 65 2c 20 6c | 69 73 74 5f 6e 61 6d 65 |_name, l|ist_name|
|00006250| 73 28 65 72 72 6e 6f 64 | 65 73 29 29 3b 0a 58 09 |s(errnod|es));.X.|
|00006260| 09 61 64 64 5f 65 72 72 | 6f 72 28 6e 6f 64 65 2c |.add_err|or(node,|
|00006270| 20 6e 65 77 5f 6e 61 6d | 65 28 73 63 72 61 74 63 | new_nam|e(scratc|
|00006280| 68 62 75 66 29 2c 20 65 | 72 72 6e 6f 64 65 73 2c |hbuf), e|rrnodes,|
|00006290| 20 54 52 55 45 29 3b 0a | 58 09 7d 0a 58 0a 58 09 | TRUE);.|X.}.X.X.|
|000062a0| 72 65 74 75 72 6e 20 79 | 6f 75 6e 67 65 73 74 3b |return y|oungest;|
|000062b0| 0a 58 7d 0a 58 0a 58 2f | 2a 0a 58 2a 2a 09 54 61 |.X}.X.X/|*.X**.Ta|
|000062c0| 6b 65 20 63 61 72 65 20 | 6f 66 20 74 68 65 20 6e |ke care |of the n|
|000062d0| 61 6d 65 73 20 6d 65 6e | 74 69 6f 6e 65 64 20 61 |ames men|tioned a|
|000062e0| 6c 6f 6e 67 73 69 64 65 | 20 6e 6f 64 65 27 73 0a |longside| node's.|
|000062f0| 58 2a 2a 09 6f 6e 20 74 | 68 65 20 6c 65 66 74 20 |X**.on t|he left |
|00006300| 68 61 6e 64 20 73 69 64 | 65 20 6f 66 20 74 68 65 |hand sid|e of the|
|00006310| 20 67 69 76 65 6e 20 67 | 72 6f 75 6e 64 20 65 6e | given g|round en|
|00006320| 74 72 79 2e 0a 58 2a 2a | 0a 58 2a 2a 09 49 66 20 |try..X**|.X**.If |
|00006330| 61 20 6e 6f 64 65 20 65 | 78 69 73 74 73 20 66 6f |a node e|xists fo|
|00006340| 72 20 6f 6e 65 20 6f 66 | 20 74 68 65 73 65 20 6e |r one of| these n|
|00006350| 61 6d 65 73 20 77 65 20 | 6b 6e 6f 77 20 74 68 61 |ames we |know tha|
|00006360| 74 0a 58 2a 2a 09 61 20 | 70 72 6f 64 75 63 65 72 |t.X**.a |producer|
|00006370| 20 6d 75 73 74 20 68 61 | 76 65 20 62 65 65 6e 20 | must ha|ve been |
|00006380| 63 68 6f 73 65 6e 20 66 | 6f 72 20 69 74 2c 20 61 |chosen f|or it, a|
|00006390| 6e 64 20 77 65 20 6b 6e | 6f 77 20 74 68 61 74 0a |nd we kn|ow that.|
|000063a0| 58 2a 2a 09 69 74 20 69 | 73 20 6e 6f 74 20 74 68 |X**.it i|s not th|
|000063b0| 69 73 20 72 75 6c 65 20 | 28 69 66 20 69 74 20 77 |is rule |(if it w|
|000063c0| 65 72 65 2c 20 74 68 65 | 6e 20 74 68 65 20 63 61 |ere, the|n the ca|
|000063d0| 6c 6c 65 72 20 77 6f 75 | 6c 64 20 6e 6f 74 0a 58 |ller wou|ld not.X|
|000063e0| 2a 2a 09 68 61 76 65 20 | 64 6f 6e 65 20 61 6e 79 |**.have |done any|
|000063f0| 74 68 69 6e 67 20 61 62 | 6f 75 74 20 62 75 64 64 |thing ab|out budd|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.