home *** CD-ROM | disk | FTP | other *** search
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).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| 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)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 78 0a 50 61 74 68 3a |.sources|.x.Path:|
|00000020| 20 75 75 6e 65 74 21 74 | 68 69 6e 6b 2e 63 6f 6d | uunet!t|hink.com|
|00000030| 21 6d 69 70 73 21 6d 73 | 69 21 64 63 6d 61 72 74 |!mips!ms|i!dcmart|
|00000040| 69 6e 0a 46 72 6f 6d 3a | 20 63 72 6f 77 6c 65 79 |in.From:| crowley|
|00000050| 40 63 68 61 63 6f 2e 63 | 73 2e 75 6e 6d 2e 65 64 |@chaco.c|s.unm.ed|
|00000060| 75 20 28 43 68 61 72 6c | 69 65 20 43 72 6f 77 6c |u (Charl|ie Crowl|
|00000070| 65 79 29 0a 53 75 62 6a | 65 63 74 3a 20 76 31 37 |ey).Subj|ect: v17|
|00000080| 69 30 30 37 3a 20 70 6f | 69 6e 74 20 74 65 78 74 |i007: po|int text|
|00000090| 20 65 64 69 74 6f 72 20 | 28 54 43 4c 20 61 6e 64 | editor |(TCL and|
|000000a0| 20 54 4b 29 2c 20 50 61 | 72 74 30 36 2f 31 36 0a | TK), Pa|rt06/16.|
|000000b0| 4d 65 73 73 61 67 65 2d | 49 44 3a 20 3c 31 39 39 |Message-|ID: <199|
|000000c0| 32 4d 61 72 31 38 2e 31 | 34 31 34 33 31 2e 32 36 |2Mar18.1|41431.26|
|000000d0| 37 36 37 40 6d 73 69 2e | 63 6f 6d 3e 0a 4f 72 69 |767@msi.|com>.Ori|
|000000e0| 67 69 6e 61 74 6f 72 3a | 20 64 63 6d 61 72 74 69 |ginator:| dcmarti|
|000000f0| 6e 40 66 61 73 63 65 74 | 0a 53 65 6e 64 65 72 3a |n@fascet|.Sender:|
|00000100| 20 64 63 6d 61 72 74 69 | 6e 40 6d 73 69 2e 63 6f | dcmarti|n@msi.co|
|00000110| 6d 20 28 44 61 76 69 64 | 20 43 2e 20 4d 61 72 74 |m (David| C. Mart|
|00000120| 69 6e 20 2d 20 4d 6f 64 | 65 72 61 74 6f 72 29 0a |in - Mod|erator).|
|00000130| 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e 3a 20 4d 6f |Organiza|tion: Mo|
|00000140| 6c 65 63 75 6c 61 72 20 | 53 69 6d 75 6c 61 74 69 |lecular |Simulati|
|00000150| 6f 6e 73 2c 20 49 6e 63 | 2e 0a 52 65 66 65 72 65 |ons, Inc|..Refere|
|00000160| 6e 63 65 73 3a 20 3c 63 | 73 78 2d 31 37 69 30 30 |nces: <c|sx-17i00|
|00000170| 32 2d 74 63 6c 2d 65 64 | 69 74 6f 72 40 75 75 6e |2-tcl-ed|itor@uun|
|00000180| 65 74 2e 55 55 2e 4e 45 | 54 3e 0a 44 61 74 65 3a |et.UU.NE|T>.Date:|
|00000190| 20 57 65 64 2c 20 31 38 | 20 4d 61 72 20 31 39 39 | Wed, 18| Mar 199|
|000001a0| 32 20 31 34 3a 31 34 3a | 33 31 20 47 4d 54 0a 41 |2 14:14:|31 GMT.A|
|000001b0| 70 70 72 6f 76 65 64 3a | 20 64 63 6d 61 72 74 69 |pproved:| dcmarti|
|000001c0| 6e 40 6d 73 69 2e 63 6f | 6d 0a 0a 53 75 62 6d 69 |n@msi.co|m..Submi|
|000001d0| 74 74 65 64 2d 62 79 3a | 20 63 72 6f 77 6c 65 79 |tted-by:| crowley|
|000001e0| 40 63 68 61 63 6f 2e 63 | 73 2e 75 6e 6d 2e 65 64 |@chaco.c|s.unm.ed|
|000001f0| 75 20 28 43 68 61 72 6c | 69 65 20 43 72 6f 77 6c |u (Charl|ie Crowl|
|00000200| 65 79 29 0a 50 6f 73 74 | 69 6e 67 2d 6e 75 6d 62 |ey).Post|ing-numb|
|00000210| 65 72 3a 20 56 6f 6c 75 | 6d 65 20 31 37 2c 20 49 |er: Volu|me 17, I|
|00000220| 73 73 75 65 20 37 0a 41 | 72 63 68 69 76 65 2d 6e |ssue 7.A|rchive-n|
|00000230| 61 6d 65 3a 20 74 63 6c | 2d 65 64 69 74 6f 72 2f |ame: tcl|-editor/|
|00000240| 70 61 72 74 30 36 0a 0a | 23 21 20 2f 62 69 6e 2f |part06..|#! /bin/|
|00000250| 73 68 0a 23 20 54 68 69 | 73 20 69 73 20 61 20 73 |sh.# Thi|s is a s|
|00000260| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2e 20 20 52 |hell arc|hive. R|
|00000270| 65 6d 6f 76 65 20 61 6e | 79 74 68 69 6e 67 20 62 |emove an|ything b|
|00000280| 65 66 6f 72 65 20 74 68 | 69 73 20 6c 69 6e 65 2c |efore th|is line,|
|00000290| 20 74 68 65 6e 20 75 6e | 70 61 63 6b 0a 23 20 69 | then un|pack.# i|
|000002a0| 74 20 62 79 20 73 61 76 | 69 6e 67 20 69 74 20 69 |t by sav|ing it i|
|000002b0| 6e 74 6f 20 61 20 66 69 | 6c 65 20 61 6e 64 20 74 |nto a fi|le and t|
|000002c0| 79 70 69 6e 67 20 22 73 | 68 20 66 69 6c 65 22 2e |yping "s|h file".|
|000002d0| 20 20 54 6f 20 6f 76 65 | 72 77 72 69 74 65 20 65 | To ove|rwrite e|
|000002e0| 78 69 73 74 69 6e 67 0a | 23 20 66 69 6c 65 73 2c |xisting.|# files,|
|000002f0| 20 74 79 70 65 20 22 73 | 68 20 66 69 6c 65 20 2d | type "s|h file -|
|00000300| 63 22 2e 20 20 59 6f 75 | 20 63 61 6e 20 61 6c 73 |c". You| can als|
|00000310| 6f 20 66 65 65 64 20 74 | 68 69 73 20 61 73 20 73 |o feed t|his as s|
|00000320| 74 61 6e 64 61 72 64 20 | 69 6e 70 75 74 20 76 69 |tandard |input vi|
|00000330| 61 0a 23 20 75 6e 73 68 | 61 72 2c 20 6f 72 20 62 |a.# unsh|ar, or b|
|00000340| 79 20 74 79 70 69 6e 67 | 20 22 73 68 20 3c 66 69 |y typing| "sh <fi|
|00000350| 6c 65 22 2c 20 65 2e 67 | 2e 2e 20 20 49 66 20 74 |le", e.g|.. If t|
|00000360| 68 69 73 20 61 72 63 68 | 69 76 65 20 69 73 20 63 |his arch|ive is c|
|00000370| 6f 6d 70 6c 65 74 65 2c | 20 79 6f 75 0a 23 20 77 |omplete,| you.# w|
|00000380| 69 6c 6c 20 73 65 65 20 | 74 68 65 20 66 6f 6c 6c |ill see |the foll|
|00000390| 6f 77 69 6e 67 20 6d 65 | 73 73 61 67 65 20 61 74 |owing me|ssage at|
|000003a0| 20 74 68 65 20 65 6e 64 | 3a 0a 23 09 09 22 45 6e | the end|:.#.."En|
|000003b0| 64 20 6f 66 20 61 72 63 | 68 69 76 65 20 35 20 28 |d of arc|hive 5 (|
|000003c0| 6f 66 20 31 35 29 2e 22 | 0a 23 20 43 6f 6e 74 65 |of 15)."|.# Conte|
|000003d0| 6e 74 73 3a 20 20 61 6e | 61 4f 62 6a 65 63 74 73 |nts: an|aObjects|
|000003e0| 2e 63 20 64 69 73 70 6c | 61 79 2e 63 20 6d 6f 75 |.c displ|ay.c mou|
|000003f0| 73 65 2e 63 20 73 65 61 | 72 63 68 2e 63 0a 23 20 |se.c sea|rch.c.# |
|00000400| 57 72 61 70 70 65 64 20 | 62 79 20 63 72 6f 77 6c |Wrapped |by crowl|
|00000410| 65 79 40 63 68 61 63 6f | 2e 63 73 2e 75 6e 6d 2e |ey@chaco|.cs.unm.|
|00000420| 65 64 75 20 6f 6e 20 54 | 75 65 20 4d 61 72 20 31 |edu on T|ue Mar 1|
|00000430| 30 20 31 35 3a 30 35 3a | 33 39 20 31 39 39 32 0a |0 15:05:|39 1992.|
|00000440| 50 41 54 48 3d 2f 62 69 | 6e 3a 2f 75 73 72 2f 62 |PATH=/bi|n:/usr/b|
|00000450| 69 6e 3a 2f 75 73 72 2f | 75 63 62 20 3b 20 65 78 |in:/usr/|ucb ; ex|
|00000460| 70 6f 72 74 20 50 41 54 | 48 0a 69 66 20 74 65 73 |port PAT|H.if tes|
|00000470| 74 20 2d 66 20 27 61 6e | 61 4f 62 6a 65 63 74 73 |t -f 'an|aObjects|
|00000480| 2e 63 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |.c' -a "|${1}" !=|
|00000490| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|000004a0| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|000004b0| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|000004c0| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 61 6e 61 |ting fil|e \"'ana|
|000004d0| 4f 62 6a 65 63 74 73 2e | 63 27 5c 22 0a 65 6c 73 |Objects.|c'\".els|
|000004e0| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|000004f0| 72 61 63 74 69 6e 67 20 | 5c 22 27 61 6e 61 4f 62 |racting |\"'anaOb|
|00000500| 6a 65 63 74 73 2e 63 27 | 5c 22 20 5c 28 31 30 39 |jects.c'|\" \(109|
|00000510| 33 33 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |33 chara|cters\).|
|00000520| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 61 |sed "s/^|X//" >'a|
|00000530| 6e 61 4f 62 6a 65 63 74 | 73 2e 63 27 20 3c 3c 27 |naObject|s.c' <<'|
|00000540| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 27 0a 58 2f 2a |END_OF_F|ILE'.X/*|
|00000550| 20 24 48 65 61 64 65 72 | 3a 20 2f 6e 66 73 2f 75 | $Header|: /nfs/u|
|00000560| 6e 6d 76 61 78 2f 66 61 | 63 75 6c 74 79 2f 63 72 |nmvax/fa|culty/cr|
|00000570| 6f 77 6c 65 79 2f 78 2f | 70 74 2f 52 43 53 2f 61 |owley/x/|pt/RCS/a|
|00000580| 6e 61 4f 62 6a 65 63 74 | 73 2e 63 2c 76 20 31 2e |naObject|s.c,v 1.|
|00000590| 33 20 31 39 39 32 2f 30 | 33 2f 30 34 20 31 37 3a |3 1992/0|3/04 17:|
|000005a0| 30 37 3a 31 38 20 63 72 | 6f 77 6c 65 79 20 45 78 |07:18 cr|owley Ex|
|000005b0| 70 20 63 72 6f 77 6c 65 | 79 20 24 20 2a 2f 0a 58 |p crowle|y $ */.X|
|000005c0| 0a 58 23 69 66 64 65 66 | 20 48 59 50 45 52 54 45 |.X#ifdef| HYPERTE|
|000005d0| 58 54 0a 58 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |XT.X#inc|lude <sy|
|000005e0| 73 2f 74 79 70 65 73 2e | 68 3e 0a 58 23 69 6e 63 |s/types.|h>.X#inc|
|000005f0| 6c 75 64 65 20 3c 73 79 | 73 2f 66 69 6c 65 2e 68 |lude <sy|s/file.h|
|00000600| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 74 72 |>.X#incl|ude <str|
|00000610| 69 6e 67 2e 68 3e 0a 58 | 23 69 6e 63 6c 75 64 65 |ing.h>.X|#include|
|00000620| 20 22 70 74 2e 68 22 0a | 58 0a 74 79 70 65 64 65 | "pt.h".|X.typede|
|00000630| 66 20 73 74 72 75 63 74 | 20 6f 62 6a 65 63 74 5f |f struct| object_|
|00000640| 74 61 62 6c 65 5f 74 61 | 67 20 7b 0a 58 09 63 68 |table_ta|g {.X.ch|
|00000650| 61 72 20 2a 6e 61 6d 65 | 3b 0a 58 09 69 6e 74 20 |ar *name|;.X.int |
|00000660| 73 69 7a 65 3b 0a 58 7d | 20 6f 62 6a 65 63 74 5f |size;.X}| object_|
|00000670| 74 61 62 6c 65 5f 65 6e | 74 72 79 3b 0a 58 0a 73 |table_en|try;.X.s|
|00000680| 74 61 74 69 63 20 6f 62 | 6a 65 63 74 5f 74 61 62 |tatic ob|ject_tab|
|00000690| 6c 65 5f 65 6e 74 72 79 | 20 4f 62 6a 65 63 74 54 |le_entry| ObjectT|
|000006a0| 61 62 6c 65 5b 5d 20 3d | 20 7b 0a 58 09 7b 22 22 |able[] =| {.X.{""|
|000006b0| 2c 20 30 7d 2c 09 2f 2a | 20 64 75 6d 6d 79 20 73 |, 0},./*| dummy s|
|000006c0| 6f 20 77 65 20 63 61 6e | 20 61 76 6f 69 64 20 6d |o we can| avoid m|
|000006d0| 61 67 69 63 20 6e 75 6d | 62 65 72 73 20 6f 66 20 |agic num|bers of |
|000006e0| 30 20 2a 2f 0a 58 09 7b | 22 41 74 74 72 69 62 75 |0 */.X.{|"Attribu|
|000006f0| 74 65 22 2c 20 73 69 7a | 65 6f 66 28 41 74 74 72 |te", siz|eof(Attr|
|00000700| 69 62 75 74 65 53 74 72 | 75 63 74 29 7d 2c 0a 58 |ibuteStr|uct)},.X|
|00000710| 09 7b 22 42 6c 6f 63 6b | 22 2c 20 73 69 7a 65 6f |.{"Block|", sizeo|
|00000720| 66 28 42 6c 6f 63 6b 53 | 74 72 75 63 74 29 7d 2c |f(BlockS|truct)},|
|00000730| 0a 58 09 7b 22 44 6f 63 | 75 6d 65 6e 74 22 2c 20 |.X.{"Doc|ument", |
|00000740| 73 69 7a 65 6f 66 28 44 | 6f 63 75 6d 65 6e 74 53 |sizeof(D|ocumentS|
|00000750| 74 72 75 63 74 29 7d 2c | 0a 58 09 7b 22 46 69 6c |truct)},|.X.{"Fil|
|00000760| 65 22 2c 20 73 69 7a 65 | 6f 66 28 46 69 6c 65 53 |e", size|of(FileS|
|00000770| 74 72 75 63 74 29 7d 2c | 0a 58 09 7b 22 4c 69 6e |truct)},|.X.{"Lin|
|00000780| 6b 22 2c 20 73 69 7a 65 | 6f 66 28 4c 69 6e 6b 53 |k", size|of(LinkS|
|00000790| 74 72 75 63 74 29 7d 2c | 0a 58 09 7b 22 4d 61 70 |truct)},|.X.{"Map|
|000007a0| 22 2c 20 73 69 7a 65 6f | 66 28 4d 61 70 53 74 72 |", sizeo|f(MapStr|
|000007b0| 75 63 74 29 7d 2c 0a 58 | 09 7b 22 4d 61 72 6b 65 |uct)},.X|.{"Marke|
|000007c0| 72 22 2c 20 73 69 7a 65 | 6f 66 28 42 6c 6f 63 6b |r", size|of(Block|
|000007d0| 4d 61 72 6b 65 72 53 74 | 72 75 63 74 29 7d 2c 0a |MarkerSt|ruct)},.|
|000007e0| 58 09 7b 22 54 65 78 74 | 22 2c 20 73 69 7a 65 6f |X.{"Text|", sizeo|
|000007f0| 66 28 54 65 78 74 53 74 | 72 75 63 74 29 7d 2c 0a |f(TextSt|ruct)},.|
|00000800| 58 09 7b 22 56 69 65 77 | 22 2c 20 73 69 7a 65 6f |X.{"View|", sizeo|
|00000810| 66 28 56 69 65 77 53 74 | 72 75 63 74 29 7d 2c 0a |f(ViewSt|ruct)},.|
|00000820| 58 7d 3b 0a 58 0a 44 42 | 4d 20 2a 0a 4f 70 65 6e |X};.X.DB|M *.Open|
|00000830| 4f 62 6a 65 63 74 73 28 | 6e 61 6d 65 29 0a 58 09 |Objects(|name).X.|
|00000840| 53 74 72 69 6e 67 20 6e | 61 6d 65 3b 0a 58 7b 0a |String n|ame;.X{.|
|00000850| 58 09 72 65 74 75 72 6e | 20 64 62 6d 5f 6f 70 65 |X.return| dbm_ope|
|00000860| 6e 28 20 6e 61 6d 65 2c | 20 4f 5f 52 44 57 52 20 |n( name,| O_RDWR |
|00000870| 7c 20 4f 5f 43 52 45 41 | 54 2c 20 30 36 34 34 20 || O_CREA|T, 0644 |
|00000880| 29 3b 0a 58 7d 0a 58 0a | 76 6f 69 64 0a 43 6c 6f |);.X}.X.|void.Clo|
|00000890| 73 65 4f 62 6a 65 63 74 | 73 28 20 64 62 20 29 0a |seObject|s( db ).|
|000008a0| 58 09 44 42 4d 20 2a 64 | 62 3b 0a 58 7b 0a 58 09 |X.DBM *d|b;.X{.X.|
|000008b0| 64 62 6d 5f 63 6c 6f 73 | 65 28 20 64 62 20 29 3b |dbm_clos|e( db );|
|000008c0| 0a 58 7d 0a 58 0a 76 6f | 69 64 0a 44 75 6d 70 44 |.X}.X.vo|id.DumpD|
|000008d0| 42 28 20 64 62 20 29 0a | 58 09 44 42 4d 20 2a 64 |B( db ).|X.DBM *d|
|000008e0| 62 3b 0a 58 7b 0a 58 09 | 64 61 74 75 6d 20 64 5f |b;.X{.X.|datum d_|
|000008f0| 6f 75 74 3b 0a 58 09 0a | 58 09 64 5f 6f 75 74 20 |out;.X..|X.d_out |
|00000900| 3d 20 64 62 6d 5f 66 69 | 72 73 74 6b 65 79 28 20 |= dbm_fi|rstkey( |
|00000910| 64 62 20 29 3b 0a 58 09 | 77 68 69 6c 65 28 20 64 |db );.X.|while( d|
|00000920| 5f 6f 75 74 2e 64 70 74 | 72 20 21 3d 20 4e 55 4c |_out.dpt|r != NUL|
|00000930| 4c 20 29 20 7b 0a 58 09 | 09 41 6e 61 4f 62 6a 65 |L ) {.X.|.AnaObje|
|00000940| 63 74 20 6f 62 6a 65 63 | 74 20 3d 20 28 41 6e 61 |ct objec|t = (Ana|
|00000950| 4f 62 6a 65 63 74 29 64 | 5f 6f 75 74 2e 64 70 74 |Object)d|_out.dpt|
|00000960| 72 3b 0a 58 09 09 70 72 | 69 6e 74 66 28 22 6d 61 |r;.X..pr|intf("ma|
|00000970| 67 69 63 3d 25 64 20 69 | 64 3d 25 64 20 6e 65 78 |gic=%d i|d=%d nex|
|00000980| 74 3d 25 64 20 6e 61 6d | 65 20 69 73 20 25 73 5c |t=%d nam|e is %s\|
|00000990| 6e 22 2c 0a 58 09 09 09 | 6f 62 6a 65 63 74 2d 3e |n",.X...|object->|
|000009a0| 6d 61 67 69 63 2c 20 6f | 62 6a 65 63 74 2d 3e 74 |magic, o|bject->t|
|000009b0| 68 69 73 5f 6f 6e 65 2c | 0a 58 09 09 09 6f 62 6a |his_one,|.X...obj|
|000009c0| 65 63 74 2d 3e 6e 65 78 | 74 2c 20 6f 62 6a 65 63 |ect->nex|t, objec|
|000009d0| 74 2d 3e 6e 61 6d 65 29 | 3b 0a 58 09 09 64 5f 6f |t->name)|;.X..d_o|
|000009e0| 75 74 20 3d 20 64 62 6d | 5f 6e 65 78 74 6b 65 79 |ut = dbm|_nextkey|
|000009f0| 28 20 64 62 20 29 3b 0a | 58 09 7d 0a 58 7d 0a 58 |( db );.|X.}.X}.X|
|00000a00| 0a 41 6e 61 4f 62 6a 65 | 63 74 0a 47 65 74 4f 62 |.AnaObje|ct.GetOb|
|00000a10| 6a 65 63 74 28 20 64 62 | 2c 20 6d 61 67 69 63 2c |ject( db|, magic,|
|00000a20| 20 69 64 2c 20 61 6c 6c | 6f 63 61 74 65 20 29 0a | id, all|ocate ).|
|00000a30| 58 09 44 42 4d 20 2a 64 | 62 3b 0a 58 09 4d 61 67 |X.DBM *d|b;.X.Mag|
|00000a40| 69 63 4e 75 6d 62 65 72 | 20 6d 61 67 69 63 3b 0a |icNumber| magic;.|
|00000a50| 58 09 49 44 20 69 64 3b | 0a 58 09 41 6c 6c 6f 63 |X.ID id;|.X.Alloc|
|00000a60| 61 74 69 6f 6e 4d 6f 64 | 65 20 61 6c 6c 6f 63 61 |ationMod|e alloca|
|00000a70| 74 65 3b 0a 58 7b 0a 58 | 09 64 61 74 75 6d 20 64 |te;.X{.X|.datum d|
|00000a80| 5f 69 6e 2c 20 64 5f 6f | 75 74 3b 0a 58 09 41 6e |_in, d_o|ut;.X.An|
|00000a90| 61 4f 62 6a 65 63 74 20 | 6f 62 6a 65 63 74 3b 0a |aObject |object;.|
|00000aa0| 58 0a 58 09 64 5f 69 6e | 2e 64 70 74 72 20 3d 20 |X.X.d_in|.dptr = |
|00000ab0| 28 63 68 61 72 20 2a 29 | 26 69 64 3b 0a 58 09 64 |(char *)|&id;.X.d|
|00000ac0| 5f 69 6e 2e 64 73 69 7a | 65 20 3d 20 73 69 7a 65 |_in.dsiz|e = size|
|00000ad0| 6f 66 28 49 44 29 3b 0a | 58 09 64 5f 6f 75 74 20 |of(ID);.|X.d_out |
|00000ae0| 3d 20 64 62 6d 5f 66 65 | 74 63 68 28 20 64 62 2c |= dbm_fe|tch( db,|
|00000af0| 20 64 5f 69 6e 20 29 3b | 0a 58 09 69 66 28 20 64 | d_in );|.X.if( d|
|00000b00| 5f 6f 75 74 2e 64 70 74 | 72 20 3d 3d 20 4e 55 4c |_out.dpt|r == NUL|
|00000b10| 4c 20 29 20 7b 0a 58 09 | 09 70 72 69 6e 74 66 28 |L ) {.X.|.printf(|
|00000b20| 22 6e 64 62 6d 20 45 52 | 52 4f 52 20 69 6e 20 47 |"ndbm ER|ROR in G|
|00000b30| 65 74 25 73 20 63 61 6e | 27 74 20 66 69 6e 64 20 |et%s can|'t find |
|00000b40| 69 64 3d 25 64 5c 6e 22 | 2c 0a 58 09 09 09 4f 62 |id=%d\n"|,.X...Ob|
|00000b50| 6a 65 63 74 54 61 62 6c | 65 5b 6d 61 67 69 63 5d |jectTabl|e[magic]|
|00000b60| 2e 6e 61 6d 65 2c 20 69 | 64 29 3b 0a 58 09 09 64 |.name, i|d);.X..d|
|00000b70| 62 6d 5f 63 6c 65 61 72 | 65 72 72 28 20 64 62 20 |bm_clear|err( db |
|00000b80| 29 3b 0a 58 09 09 72 65 | 74 75 72 6e 20 4e 55 4c |);.X..re|turn NUL|
|00000b90| 4c 3b 0a 58 09 7d 0a 58 | 09 69 66 28 20 64 5f 6f |L;.X.}.X|.if( d_o|
|00000ba0| 75 74 2e 64 73 69 7a 65 | 20 21 3d 20 4f 62 6a 65 |ut.dsize| != Obje|
|00000bb0| 63 74 54 61 62 6c 65 5b | 6d 61 67 69 63 5d 2e 73 |ctTable[|magic].s|
|00000bc0| 69 7a 65 20 29 20 7b 0a | 58 09 09 70 72 69 6e 74 |ize ) {.|X..print|
|00000bd0| 66 28 22 6e 64 62 6d 20 | 45 52 52 4f 52 20 69 6e |f("ndbm |ERROR in|
|00000be0| 20 47 65 74 25 73 20 69 | 64 3d 25 64 2c 20 77 72 | Get%s i|d=%d, wr|
|00000bf0| 6f 6e 67 20 73 69 7a 65 | 2e 22 2c 0a 58 09 09 09 |ong size|.",.X...|
|00000c00| 4f 62 6a 65 63 74 54 61 | 62 6c 65 5b 6d 61 67 69 |ObjectTa|ble[magi|
|00000c10| 63 5d 2e 6e 61 6d 65 2c | 20 69 64 29 3b 0a 58 09 |c].name,| id);.X.|
|00000c20| 09 70 72 69 6e 74 66 28 | 22 20 53 69 7a 65 20 69 |.printf(|" Size i|
|00000c30| 73 20 25 64 20 61 6e 64 | 20 69 74 20 73 68 6f 75 |s %d and| it shou|
|00000c40| 6c 64 20 62 65 20 25 64 | 5c 6e 22 2c 20 64 5f 6f |ld be %d|\n", d_o|
|00000c50| 75 74 2e 64 73 69 7a 65 | 2c 0a 58 09 09 09 4f 62 |ut.dsize|,.X...Ob|
|00000c60| 6a 65 63 74 54 61 62 6c | 65 5b 6d 61 67 69 63 5d |jectTabl|e[magic]|
|00000c70| 2e 73 69 7a 65 20 29 3b | 0a 58 09 09 72 65 74 75 |.size );|.X..retu|
|00000c80| 72 6e 20 4e 55 4c 4c 3b | 0a 58 09 7d 0a 58 09 6f |rn NULL;|.X.}.X.o|
|00000c90| 62 6a 65 63 74 20 3d 20 | 28 41 6e 61 4f 62 6a 65 |bject = |(AnaObje|
|00000ca0| 63 74 29 64 5f 6f 75 74 | 2e 64 70 74 72 3b 0a 58 |ct)d_out|.dptr;.X|
|00000cb0| 09 69 66 28 20 6f 62 6a | 65 63 74 2d 3e 6d 61 67 |.if( obj|ect->mag|
|00000cc0| 69 63 20 21 3d 20 6d 61 | 67 69 63 20 29 20 7b 0a |ic != ma|gic ) {.|
|00000cd0| 58 09 09 70 72 69 6e 74 | 66 28 22 6e 64 62 6d 20 |X..print|f("ndbm |
|00000ce0| 45 52 52 4f 52 20 69 6e | 20 47 65 74 25 73 20 69 |ERROR in| Get%s i|
|00000cf0| 64 3d 25 64 2c 20 77 72 | 6f 6e 67 20 6d 61 67 69 |d=%d, wr|ong magi|
|00000d00| 63 20 6e 75 6d 62 65 72 | 2e 22 2c 0a 58 09 09 09 |c number|.",.X...|
|00000d10| 4f 62 6a 65 63 74 54 61 | 62 6c 65 5b 6d 61 67 69 |ObjectTa|ble[magi|
|00000d20| 63 5d 2e 6e 61 6d 65 2c | 20 69 64 29 3b 0a 58 09 |c].name,| id);.X.|
|00000d30| 09 70 72 69 6e 74 66 28 | 22 4d 61 67 69 63 20 6e |.printf(|"Magic n|
|00000d40| 75 6d 62 65 72 20 69 73 | 20 25 64 20 61 6e 64 20 |umber is| %d and |
|00000d50| 69 74 20 73 68 6f 75 6c | 64 20 62 65 20 25 64 5c |it shoul|d be %d\|
|00000d60| 6e 22 2c 0a 58 09 09 09 | 6f 62 6a 65 63 74 2d 3e |n",.X...|object->|
|00000d70| 6d 61 67 69 63 2c 20 6d | 61 67 69 63 29 3b 0a 58 |magic, m|agic);.X|
|00000d80| 09 09 72 65 74 75 72 6e | 20 4e 55 4c 4c 3b 0a 58 |..return| NULL;.X|
|00000d90| 09 7d 0a 58 09 69 66 28 | 20 61 6c 6c 6f 63 61 74 |.}.X.if(| allocat|
|00000da0| 65 20 29 20 7b 0a 58 09 | 09 6f 62 6a 65 63 74 20 |e ) {.X.|.object |
|00000db0| 3d 20 28 41 6e 61 4f 62 | 6a 65 63 74 29 50 74 4d |= (AnaOb|ject)PtM|
|00000dc0| 61 6c 6c 6f 63 28 20 64 | 5f 6f 75 74 2e 64 73 69 |alloc( d|_out.dsi|
|00000dd0| 7a 65 2c 20 22 61 6e 61 | 20 6f 62 6a 65 63 74 22 |ze, "ana| object"|
|00000de0| 20 29 3b 0a 58 09 09 2f | 2a 20 63 6f 70 79 20 64 | );.X../|* copy d|
|00000df0| 5f 6f 75 74 2e 64 70 74 | 72 20 69 6e 74 6f 20 6f |_out.dpt|r into o|
|00000e00| 62 6a 65 63 74 20 2a 2f | 0a 58 09 09 6d 65 6d 63 |bject */|.X..memc|
|00000e10| 70 79 28 20 28 63 68 61 | 72 20 2a 29 6f 62 6a 65 |py( (cha|r *)obje|
|00000e20| 63 74 2c 20 28 63 68 61 | 72 20 2a 29 64 5f 6f 75 |ct, (cha|r *)d_ou|
|00000e30| 74 2e 64 70 74 72 2c 20 | 64 5f 6f 75 74 2e 64 73 |t.dptr, |d_out.ds|
|00000e40| 69 7a 65 20 29 3b 0a 58 | 09 7d 0a 58 09 72 65 74 |ize );.X|.}.X.ret|
|00000e50| 75 72 6e 20 6f 62 6a 65 | 63 74 3b 0a 58 7d 0a 58 |urn obje|ct;.X}.X|
|00000e60| 0a 76 6f 69 64 0a 50 75 | 74 4f 62 6a 65 63 74 28 |.void.Pu|tObject(|
|00000e70| 20 64 62 2c 20 6d 61 67 | 69 63 2c 20 6f 62 6a 65 | db, mag|ic, obje|
|00000e80| 63 74 2c 20 72 65 6c 65 | 61 73 65 20 29 0a 58 09 |ct, rele|ase ).X.|
|00000e90| 44 42 4d 20 2a 64 62 3b | 0a 58 09 4d 61 67 69 63 |DBM *db;|.X.Magic|
|00000ea0| 4e 75 6d 62 65 72 20 6d | 61 67 69 63 3b 0a 58 09 |Number m|agic;.X.|
|00000eb0| 41 6e 61 4f 62 6a 65 63 | 74 20 6f 62 6a 65 63 74 |AnaObjec|t object|
|00000ec0| 3b 0a 58 09 52 65 6c 65 | 61 73 65 4d 6f 64 65 20 |;.X.Rele|aseMode |
|00000ed0| 72 65 6c 65 61 73 65 3b | 0a 58 7b 0a 58 09 64 61 |release;|.X{.X.da|
|00000ee0| 74 75 6d 20 64 5f 6b 65 | 79 2c 20 64 5f 6f 62 6a |tum d_ke|y, d_obj|
|00000ef0| 65 63 74 3b 0a 58 09 69 | 6e 74 20 72 65 74 3b 0a |ect;.X.i|nt ret;.|
|00000f00| 58 0a 58 09 69 66 28 20 | 6f 62 6a 65 63 74 20 3d |X.X.if( |object =|
|00000f10| 3d 20 4e 55 4c 4c 20 29 | 0a 58 09 09 72 65 74 75 |= NULL )|.X..retu|
|00000f20| 72 6e 3b 0a 58 09 64 5f | 6b 65 79 2e 64 70 74 72 |rn;.X.d_|key.dptr|
|00000f30| 20 3d 20 28 63 68 61 72 | 20 2a 29 26 28 6f 62 6a | = (char| *)&(obj|
|00000f40| 65 63 74 2d 3e 74 68 69 | 73 5f 6f 6e 65 29 3b 0a |ect->thi|s_one);.|
|00000f50| 58 09 64 5f 6b 65 79 2e | 64 73 69 7a 65 20 3d 20 |X.d_key.|dsize = |
|00000f60| 73 69 7a 65 6f 66 28 49 | 44 29 3b 0a 58 09 64 5f |sizeof(I|D);.X.d_|
|00000f70| 6f 62 6a 65 63 74 2e 64 | 70 74 72 20 3d 20 28 63 |object.d|ptr = (c|
|00000f80| 68 61 72 20 2a 29 6f 62 | 6a 65 63 74 3b 0a 58 09 |har *)ob|ject;.X.|
|00000f90| 64 5f 6f 62 6a 65 63 74 | 2e 64 73 69 7a 65 20 3d |d_object|.dsize =|
|00000fa0| 20 4f 62 6a 65 63 74 54 | 61 62 6c 65 5b 6d 61 67 | ObjectT|able[mag|
|00000fb0| 69 63 5d 2e 73 69 7a 65 | 3b 0a 58 09 72 65 74 20 |ic].size|;.X.ret |
|00000fc0| 3d 20 64 62 6d 5f 73 74 | 6f 72 65 28 20 64 62 2c |= dbm_st|ore( db,|
|00000fd0| 20 64 5f 6b 65 79 2c 20 | 64 5f 6f 62 6a 65 63 74 | d_key, |d_object|
|00000fe0| 2c 20 44 42 4d 5f 52 45 | 50 4c 41 43 45 29 3b 0a |, DBM_RE|PLACE);.|
|00000ff0| 58 09 69 66 28 20 72 65 | 74 20 21 3d 20 30 20 29 |X.if( re|t != 0 )|
|00001000| 0a 58 09 09 70 72 69 6e | 74 66 28 22 6e 64 62 6d |.X..prin|tf("ndbm|
|00001010| 20 45 52 52 4f 52 20 69 | 6e 20 50 75 74 25 73 2c | ERROR i|n Put%s,|
|00001020| 20 72 65 74 3d 25 64 5c | 6e 22 2c 0a 58 09 09 09 | ret=%d\|n",.X...|
|00001030| 4f 62 6a 65 63 74 54 61 | 62 6c 65 5b 6d 61 67 69 |ObjectTa|ble[magi|
|00001040| 63 5d 2e 6e 61 6d 65 2c | 20 72 65 74 29 3b 0a 58 |c].name,| ret);.X|
|00001050| 09 69 66 28 20 72 65 6c | 65 61 73 65 20 29 0a 58 |.if( rel|ease ).X|
|00001060| 09 09 50 74 46 72 65 65 | 28 20 28 63 68 61 72 20 |..PtFree|( (char |
|00001070| 2a 29 6f 62 6a 65 63 74 | 20 29 3b 0a 58 7d 0a 58 |*)object| );.X}.X|
|00001080| 0a 42 6c 6f 63 6b 0a 47 | 65 74 42 6c 6f 63 6b 28 |.Block.G|etBlock(|
|00001090| 20 64 62 2c 20 62 6c 6f | 63 6b 49 44 2c 20 61 6c | db, blo|ckID, al|
|000010a0| 6c 6f 63 61 74 65 20 29 | 0a 58 09 44 42 4d 20 2a |locate )|.X.DBM *|
|000010b0| 64 62 3b 0a 58 09 42 6c | 6f 63 6b 49 44 20 62 6c |db;.X.Bl|ockID bl|
|000010c0| 6f 63 6b 49 44 3b 0a 58 | 09 41 6c 6c 6f 63 61 74 |ockID;.X|.Allocat|
|000010d0| 69 6f 6e 4d 6f 64 65 20 | 61 6c 6c 6f 63 61 74 65 |ionMode |allocate|
|000010e0| 3b 0a 58 7b 0a 58 09 72 | 65 74 75 72 6e 20 28 42 |;.X{.X.r|eturn (B|
|000010f0| 6c 6f 63 6b 29 47 65 74 | 4f 62 6a 65 63 74 28 20 |lock)Get|Object( |
|00001100| 64 62 2c 20 42 6c 6f 63 | 6b 4d 61 67 69 63 2c 20 |db, Bloc|kMagic, |
|00001110| 28 49 44 29 62 6c 6f 63 | 6b 49 44 2c 20 61 6c 6c |(ID)bloc|kID, all|
|00001120| 6f 63 61 74 65 20 29 3b | 0a 58 7d 0a 58 0a 76 6f |ocate );|.X}.X.vo|
|00001130| 69 64 0a 50 75 74 42 6c | 6f 63 6b 28 20 64 62 2c |id.PutBl|ock( db,|
|00001140| 20 62 6c 6f 63 6b 2c 20 | 72 65 6c 65 61 73 65 20 | block, |release |
|00001150| 29 0a 58 09 44 42 4d 20 | 2a 64 62 3b 0a 58 09 42 |).X.DBM |*db;.X.B|
|00001160| 6c 6f 63 6b 20 62 6c 6f | 63 6b 3b 0a 58 09 52 65 |lock blo|ck;.X.Re|
|00001170| 6c 65 61 73 65 4d 6f 64 | 65 20 72 65 6c 65 61 73 |leaseMod|e releas|
|00001180| 65 3b 0a 58 7b 0a 58 09 | 50 75 74 4f 62 6a 65 63 |e;.X{.X.|PutObjec|
|00001190| 74 28 20 64 62 2c 20 42 | 6c 6f 63 6b 4d 61 67 69 |t( db, B|lockMagi|
|000011a0| 63 2c 20 28 41 6e 61 4f | 62 6a 65 63 74 29 62 6c |c, (AnaO|bject)bl|
|000011b0| 6f 63 6b 2c 20 72 65 6c | 65 61 73 65 20 29 3b 0a |ock, rel|ease );.|
|000011c0| 58 7d 0a 58 0a 41 74 74 | 72 69 62 75 74 65 0a 47 |X}.X.Att|ribute.G|
|000011d0| 65 74 41 74 74 72 69 62 | 75 74 65 28 20 64 62 2c |etAttrib|ute( db,|
|000011e0| 20 61 74 74 72 69 62 75 | 74 65 49 44 2c 20 61 6c | attribu|teID, al|
|000011f0| 6c 6f 63 61 74 65 20 29 | 0a 58 09 44 42 4d 20 2a |locate )|.X.DBM *|
|00001200| 64 62 3b 0a 58 09 41 74 | 74 72 69 62 75 74 65 49 |db;.X.At|tributeI|
|00001210| 44 20 61 74 74 72 69 62 | 75 74 65 49 44 3b 0a 58 |D attrib|uteID;.X|
|00001220| 09 41 6c 6c 6f 63 61 74 | 69 6f 6e 4d 6f 64 65 20 |.Allocat|ionMode |
|00001230| 61 6c 6c 6f 63 61 74 65 | 3b 0a 58 7b 0a 58 09 72 |allocate|;.X{.X.r|
|00001240| 65 74 75 72 6e 20 28 41 | 74 74 72 69 62 75 74 65 |eturn (A|ttribute|
|00001250| 29 47 65 74 4f 62 6a 65 | 63 74 28 64 62 2c 41 74 |)GetObje|ct(db,At|
|00001260| 74 72 69 62 75 74 65 4d | 61 67 69 63 2c 28 49 44 |tributeM|agic,(ID|
|00001270| 29 61 74 74 72 69 62 75 | 74 65 49 44 2c 61 6c 6c |)attribu|teID,all|
|00001280| 6f 63 61 74 65 29 3b 0a | 58 7d 0a 58 0a 76 6f 69 |ocate);.|X}.X.voi|
|00001290| 64 0a 50 75 74 41 74 74 | 72 69 62 75 74 65 28 20 |d.PutAtt|ribute( |
|000012a0| 64 62 2c 20 61 74 74 72 | 69 62 75 74 65 2c 20 72 |db, attr|ibute, r|
|000012b0| 65 6c 65 61 73 65 20 29 | 0a 58 09 44 42 4d 20 2a |elease )|.X.DBM *|
|000012c0| 64 62 3b 0a 58 09 41 74 | 74 72 69 62 75 74 65 20 |db;.X.At|tribute |
|000012d0| 61 74 74 72 69 62 75 74 | 65 3b 0a 58 09 52 65 6c |attribut|e;.X.Rel|
|000012e0| 65 61 73 65 4d 6f 64 65 | 20 72 65 6c 65 61 73 65 |easeMode| release|
|000012f0| 3b 0a 58 7b 0a 58 09 50 | 75 74 4f 62 6a 65 63 74 |;.X{.X.P|utObject|
|00001300| 28 20 64 62 2c 20 41 74 | 74 72 69 62 75 74 65 4d |( db, At|tributeM|
|00001310| 61 67 69 63 2c 20 28 41 | 6e 61 4f 62 6a 65 63 74 |agic, (A|naObject|
|00001320| 29 61 74 74 72 69 62 75 | 74 65 2c 20 72 65 6c 65 |)attribu|te, rele|
|00001330| 61 73 65 20 29 3b 0a 58 | 7d 0a 58 0a 4d 61 70 0a |ase );.X|}.X.Map.|
|00001340| 47 65 74 4d 61 70 28 20 | 64 62 2c 20 6d 61 70 49 |GetMap( |db, mapI|
|00001350| 44 2c 20 61 6c 6c 6f 63 | 61 74 65 20 29 0a 58 09 |D, alloc|ate ).X.|
|00001360| 44 42 4d 20 2a 64 62 3b | 0a 58 09 4d 61 70 49 44 |DBM *db;|.X.MapID|
|00001370| 20 6d 61 70 49 44 3b 0a | 58 09 41 6c 6c 6f 63 61 | mapID;.|X.Alloca|
|00001380| 74 69 6f 6e 4d 6f 64 65 | 20 61 6c 6c 6f 63 61 74 |tionMode| allocat|
|00001390| 65 3b 0a 58 7b 0a 58 09 | 72 65 74 75 72 6e 20 28 |e;.X{.X.|return (|
|000013a0| 4d 61 70 29 47 65 74 4f | 62 6a 65 63 74 28 20 64 |Map)GetO|bject( d|
|000013b0| 62 2c 20 4d 61 70 4d 61 | 67 69 63 2c 20 28 49 44 |b, MapMa|gic, (ID|
|000013c0| 29 6d 61 70 49 44 2c 20 | 61 6c 6c 6f 63 61 74 65 |)mapID, |allocate|
|000013d0| 20 29 3b 0a 58 7d 0a 58 | 0a 76 6f 69 64 0a 50 75 | );.X}.X|.void.Pu|
|000013e0| 74 4d 61 70 28 20 64 62 | 2c 20 6d 61 70 2c 20 72 |tMap( db|, map, r|
|000013f0| 65 6c 65 61 73 65 20 29 | 0a 58 09 44 42 4d 20 2a |elease )|.X.DBM *|
|00001400| 64 62 3b 0a 58 09 4d 61 | 70 20 6d 61 70 3b 0a 58 |db;.X.Ma|p map;.X|
|00001410| 09 52 65 6c 65 61 73 65 | 4d 6f 64 65 20 72 65 6c |.Release|Mode rel|
|00001420| 65 61 73 65 3b 0a 58 7b | 0a 58 09 50 75 74 4f 62 |ease;.X{|.X.PutOb|
|00001430| 6a 65 63 74 28 20 64 62 | 2c 20 4d 61 70 4d 61 67 |ject( db|, MapMag|
|00001440| 69 63 2c 20 28 41 6e 61 | 4f 62 6a 65 63 74 29 6d |ic, (Ana|Object)m|
|00001450| 61 70 2c 20 72 65 6c 65 | 61 73 65 20 29 3b 0a 58 |ap, rele|ase );.X|
|00001460| 7d 0a 58 0a 58 46 69 6c | 65 0a 47 65 74 46 69 6c |}.X.XFil|e.GetFil|
|00001470| 65 28 20 64 62 2c 20 66 | 69 6c 65 49 44 2c 20 61 |e( db, f|ileID, a|
|00001480| 6c 6c 6f 63 61 74 65 20 | 29 0a 58 09 44 42 4d 20 |llocate |).X.DBM |
|00001490| 2a 64 62 3b 0a 58 09 46 | 69 6c 65 49 44 20 66 69 |*db;.X.F|ileID fi|
|000014a0| 6c 65 49 44 3b 0a 58 09 | 41 6c 6c 6f 63 61 74 69 |leID;.X.|Allocati|
|000014b0| 6f 6e 4d 6f 64 65 20 61 | 6c 6c 6f 63 61 74 65 3b |onMode a|llocate;|
|000014c0| 0a 58 7b 0a 58 09 72 65 | 74 75 72 6e 20 28 46 69 |.X{.X.re|turn (Fi|
|000014d0| 6c 65 29 47 65 74 4f 62 | 6a 65 63 74 28 20 64 62 |le)GetOb|ject( db|
|000014e0| 2c 20 46 69 6c 65 4d 61 | 67 69 63 2c 20 28 49 44 |, FileMa|gic, (ID|
|000014f0| 29 66 69 6c 65 49 44 2c | 20 61 6c 6c 6f 63 61 74 |)fileID,| allocat|
|00001500| 65 20 29 3b 0a 58 7d 0a | 58 0a 76 6f 69 64 0a 50 |e );.X}.|X.void.P|
|00001510| 75 74 46 69 6c 65 28 20 | 64 62 2c 20 66 69 6c 65 |utFile( |db, file|
|00001520| 2c 20 72 65 6c 65 61 73 | 65 20 29 0a 58 09 44 42 |, releas|e ).X.DB|
|00001530| 4d 20 2a 64 62 3b 0a 58 | 09 46 69 6c 65 20 66 69 |M *db;.X|.File fi|
|00001540| 6c 65 3b 0a 58 09 52 65 | 6c 65 61 73 65 4d 6f 64 |le;.X.Re|leaseMod|
|00001550| 65 20 72 65 6c 65 61 73 | 65 3b 0a 58 7b 0a 58 09 |e releas|e;.X{.X.|
|00001560| 50 75 74 4f 62 6a 65 63 | 74 28 20 64 62 2c 20 46 |PutObjec|t( db, F|
|00001570| 69 6c 65 4d 61 67 69 63 | 2c 20 28 41 6e 61 4f 62 |ileMagic|, (AnaOb|
|00001580| 6a 65 63 74 29 66 69 6c | 65 2c 20 72 65 6c 65 61 |ject)fil|e, relea|
|00001590| 73 65 20 29 3b 0a 58 7d | 0a 58 0a 54 65 78 74 0a |se );.X}|.X.Text.|
|000015a0| 47 65 74 54 65 78 74 28 | 20 64 62 2c 20 74 65 78 |GetText(| db, tex|
|000015b0| 74 49 44 2c 20 61 6c 6c | 6f 63 61 74 65 20 29 0a |tID, all|ocate ).|
|000015c0| 58 09 44 42 4d 20 2a 64 | 62 3b 0a 58 09 54 65 78 |X.DBM *d|b;.X.Tex|
|000015d0| 74 49 44 20 74 65 78 74 | 49 44 3b 0a 58 09 41 6c |tID text|ID;.X.Al|
|000015e0| 6c 6f 63 61 74 69 6f 6e | 4d 6f 64 65 20 61 6c 6c |location|Mode all|
|000015f0| 6f 63 61 74 65 3b 0a 58 | 7b 0a 58 09 72 65 74 75 |ocate;.X|{.X.retu|
|00001600| 72 6e 20 28 54 65 78 74 | 29 47 65 74 4f 62 6a 65 |rn (Text|)GetObje|
|00001610| 63 74 28 20 64 62 2c 20 | 54 65 78 74 4d 61 67 69 |ct( db, |TextMagi|
|00001620| 63 2c 20 28 49 44 29 74 | 65 78 74 49 44 2c 20 61 |c, (ID)t|extID, a|
|00001630| 6c 6c 6f 63 61 74 65 20 | 29 3b 0a 58 7d 0a 58 0a |llocate |);.X}.X.|
|00001640| 76 6f 69 64 0a 50 75 74 | 54 65 78 74 28 20 64 62 |void.Put|Text( db|
|00001650| 2c 20 74 65 78 74 2c 20 | 72 65 6c 65 61 73 65 20 |, text, |release |
|00001660| 29 0a 58 09 44 42 4d 20 | 2a 64 62 3b 0a 58 09 54 |).X.DBM |*db;.X.T|
|00001670| 65 78 74 20 74 65 78 74 | 3b 0a 58 09 52 65 6c 65 |ext text|;.X.Rele|
|00001680| 61 73 65 4d 6f 64 65 20 | 72 65 6c 65 61 73 65 3b |aseMode |release;|
|00001690| 0a 58 7b 0a 58 09 50 75 | 74 4f 62 6a 65 63 74 28 |.X{.X.Pu|tObject(|
|000016a0| 20 64 62 2c 20 54 65 78 | 74 4d 61 67 69 63 2c 20 | db, Tex|tMagic, |
|000016b0| 28 41 6e 61 4f 62 6a 65 | 63 74 29 74 65 78 74 2c |(AnaObje|ct)text,|
|000016c0| 20 72 65 6c 65 61 73 65 | 20 29 3b 0a 58 7d 0a 58 | release| );.X}.X|
|000016d0| 0a 4c 69 6e 6b 0a 47 65 | 74 4c 69 6e 6b 28 20 64 |.Link.Ge|tLink( d|
|000016e0| 62 2c 20 6c 69 6e 6b 49 | 44 2c 20 61 6c 6c 6f 63 |b, linkI|D, alloc|
|000016f0| 61 74 65 20 29 0a 58 09 | 44 42 4d 20 2a 64 62 3b |ate ).X.|DBM *db;|
|00001700| 0a 58 09 4c 69 6e 6b 49 | 44 20 6c 69 6e 6b 49 44 |.X.LinkI|D linkID|
|00001710| 3b 0a 58 09 41 6c 6c 6f | 63 61 74 69 6f 6e 4d 6f |;.X.Allo|cationMo|
|00001720| 64 65 20 61 6c 6c 6f 63 | 61 74 65 3b 0a 58 7b 0a |de alloc|ate;.X{.|
|00001730| 58 09 72 65 74 75 72 6e | 20 28 4c 69 6e 6b 29 47 |X.return| (Link)G|
|00001740| 65 74 4f 62 6a 65 63 74 | 28 20 64 62 2c 20 4c 69 |etObject|( db, Li|
|00001750| 6e 6b 4d 61 67 69 63 2c | 20 28 49 44 29 6c 69 6e |nkMagic,| (ID)lin|
|00001760| 6b 49 44 2c 20 61 6c 6c | 6f 63 61 74 65 20 29 3b |kID, all|ocate );|
|00001770| 0a 58 7d 0a 58 0a 76 6f | 69 64 0a 50 75 74 4c 69 |.X}.X.vo|id.PutLi|
|00001780| 6e 6b 28 20 64 62 2c 20 | 6c 69 6e 6b 2c 20 72 65 |nk( db, |link, re|
|00001790| 6c 65 61 73 65 20 29 0a | 58 09 44 42 4d 20 2a 64 |lease ).|X.DBM *d|
|000017a0| 62 3b 0a 58 09 4c 69 6e | 6b 20 6c 69 6e 6b 3b 0a |b;.X.Lin|k link;.|
|000017b0| 58 09 52 65 6c 65 61 73 | 65 4d 6f 64 65 20 72 65 |X.Releas|eMode re|
|000017c0| 6c 65 61 73 65 3b 0a 58 | 7b 0a 58 09 50 75 74 4f |lease;.X|{.X.PutO|
|000017d0| 62 6a 65 63 74 28 20 64 | 62 2c 20 4c 69 6e 6b 4d |bject( d|b, LinkM|
|000017e0| 61 67 69 63 2c 20 28 41 | 6e 61 4f 62 6a 65 63 74 |agic, (A|naObject|
|000017f0| 29 6c 69 6e 6b 2c 20 72 | 65 6c 65 61 73 65 20 29 |)link, r|elease )|
|00001800| 3b 0a 58 7d 0a 58 0a 56 | 69 65 77 0a 47 65 74 56 |;.X}.X.V|iew.GetV|
|00001810| 69 65 77 28 20 64 62 2c | 20 76 69 65 77 49 44 2c |iew( db,| viewID,|
|00001820| 20 61 6c 6c 6f 63 61 74 | 65 20 29 0a 58 09 44 42 | allocat|e ).X.DB|
|00001830| 4d 20 2a 64 62 3b 0a 58 | 09 56 69 65 77 49 44 20 |M *db;.X|.ViewID |
|00001840| 76 69 65 77 49 44 3b 0a | 58 09 41 6c 6c 6f 63 61 |viewID;.|X.Alloca|
|00001850| 74 69 6f 6e 4d 6f 64 65 | 20 61 6c 6c 6f 63 61 74 |tionMode| allocat|
|00001860| 65 3b 0a 58 7b 0a 58 09 | 72 65 74 75 72 6e 20 28 |e;.X{.X.|return (|
|00001870| 56 69 65 77 29 47 65 74 | 4f 62 6a 65 63 74 28 20 |View)Get|Object( |
|00001880| 64 62 2c 20 56 69 65 77 | 4d 61 67 69 63 2c 20 28 |db, View|Magic, (|
|00001890| 49 44 29 76 69 65 77 49 | 44 2c 20 61 6c 6c 6f 63 |ID)viewI|D, alloc|
|000018a0| 61 74 65 20 29 3b 0a 58 | 7d 0a 58 0a 76 6f 69 64 |ate );.X|}.X.void|
|000018b0| 0a 50 75 74 56 69 65 77 | 28 20 64 62 2c 20 76 69 |.PutView|( db, vi|
|000018c0| 65 77 2c 20 72 65 6c 65 | 61 73 65 20 29 0a 58 09 |ew, rele|ase ).X.|
|000018d0| 44 42 4d 20 2a 64 62 3b | 0a 58 09 56 69 65 77 20 |DBM *db;|.X.View |
|000018e0| 76 69 65 77 3b 0a 58 09 | 52 65 6c 65 61 73 65 4d |view;.X.|ReleaseM|
|000018f0| 6f 64 65 20 72 65 6c 65 | 61 73 65 3b 0a 58 7b 0a |ode rele|ase;.X{.|
|00001900| 58 09 50 75 74 4f 62 6a | 65 63 74 28 20 64 62 2c |X.PutObj|ect( db,|
|00001910| 20 56 69 65 77 4d 61 67 | 69 63 2c 20 28 41 6e 61 | ViewMag|ic, (Ana|
|00001920| 4f 62 6a 65 63 74 29 76 | 69 65 77 2c 20 72 65 6c |Object)v|iew, rel|
|00001930| 65 61 73 65 20 29 3b 0a | 58 7d 0a 58 0a 44 6f 63 |ease );.|X}.X.Doc|
|00001940| 75 6d 65 6e 74 0a 47 65 | 74 44 6f 63 75 6d 65 6e |ument.Ge|tDocumen|
|00001950| 74 28 20 64 62 2c 20 64 | 6f 63 75 6d 65 6e 74 49 |t( db, d|ocumentI|
|00001960| 44 2c 20 61 6c 6c 6f 63 | 61 74 65 20 29 0a 58 09 |D, alloc|ate ).X.|
|00001970| 44 42 4d 20 2a 64 62 3b | 0a 58 09 44 6f 63 75 6d |DBM *db;|.X.Docum|
|00001980| 65 6e 74 49 44 20 64 6f | 63 75 6d 65 6e 74 49 44 |entID do|cumentID|
|00001990| 3b 0a 58 09 41 6c 6c 6f | 63 61 74 69 6f 6e 4d 6f |;.X.Allo|cationMo|
|000019a0| 64 65 20 61 6c 6c 6f 63 | 61 74 65 3b 0a 58 7b 0a |de alloc|ate;.X{.|
|000019b0| 58 09 72 65 74 75 72 6e | 20 28 44 6f 63 75 6d 65 |X.return| (Docume|
|000019c0| 6e 74 29 47 65 74 4f 62 | 6a 65 63 74 28 64 62 2c |nt)GetOb|ject(db,|
|000019d0| 20 44 6f 63 75 6d 65 6e | 74 4d 61 67 69 63 2c 20 | Documen|tMagic, |
|000019e0| 28 49 44 29 64 6f 63 75 | 6d 65 6e 74 49 44 2c 20 |(ID)docu|mentID, |
|000019f0| 61 6c 6c 6f 63 61 74 65 | 29 3b 0a 58 7d 0a 58 0a |allocate|);.X}.X.|
|00001a00| 76 6f 69 64 0a 50 75 74 | 44 6f 63 75 6d 65 6e 74 |void.Put|Document|
|00001a10| 28 20 64 62 2c 20 64 6f | 63 75 6d 65 6e 74 2c 20 |( db, do|cument, |
|00001a20| 72 65 6c 65 61 73 65 20 | 29 0a 58 09 44 42 4d 20 |release |).X.DBM |
|00001a30| 2a 64 62 3b 0a 58 09 44 | 6f 63 75 6d 65 6e 74 20 |*db;.X.D|ocument |
|00001a40| 64 6f 63 75 6d 65 6e 74 | 3b 0a 58 09 52 65 6c 65 |document|;.X.Rele|
|00001a50| 61 73 65 4d 6f 64 65 20 | 72 65 6c 65 61 73 65 3b |aseMode |release;|
|00001a60| 0a 58 7b 0a 58 09 50 75 | 74 4f 62 6a 65 63 74 28 |.X{.X.Pu|tObject(|
|00001a70| 20 64 62 2c 20 44 6f 63 | 75 6d 65 6e 74 4d 61 67 | db, Doc|umentMag|
|00001a80| 69 63 2c 20 28 41 6e 61 | 4f 62 6a 65 63 74 29 64 |ic, (Ana|Object)d|
|00001a90| 6f 63 75 6d 65 6e 74 2c | 20 72 65 6c 65 61 73 65 |ocument,| release|
|00001aa0| 20 29 3b 0a 58 7d 0a 58 | 0a 42 6c 6f 63 6b 0a 43 | );.X}.X|.Block.C|
|00001ab0| 72 65 61 74 65 42 6c 6f | 63 6b 28 20 64 62 2c 20 |reateBlo|ck( db, |
|00001ac0| 64 6f 63 75 6d 65 6e 74 | 2c 20 6e 61 6d 65 2c 20 |document|, name, |
|00001ad0| 61 74 74 72 69 62 75 74 | 65 2c 20 68 69 6e 74 2c |attribut|e, hint,|
|00001ae0| 20 66 69 6c 65 20 29 0a | 58 09 44 42 4d 20 2a 64 | file ).|X.DBM *d|
|00001af0| 62 3b 0a 58 09 44 6f 63 | 75 6d 65 6e 74 20 64 6f |b;.X.Doc|ument do|
|00001b00| 63 75 6d 65 6e 74 3b 0a | 58 09 63 68 61 72 20 2a |cument;.|X.char *|
|00001b10| 6e 61 6d 65 3b 0a 58 09 | 41 74 74 72 69 62 75 74 |name;.X.|Attribut|
|00001b20| 65 49 44 20 61 74 74 72 | 69 62 75 74 65 3b 0a 58 |eID attr|ibute;.X|
|00001b30| 09 4f 66 66 73 65 74 20 | 68 69 6e 74 3b 0a 58 09 |.Offset |hint;.X.|
|00001b40| 46 69 6c 65 49 44 20 66 | 69 6c 65 3b 0a 58 7b 0a |FileID f|ile;.X{.|
|00001b50| 58 09 42 6c 6f 63 6b 20 | 62 6c 6f 63 6b 3b 0a 58 |X.Block |block;.X|
|00001b60| 09 69 6e 74 20 69 3b 0a | 58 0a 58 09 62 6c 6f 63 |.int i;.|X.X.bloc|
|00001b70| 6b 20 3d 20 28 42 6c 6f | 63 6b 29 50 74 4d 61 6c |k = (Blo|ck)PtMal|
|00001b80| 6c 6f 63 28 20 73 69 7a | 65 6f 66 28 42 6c 6f 63 |loc( siz|eof(Bloc|
|00001b90| 6b 53 74 72 75 63 74 29 | 2c 20 22 61 6e 61 20 62 |kStruct)|, "ana b|
|00001ba0| 6c 6f 63 6b 22 20 29 3b | 0a 58 09 62 6c 6f 63 6b |lock" );|.X.block|
|00001bb0| 2d 3e 6d 61 67 69 63 20 | 3d 20 42 6c 6f 63 6b 4d |->magic |= BlockM|
|00001bc0| 61 67 69 63 3b 0a 58 09 | 62 6c 6f 63 6b 2d 3e 74 |agic;.X.|block->t|
|00001bd0| 68 69 73 5f 6f 6e 65 20 | 3d 20 28 64 6f 63 75 6d |his_one |= (docum|
|00001be0| 65 6e 74 2d 3e 6e 65 78 | 74 46 72 65 65 49 44 29 |ent->nex|tFreeID)|
|00001bf0| 2b 2b 3b 0a 58 09 62 6c | 6f 63 6b 2d 3e 6e 65 78 |++;.X.bl|ock->nex|
|00001c00| 74 20 3d 20 64 6f 63 75 | 6d 65 6e 74 2d 3e 66 69 |t = docu|ment->fi|
|00001c10| 72 73 74 42 6c 6f 63 6b | 3b 0a 58 09 64 6f 63 75 |rstBlock|;.X.docu|
|00001c20| 6d 65 6e 74 2d 3e 66 69 | 72 73 74 42 6c 6f 63 6b |ment->fi|rstBlock|
|00001c30| 20 3d 20 62 6c 6f 63 6b | 2d 3e 74 68 69 73 5f 6f | = block|->this_o|
|00001c40| 6e 65 3b 0a 58 09 73 74 | 72 6e 63 70 79 28 20 62 |ne;.X.st|rncpy( b|
|00001c50| 6c 6f 63 6b 2d 3e 6e 61 | 6d 65 2c 20 6e 61 6d 65 |lock->na|me, name|
|00001c60| 2c 20 4e 41 4d 45 5f 53 | 49 5a 45 20 29 3b 0a 58 |, NAME_S|IZE );.X|
|00001c70| 09 66 6f 72 28 20 69 20 | 3d 20 31 3b 20 69 20 3c |.for( i |= 1; i <|
|00001c80| 20 4d 41 58 5f 41 54 54 | 52 49 42 55 54 45 53 3b | MAX_ATT|RIBUTES;|
|00001c90| 20 2b 2b 69 20 29 0a 58 | 09 09 20 62 6c 6f 63 6b | ++i ).X|.. block|
|00001ca0| 2d 3e 61 74 74 72 69 62 | 75 74 65 5b 69 5d 20 3d |->attrib|ute[i] =|
|00001cb0| 20 4e 75 6c 6c 4f 62 6a | 65 63 74 3b 0a 58 09 62 | NullObj|ect;.X.b|
|00001cc0| 6c 6f 63 6b 2d 3e 61 74 | 74 72 69 62 75 74 65 5b |lock->at|tribute[|
|00001cd0| 30 5d 20 3d 20 61 74 74 | 72 69 62 75 74 65 3b 0a |0] = att|ribute;.|
|00001ce0| 58 09 62 6c 6f 63 6b 2d | 3e 68 69 6e 74 20 3d 20 |X.block-|>hint = |
|00001cf0| 68 69 6e 74 3b 0a 58 09 | 62 6c 6f 63 6b 2d 3e 66 |hint;.X.|block->f|
|00001d00| 69 6c 65 20 3d 20 66 69 | 6c 65 3b 0a 58 09 62 6c |ile = fi|le;.X.bl|
|00001d10| 6f 63 6b 2d 3e 6e 75 6d | 4c 69 6e 6b 73 20 3d 20 |ock->num|Links = |
|00001d20| 30 3b 0a 58 09 62 6c 6f | 63 6b 2d 3e 66 69 72 73 |0;.X.blo|ck->firs|
|00001d30| 74 46 72 6f 6d 4c 69 6e | 6b 20 3d 20 4e 75 6c 6c |tFromLin|k = Null|
|00001d40| 4f 62 6a 65 63 74 3b 0a | 58 09 62 6c 6f 63 6b 2d |Object;.|X.block-|
|00001d50| 3e 66 69 72 73 74 54 6f | 4c 69 6e 6b 20 3d 20 4e |>firstTo|Link = N|
|00001d60| 75 6c 6c 4f 62 6a 65 63 | 74 3b 0a 58 09 50 75 74 |ullObjec|t;.X.Put|
|00001d70| 42 6c 6f 63 6b 28 20 64 | 62 2c 20 62 6c 6f 63 6b |Block( d|b, block|
|00001d80| 2c 20 4e 4f 5f 52 45 4c | 45 41 53 45 20 29 3b 0a |, NO_REL|EASE );.|
|00001d90| 58 09 72 65 74 75 72 6e | 20 62 6c 6f 63 6b 3b 0a |X.return| block;.|
|00001da0| 58 7d 0a 58 0a 41 74 74 | 72 69 62 75 74 65 0a 43 |X}.X.Att|ribute.C|
|00001db0| 72 65 61 74 65 41 74 74 | 72 69 62 75 74 65 28 20 |reateAtt|ribute( |
|00001dc0| 64 62 2c 20 64 6f 63 75 | 6d 65 6e 74 2c 20 6e 61 |db, docu|ment, na|
|00001dd0| 6d 65 20 29 0a 58 09 44 | 42 4d 20 2a 64 62 3b 0a |me ).X.D|BM *db;.|
|00001de0| 58 09 44 6f 63 75 6d 65 | 6e 74 20 64 6f 63 75 6d |X.Docume|nt docum|
|00001df0| 65 6e 74 3b 0a 58 09 63 | 68 61 72 20 2a 6e 61 6d |ent;.X.c|har *nam|
|00001e00| 65 3b 0a 58 7b 0a 58 09 | 41 74 74 72 69 62 75 74 |e;.X{.X.|Attribut|
|00001e10| 65 20 61 74 74 72 69 62 | 75 74 65 3b 0a 58 0a 58 |e attrib|ute;.X.X|
|00001e20| 09 61 74 74 72 69 62 75 | 74 65 20 3d 20 28 41 74 |.attribu|te = (At|
|00001e30| 74 72 69 62 75 74 65 29 | 50 74 4d 61 6c 6c 6f 63 |tribute)|PtMalloc|
|00001e40| 28 20 73 69 7a 65 6f 66 | 28 41 74 74 72 69 62 75 |( sizeof|(Attribu|
|00001e50| 74 65 53 74 72 75 63 74 | 29 2c 0a 58 09 09 09 09 |teStruct|),.X....|
|00001e60| 09 09 22 61 6e 61 20 61 | 74 74 72 69 62 75 74 65 |.."ana a|ttribute|
|00001e70| 22 20 29 3b 0a 58 09 61 | 74 74 72 69 62 75 74 65 |" );.X.a|ttribute|
|00001e80| 2d 3e 6d 61 67 69 63 20 | 3d 20 41 74 74 72 69 62 |->magic |= Attrib|
|00001e90| 75 74 65 4d 61 67 69 63 | 3b 0a 58 09 61 74 74 72 |uteMagic|;.X.attr|
|00001ea0| 69 62 75 74 65 2d 3e 74 | 68 69 73 5f 6f 6e 65 20 |ibute->t|his_one |
|00001eb0| 3d 20 28 64 6f 63 75 6d | 65 6e 74 2d 3e 6e 65 78 |= (docum|ent->nex|
|00001ec0| 74 46 72 65 65 49 44 29 | 2b 2b 3b 0a 58 09 61 74 |tFreeID)|++;.X.at|
|00001ed0| 74 72 69 62 75 74 65 2d | 3e 6e 65 78 74 20 3d 20 |tribute-|>next = |
|00001ee0| 64 6f 63 75 6d 65 6e 74 | 2d 3e 66 69 72 73 74 41 |document|->firstA|
|00001ef0| 74 74 72 69 62 75 74 65 | 3b 0a 58 09 64 6f 63 75 |ttribute|;.X.docu|
|00001f00| 6d 65 6e 74 2d 3e 66 69 | 72 73 74 41 74 74 72 69 |ment->fi|rstAttri|
|00001f10| 62 75 74 65 20 3d 20 61 | 74 74 72 69 62 75 74 65 |bute = a|ttribute|
|00001f20| 2d 3e 74 68 69 73 5f 6f | 6e 65 3b 0a 58 09 73 74 |->this_o|ne;.X.st|
|00001f30| 72 6e 63 70 79 28 20 61 | 74 74 72 69 62 75 74 65 |rncpy( a|ttribute|
|00001f40| 2d 3e 6e 61 6d 65 2c 20 | 6e 61 6d 65 2c 20 4e 41 |->name, |name, NA|
|00001f50| 4d 45 5f 53 49 5a 45 20 | 29 3b 0a 58 09 50 75 74 |ME_SIZE |);.X.Put|
|00001f60| 41 74 74 72 69 62 75 74 | 65 28 20 64 62 2c 20 61 |Attribut|e( db, a|
|00001f70| 74 74 72 69 62 75 74 65 | 2c 20 4e 4f 5f 52 45 4c |ttribute|, NO_REL|
|00001f80| 45 41 53 45 20 29 3b 0a | 58 09 72 65 74 75 72 6e |EASE );.|X.return|
|00001f90| 20 61 74 74 72 69 62 75 | 74 65 3b 0a 58 7d 0a 58 | attribu|te;.X}.X|
|00001fa0| 0a 58 2f 2a 41 52 47 53 | 55 53 45 44 2a 2f 0a 41 |.X/*ARGS|USED*/.A|
|00001fb0| 74 74 72 69 62 75 74 65 | 49 44 0a 4c 6f 6f 6b 75 |ttribute|ID.Looku|
|00001fc0| 70 41 74 74 72 69 62 75 | 74 65 42 79 4e 61 6d 65 |pAttribu|teByName|
|00001fd0| 28 20 64 62 2c 20 64 6f | 63 75 6d 65 6e 74 2c 20 |( db, do|cument, |
|00001fe0| 6e 61 6d 65 20 29 0a 58 | 09 44 42 4d 20 2a 64 62 |name ).X|.DBM *db|
|00001ff0| 3b 0a 58 09 44 6f 63 75 | 6d 65 6e 74 20 64 6f 63 |;.X.Docu|ment doc|
|00002000| 75 6d 65 6e 74 3b 0a 58 | 09 63 68 61 72 20 2a 6e |ument;.X|.char *n|
|00002010| 61 6d 65 3b 0a 58 7b 0a | 58 09 65 78 74 65 72 6e |ame;.X{.|X.extern|
|00002020| 20 44 42 4d 20 2a 63 75 | 72 72 65 6e 74 44 42 3b | DBM *cu|rrentDB;|
|00002030| 0a 58 0a 58 09 41 74 74 | 72 69 62 75 74 65 20 61 |.X.X.Att|ribute a|
|00002040| 74 74 72 69 62 75 74 65 | 3b 0a 58 09 69 6e 74 20 |ttribute|;.X.int |
|00002050| 61 74 74 72 69 62 75 74 | 65 49 44 20 3d 20 64 6f |attribut|eID = do|
|00002060| 63 75 6d 65 6e 74 2d 3e | 66 69 72 73 74 41 74 74 |cument->|firstAtt|
|00002070| 72 69 62 75 74 65 3b 0a | 58 0a 58 09 77 68 69 6c |ribute;.|X.X.whil|
|00002080| 65 28 20 61 74 74 72 69 | 62 75 74 65 49 44 20 21 |e( attri|buteID !|
|00002090| 3d 20 4e 75 6c 6c 4f 62 | 6a 65 63 74 20 29 20 7b |= NullOb|ject ) {|
|000020a0| 0a 58 09 09 61 74 74 72 | 69 62 75 74 65 20 3d 20 |.X..attr|ibute = |
|000020b0| 47 65 74 41 74 74 72 69 | 62 75 74 65 28 20 63 75 |GetAttri|bute( cu|
|000020c0| 72 72 65 6e 74 44 42 2c | 20 61 74 74 72 69 62 75 |rrentDB,| attribu|
|000020d0| 74 65 49 44 2c 20 4e 4f | 5f 41 4c 4c 4f 43 41 54 |teID, NO|_ALLOCAT|
|000020e0| 45 20 29 3b 0a 58 09 09 | 69 66 28 20 73 74 72 63 |E );.X..|if( strc|
|000020f0| 6d 70 28 6e 61 6d 65 2c | 61 74 74 72 69 62 75 74 |mp(name,|attribut|
|00002100| 65 2d 3e 6e 61 6d 65 29 | 20 3d 3d 20 30 20 29 0a |e->name)| == 0 ).|
|00002110| 58 09 09 09 72 65 74 75 | 72 6e 20 61 74 74 72 69 |X...retu|rn attri|
|00002120| 62 75 74 65 49 44 3b 0a | 58 09 09 61 74 74 72 69 |buteID;.|X..attri|
|00002130| 62 75 74 65 49 44 20 3d | 20 61 74 74 72 69 62 75 |buteID =| attribu|
|00002140| 74 65 2d 3e 6e 65 78 74 | 3b 0a 58 09 7d 0a 58 09 |te->next|;.X.}.X.|
|00002150| 72 65 74 75 72 6e 20 4e | 75 6c 6c 4f 62 6a 65 63 |return N|ullObjec|
|00002160| 74 3b 0a 58 7d 0a 58 0a | 4d 61 70 0a 43 72 65 61 |t;.X}.X.|Map.Crea|
|00002170| 74 65 4d 61 70 28 20 64 | 62 2c 20 64 6f 63 75 6d |teMap( d|b, docum|
|00002180| 65 6e 74 2c 20 6e 61 6d | 65 20 29 0a 58 09 44 42 |ent, nam|e ).X.DB|
|00002190| 4d 20 2a 64 62 3b 0a 58 | 09 44 6f 63 75 6d 65 6e |M *db;.X|.Documen|
|000021a0| 74 20 64 6f 63 75 6d 65 | 6e 74 3b 0a 58 09 63 68 |t docume|nt;.X.ch|
|000021b0| 61 72 20 2a 6e 61 6d 65 | 3b 0a 58 7b 0a 58 09 4d |ar *name|;.X{.X.M|
|000021c0| 61 70 20 6d 61 70 3b 0a | 58 09 69 6e 74 20 69 3b |ap map;.|X.int i;|
|000021d0| 0a 58 0a 58 09 6d 61 70 | 20 3d 20 28 4d 61 70 29 |.X.X.map| = (Map)|
|000021e0| 50 74 4d 61 6c 6c 6f 63 | 28 20 73 69 7a 65 6f 66 |PtMalloc|( sizeof|
|000021f0| 28 4d 61 70 53 74 72 75 | 63 74 29 2c 20 22 61 6e |(MapStru|ct), "an|
|00002200| 61 20 6d 61 70 22 20 29 | 3b 0a 58 09 6d 61 70 2d |a map" )|;.X.map-|
|00002210| 3e 6d 61 67 69 63 20 3d | 20 4d 61 70 4d 61 67 69 |>magic =| MapMagi|
|00002220| 63 3b 0a 58 09 6d 61 70 | 2d 3e 74 68 69 73 5f 6f |c;.X.map|->this_o|
|00002230| 6e 65 20 3d 20 28 64 6f | 63 75 6d 65 6e 74 2d 3e |ne = (do|cument->|
|00002240| 6e 65 78 74 46 72 65 65 | 49 44 29 2b 2b 3b 0a 58 |nextFree|ID)++;.X|
|00002250| 09 6d 61 70 2d 3e 6e 65 | 78 74 20 3d 20 64 6f 63 |.map->ne|xt = doc|
|00002260| 75 6d 65 6e 74 2d 3e 66 | 69 72 73 74 4d 61 70 3b |ument->f|irstMap;|
|00002270| 0a 58 09 64 6f 63 75 6d | 65 6e 74 2d 3e 66 69 72 |.X.docum|ent->fir|
|00002280| 73 74 4d 61 70 20 3d 20 | 6d 61 70 2d 3e 74 68 69 |stMap = |map->thi|
|00002290| 73 5f 6f 6e 65 3b 0a 58 | 09 73 74 72 6e 63 70 79 |s_one;.X|.strncpy|
|000022a0| 28 20 6d 61 70 2d 3e 6e | 61 6d 65 2c 20 6e 61 6d |( map->n|ame, nam|
|000022b0| 65 2c 20 4e 41 4d 45 5f | 53 49 5a 45 20 29 3b 0a |e, NAME_|SIZE );.|
|000022c0| 58 09 66 6f 72 28 20 69 | 20 3d 20 30 3b 20 69 20 |X.for( i| = 0; i |
|000022d0| 3c 20 4d 41 50 5f 53 49 | 5a 45 3b 20 2b 2b 69 20 |< MAP_SI|ZE; ++i |
|000022e0| 29 20 7b 0a 58 09 09 6d | 61 70 2d 3e 64 6f 6d 61 |) {.X..m|ap->doma|
|000022f0| 69 6e 5b 69 5d 20 3d 20 | 4e 75 6c 6c 4f 62 6a 65 |in[i] = |NullObje|
|00002300| 63 74 3b 0a 58 09 09 6d | 61 70 2d 3e 72 61 6e 67 |ct;.X..m|ap->rang|
|00002310| 65 5b 69 5d 5b 30 5d 20 | 3d 20 27 5c 30 27 3b 0a |e[i][0] |= '\0';.|
|00002320| 58 09 7d 0a 58 09 50 75 | 74 4d 61 70 28 20 64 62 |X.}.X.Pu|tMap( db|
|00002330| 2c 20 6d 61 70 2c 20 4e | 4f 5f 52 45 4c 45 41 53 |, map, N|O_RELEAS|
|00002340| 45 20 29 3b 0a 58 09 72 | 65 74 75 72 6e 20 6d 61 |E );.X.r|eturn ma|
|00002350| 70 3b 0a 58 7d 0a 58 0a | 58 2f 2a 41 52 47 53 55 |p;.X}.X.|X/*ARGSU|
|00002360| 53 45 44 2a 2f 0a 4d 61 | 70 49 44 0a 4c 6f 6f 6b |SED*/.Ma|pID.Look|
|00002370| 75 70 4d 61 70 42 79 4e | 61 6d 65 28 20 64 62 2c |upMapByN|ame( db,|
|00002380| 20 64 6f 63 75 6d 65 6e | 74 2c 20 6e 61 6d 65 20 | documen|t, name |
|00002390| 29 0a 58 09 44 42 4d 20 | 2a 64 62 3b 0a 58 09 44 |).X.DBM |*db;.X.D|
|000023a0| 6f 63 75 6d 65 6e 74 20 | 64 6f 63 75 6d 65 6e 74 |ocument |document|
|000023b0| 3b 0a 58 09 63 68 61 72 | 20 2a 6e 61 6d 65 3b 0a |;.X.char| *name;.|
|000023c0| 58 7b 0a 58 09 65 78 74 | 65 72 6e 20 44 42 4d 20 |X{.X.ext|ern DBM |
|000023d0| 2a 63 75 72 72 65 6e 74 | 44 42 3b 0a 58 0a 58 09 |*current|DB;.X.X.|
|000023e0| 4d 61 70 20 6d 61 70 3b | 0a 58 09 69 6e 74 20 6d |Map map;|.X.int m|
|000023f0| 61 70 49 44 20 3d 20 64 | 6f 63 75 6d 65 6e 74 2d |apID = d|ocument-|
|00002400| 3e 66 69 72 73 74 4d 61 | 70 3b 0a 58 0a 58 09 77 |>firstMa|p;.X.X.w|
|00002410| 68 69 6c 65 28 20 6d 61 | 70 49 44 20 21 3d 20 4e |hile( ma|pID != N|
|00002420| 75 6c 6c 4f 62 6a 65 63 | 74 20 29 20 7b 0a 58 09 |ullObjec|t ) {.X.|
|00002430| 09 6d 61 70 20 3d 20 47 | 65 74 4d 61 70 28 20 63 |.map = G|etMap( c|
|00002440| 75 72 72 65 6e 74 44 42 | 2c 20 6d 61 70 49 44 2c |urrentDB|, mapID,|
|00002450| 20 4e 4f 5f 41 4c 4c 4f | 43 41 54 45 20 29 3b 0a | NO_ALLO|CATE );.|
|00002460| 58 09 09 69 66 28 20 73 | 74 72 63 6d 70 28 6e 61 |X..if( s|trcmp(na|
|00002470| 6d 65 2c 6d 61 70 2d 3e | 6e 61 6d 65 29 20 3d 3d |me,map->|name) ==|
|00002480| 20 30 20 29 0a 58 09 09 | 09 72 65 74 75 72 6e 20 | 0 ).X..|.return |
|00002490| 6d 61 70 49 44 3b 0a 58 | 09 09 6d 61 70 49 44 20 |mapID;.X|..mapID |
|000024a0| 3d 20 6d 61 70 2d 3e 6e | 65 78 74 3b 0a 58 09 7d |= map->n|ext;.X.}|
|000024b0| 0a 58 09 72 65 74 75 72 | 6e 20 4e 75 6c 6c 4f 62 |.X.retur|n NullOb|
|000024c0| 6a 65 63 74 3b 0a 58 7d | 0a 58 0a 4c 69 6e 6b 0a |ject;.X}|.X.Link.|
|000024d0| 43 72 65 61 74 65 4c 69 | 6e 6b 28 20 64 62 2c 20 |CreateLi|nk( db, |
|000024e0| 64 6f 63 75 6d 65 6e 74 | 2c 20 6e 61 6d 65 2c 20 |document|, name, |
|000024f0| 61 74 74 72 69 62 75 74 | 65 2c 20 66 72 6f 6d 2c |attribut|e, from,|
|00002500| 20 74 6f 20 29 0a 58 09 | 44 42 4d 20 2a 64 62 3b | to ).X.|DBM *db;|
|00002510| 0a 58 09 44 6f 63 75 6d | 65 6e 74 20 64 6f 63 75 |.X.Docum|ent docu|
|00002520| 6d 65 6e 74 3b 0a 58 09 | 63 68 61 72 20 2a 6e 61 |ment;.X.|char *na|
|00002530| 6d 65 3b 0a 58 09 41 74 | 74 72 69 62 75 74 65 49 |me;.X.At|tributeI|
|00002540| 44 20 61 74 74 72 69 62 | 75 74 65 3b 0a 58 09 42 |D attrib|ute;.X.B|
|00002550| 6c 6f 63 6b 49 44 20 66 | 72 6f 6d 2c 20 74 6f 3b |lockID f|rom, to;|
|00002560| 0a 58 7b 0a 58 09 4c 69 | 6e 6b 20 6c 69 6e 6b 3b |.X{.X.Li|nk link;|
|00002570| 0a 58 09 69 6e 74 20 69 | 3b 0a 58 0a 58 09 6c 69 |.X.int i|;.X.X.li|
|00002580| 6e 6b 20 3d 20 28 4c 69 | 6e 6b 29 50 74 4d 61 6c |nk = (Li|nk)PtMal|
|00002590| 6c 6f 63 28 20 73 69 7a | 65 6f 66 28 4c 69 6e 6b |loc( siz|eof(Link|
|000025a0| 53 74 72 75 63 74 29 2c | 20 22 61 6e 61 20 6c 69 |Struct),| "ana li|
|000025b0| 6e 6b 22 20 29 3b 0a 58 | 09 6c 69 6e 6b 2d 3e 6d |nk" );.X|.link->m|
|000025c0| 61 67 69 63 20 3d 20 4c | 69 6e 6b 4d 61 67 69 63 |agic = L|inkMagic|
|000025d0| 3b 0a 58 09 6c 69 6e 6b | 2d 3e 74 68 69 73 5f 6f |;.X.link|->this_o|
|000025e0| 6e 65 20 3d 20 28 64 6f | 63 75 6d 65 6e 74 2d 3e |ne = (do|cument->|
|000025f0| 6e 65 78 74 46 72 65 65 | 49 44 29 2b 2b 3b 0a 58 |nextFree|ID)++;.X|
|00002600| 09 6c 69 6e 6b 2d 3e 6e | 65 78 74 20 3d 20 64 6f |.link->n|ext = do|
|00002610| 63 75 6d 65 6e 74 2d 3e | 66 69 72 73 74 4c 69 6e |cument->|firstLin|
|00002620| 6b 3b 0a 58 09 64 6f 63 | 75 6d 65 6e 74 2d 3e 66 |k;.X.doc|ument->f|
|00002630| 69 72 73 74 4c 69 6e 6b | 20 3d 20 6c 69 6e 6b 2d |irstLink| = link-|
|00002640| 3e 74 68 69 73 5f 6f 6e | 65 3b 0a 58 09 73 74 72 |>this_on|e;.X.str|
|00002650| 6e 63 70 79 28 20 6c 69 | 6e 6b 2d 3e 6e 61 6d 65 |ncpy( li|nk->name|
|00002660| 2c 20 6e 61 6d 65 2c 20 | 4e 41 4d 45 5f 53 49 5a |, name, |NAME_SIZ|
|00002670| 45 20 29 3b 0a 58 09 66 | 6f 72 28 20 69 20 3d 20 |E );.X.f|or( i = |
|00002680| 31 3b 20 69 20 3c 20 4d | 41 58 5f 41 54 54 52 49 |1; i < M|AX_ATTRI|
|00002690| 42 55 54 45 53 3b 20 2b | 2b 69 20 29 0a 58 09 09 |BUTES; +|+i ).X..|
|000026a0| 20 6c 69 6e 6b 2d 3e 61 | 74 74 72 69 62 75 74 65 | link->a|ttribute|
|000026b0| 5b 69 5d 20 3d 20 4e 75 | 6c 6c 4f 62 6a 65 63 74 |[i] = Nu|llObject|
|000026c0| 3b 0a 58 09 6c 69 6e 6b | 2d 3e 61 74 74 72 69 62 |;.X.link|->attrib|
|000026d0| 75 74 65 5b 30 5d 20 3d | 20 61 74 74 72 69 62 75 |ute[0] =| attribu|
|000026e0| 74 65 3b 0a 58 09 6c 69 | 6e 6b 2d 3e 6e 65 78 74 |te;.X.li|nk->next|
|000026f0| 46 72 6f 6d 4c 69 6e 6b | 20 3d 20 4e 75 6c 6c 4f |FromLink| = NullO|
|00002700| 62 6a 65 63 74 3b 0a 58 | 09 6c 69 6e 6b 2d 3e 66 |bject;.X|.link->f|
|00002710| 72 6f 6d 20 3d 20 66 72 | 6f 6d 3b 0a 58 09 6c 69 |rom = fr|om;.X.li|
|00002720| 6e 6b 2d 3e 6e 65 78 74 | 54 6f 4c 69 6e 6b 20 3d |nk->next|ToLink =|
|00002730| 20 4e 75 6c 6c 4f 62 6a | 65 63 74 3b 0a 58 09 6c | NullObj|ect;.X.l|
|00002740| 69 6e 6b 2d 3e 74 6f 20 | 3d 20 74 6f 3b 0a 58 09 |ink->to |= to;.X.|
|00002750| 50 75 74 4c 69 6e 6b 28 | 20 64 62 2c 20 6c 69 6e |PutLink(| db, lin|
|00002760| 6b 2c 20 4e 4f 5f 52 45 | 4c 45 41 53 45 20 29 3b |k, NO_RE|LEASE );|
|00002770| 0a 58 09 72 65 74 75 72 | 6e 20 6c 69 6e 6b 3b 0a |.X.retur|n link;.|
|00002780| 58 7d 0a 58 0a 58 46 69 | 6c 65 0a 43 72 65 61 74 |X}.X.XFi|le.Creat|
|00002790| 65 46 69 6c 65 28 20 64 | 62 2c 20 64 6f 63 75 6d |eFile( d|b, docum|
|000027a0| 65 6e 74 2c 20 6e 61 6d | 65 20 29 0a 58 09 44 42 |ent, nam|e ).X.DB|
|000027b0| 4d 20 2a 64 62 3b 0a 58 | 09 44 6f 63 75 6d 65 6e |M *db;.X|.Documen|
|000027c0| 74 20 64 6f 63 75 6d 65 | 6e 74 3b 0a 58 09 63 68 |t docume|nt;.X.ch|
|000027d0| 61 72 20 2a 6e 61 6d 65 | 3b 0a 58 7b 0a 58 09 46 |ar *name|;.X{.X.F|
|000027e0| 69 6c 65 20 66 69 6c 65 | 3b 0a 58 0a 58 09 66 69 |ile file|;.X.X.fi|
|000027f0| 6c 65 20 3d 20 28 46 69 | 6c 65 29 50 74 4d 61 6c |le = (Fi|le)PtMal|
|00002800| 6c 6f 63 28 20 73 69 7a | 65 6f 66 28 46 69 6c 65 |loc( siz|eof(File|
|00002810| 53 74 72 75 63 74 29 2c | 20 22 61 6e 61 20 66 69 |Struct),| "ana fi|
|00002820| 6c 65 22 20 29 3b 0a 58 | 09 66 69 6c 65 2d 3e 6d |le" );.X|.file->m|
|00002830| 61 67 69 63 20 3d 20 46 | 69 6c 65 4d 61 67 69 63 |agic = F|ileMagic|
|00002840| 3b 0a 58 09 73 74 72 6e | 63 70 79 28 20 66 69 6c |;.X.strn|cpy( fil|
|00002850| 65 2d 3e 6e 61 6d 65 2c | 20 6e 61 6d 65 20 2c 20 |e->name,| name , |
|00002860| 4e 41 4d 45 5f 53 49 5a | 45 20 29 3b 0a 58 09 66 |NAME_SIZ|E );.X.f|
|00002870| 69 6c 65 2d 3e 74 68 69 | 73 5f 6f 6e 65 20 3d 20 |ile->thi|s_one = |
|00002880| 28 64 6f 63 75 6d 65 6e | 74 2d 3e 6e 65 78 74 46 |(documen|t->nextF|
|00002890| 72 65 65 49 44 29 2b 2b | 3b 0a 58 09 66 69 6c 65 |reeID)++|;.X.file|
|000028a0| 2d 3e 6e 65 78 74 20 3d | 20 64 6f 63 75 6d 65 6e |->next =| documen|
|000028b0| 74 2d 3e 66 69 72 73 74 | 46 69 6c 65 3b 0a 58 09 |t->first|File;.X.|
|000028c0| 64 6f 63 75 6d 65 6e 74 | 2d 3e 66 69 72 73 74 46 |document|->firstF|
|000028d0| 69 6c 65 20 3d 20 66 69 | 6c 65 2d 3e 74 68 69 73 |ile = fi|le->this|
|000028e0| 5f 6f 6e 65 3b 0a 58 09 | 50 75 74 46 69 6c 65 28 |_one;.X.|PutFile(|
|000028f0| 20 64 62 2c 20 66 69 6c | 65 2c 20 4e 4f 5f 52 45 | db, fil|e, NO_RE|
|00002900| 4c 45 41 53 45 20 29 3b | 0a 58 09 72 65 74 75 72 |LEASE );|.X.retur|
|00002910| 6e 20 66 69 6c 65 3b 0a | 58 7d 0a 58 0a 58 2f 2a |n file;.|X}.X.X/*|
|00002920| 41 52 47 53 55 53 45 44 | 2a 2f 0a 58 46 69 6c 65 |ARGSUSED|*/.XFile|
|00002930| 49 44 0a 4c 6f 6f 6b 75 | 70 46 69 6c 65 42 79 4e |ID.Looku|pFileByN|
|00002940| 61 6d 65 28 20 64 62 2c | 20 64 6f 63 75 6d 65 6e |ame( db,| documen|
|00002950| 74 2c 20 6e 61 6d 65 20 | 29 0a 58 09 44 42 4d 20 |t, name |).X.DBM |
|00002960| 2a 64 62 3b 0a 58 09 44 | 6f 63 75 6d 65 6e 74 20 |*db;.X.D|ocument |
|00002970| 64 6f 63 75 6d 65 6e 74 | 3b 0a 58 09 63 68 61 72 |document|;.X.char|
|00002980| 20 2a 6e 61 6d 65 3b 0a | 58 7b 0a 58 09 65 78 74 | *name;.|X{.X.ext|
|00002990| 65 72 6e 20 44 42 4d 20 | 2a 63 75 72 72 65 6e 74 |ern DBM |*current|
|000029a0| 44 42 3b 0a 58 0a 58 09 | 46 69 6c 65 20 66 69 6c |DB;.X.X.|File fil|
|000029b0| 65 3b 0a 58 09 69 6e 74 | 20 66 69 6c 65 49 44 20 |e;.X.int| fileID |
|000029c0| 3d 20 64 6f 63 75 6d 65 | 6e 74 2d 3e 66 69 72 73 |= docume|nt->firs|
|000029d0| 74 46 69 6c 65 3b 0a 58 | 0a 58 09 77 68 69 6c 65 |tFile;.X|.X.while|
|000029e0| 28 20 66 69 6c 65 49 44 | 20 21 3d 20 4e 75 6c 6c |( fileID| != Null|
|000029f0| 4f 62 6a 65 63 74 20 29 | 20 7b 0a 58 09 09 66 69 |Object )| {.X..fi|
|00002a00| 6c 65 20 3d 20 47 65 74 | 46 69 6c 65 28 20 63 75 |le = Get|File( cu|
|00002a10| 72 72 65 6e 74 44 42 2c | 20 66 69 6c 65 49 44 2c |rrentDB,| fileID,|
|00002a20| 20 4e 4f 5f 41 4c 4c 4f | 43 41 54 45 20 29 3b 0a | NO_ALLO|CATE );.|
|00002a30| 58 09 09 69 66 28 20 73 | 74 72 63 6d 70 28 6e 61 |X..if( s|trcmp(na|
|00002a40| 6d 65 2c 66 69 6c 65 2d | 3e 6e 61 6d 65 29 20 3d |me,file-|>name) =|
|00002a50| 3d 20 30 20 29 0a 58 09 | 09 09 72 65 74 75 72 6e |= 0 ).X.|..return|
|00002a60| 20 66 69 6c 65 49 44 3b | 0a 58 09 09 66 69 6c 65 | fileID;|.X..file|
|00002a70| 49 44 20 3d 20 66 69 6c | 65 2d 3e 6e 65 78 74 3b |ID = fil|e->next;|
|00002a80| 0a 58 09 7d 0a 58 09 72 | 65 74 75 72 6e 20 4e 75 |.X.}.X.r|eturn Nu|
|00002a90| 6c 6c 4f 62 6a 65 63 74 | 3b 0a 58 7d 0a 58 0a 54 |llObject|;.X}.X.T|
|00002aa0| 65 78 74 0a 43 72 65 61 | 74 65 54 65 78 74 28 20 |ext.Crea|teText( |
|00002ab0| 64 62 2c 20 64 6f 63 75 | 6d 65 6e 74 2c 20 73 20 |db, docu|ment, s |
|00002ac0| 29 0a 58 09 44 42 4d 20 | 2a 64 62 3b 0a 58 09 44 |).X.DBM |*db;.X.D|
|00002ad0| 6f 63 75 6d 65 6e 74 20 | 64 6f 63 75 6d 65 6e 74 |ocument |document|
|00002ae0| 3b 0a 58 09 63 68 61 72 | 20 2a 73 3b 0a 58 7b 0a |;.X.char| *s;.X{.|
|00002af0| 58 09 54 65 78 74 20 74 | 65 78 74 3b 0a 58 0a 58 |X.Text t|ext;.X.X|
|00002b00| 09 74 65 78 74 20 3d 20 | 28 54 65 78 74 29 50 74 |.text = |(Text)Pt|
|00002b10| 4d 61 6c 6c 6f 63 28 20 | 73 69 7a 65 6f 66 28 54 |Malloc( |sizeof(T|
|00002b20| 65 78 74 53 74 72 75 63 | 74 29 2c 20 22 61 6e 61 |extStruc|t), "ana|
|00002b30| 20 74 65 78 74 22 20 29 | 3b 0a 58 09 74 65 78 74 | text" )|;.X.text|
|00002b40| 2d 3e 6d 61 67 69 63 20 | 3d 20 54 65 78 74 4d 61 |->magic |= TextMa|
|00002b50| 67 69 63 3b 0a 58 09 74 | 65 78 74 2d 3e 74 68 69 |gic;.X.t|ext->thi|
|00002b60| 73 5f 6f 6e 65 20 3d 20 | 28 64 6f 63 75 6d 65 6e |s_one = |(documen|
|00002b70| 74 2d 3e 6e 65 78 74 46 | 72 65 65 49 44 29 2b 2b |t->nextF|reeID)++|
|00002b80| 3b 0a 58 09 74 65 78 74 | 2d 3e 6e 65 78 74 20 3d |;.X.text|->next =|
|00002b90| 20 64 6f 63 75 6d 65 6e | 74 2d 3e 66 69 72 73 74 | documen|t->first|
|00002ba0| 54 65 78 74 3b 0a 58 09 | 64 6f 63 75 6d 65 6e 74 |Text;.X.|document|
|00002bb0| 2d 3e 66 69 72 73 74 54 | 65 78 74 20 3d 20 74 65 |->firstT|ext = te|
|00002bc0| 78 74 2d 3e 74 68 69 73 | 5f 6f 6e 65 3b 0a 58 09 |xt->this|_one;.X.|
|00002bd0| 73 74 72 6e 63 70 79 28 | 20 74 65 78 74 2d 3e 73 |strncpy(| text->s|
|00002be0| 2c 20 73 2c 20 4e 41 4d | 45 5f 53 49 5a 45 20 29 |, s, NAM|E_SIZE )|
|00002bf0| 3b 0a 58 09 50 75 74 54 | 65 78 74 28 20 64 62 2c |;.X.PutT|ext( db,|
|00002c00| 20 74 65 78 74 2c 20 4e | 4f 5f 52 45 4c 45 41 53 | text, N|O_RELEAS|
|00002c10| 45 20 29 3b 0a 58 09 72 | 65 74 75 72 6e 20 74 65 |E );.X.r|eturn te|
|00002c20| 78 74 3b 0a 58 7d 0a 58 | 0a 56 69 65 77 0a 43 72 |xt;.X}.X|.View.Cr|
|00002c30| 65 61 74 65 56 69 65 77 | 28 20 64 62 2c 20 64 6f |eateView|( db, do|
|00002c40| 63 75 6d 65 6e 74 2c 20 | 6e 61 6d 65 2c 20 62 6c |cument, |name, bl|
|00002c50| 6f 63 6b 49 44 2c 20 66 | 72 6f 6d 4c 69 6e 6b 4d |ockID, f|romLinkM|
|00002c60| 61 70 2c 20 74 6f 4c 69 | 6e 6b 4d 61 70 2c 20 62 |ap, toLi|nkMap, b|
|00002c70| 6c 6f 63 6b 4d 61 70 20 | 29 0a 58 09 44 42 4d 20 |lockMap |).X.DBM |
|00002c80| 2a 64 62 3b 0a 58 09 44 | 6f 63 75 6d 65 6e 74 20 |*db;.X.D|ocument |
|00002c90| 64 6f 63 75 6d 65 6e 74 | 3b 0a 58 09 63 68 61 72 |document|;.X.char|
|00002ca0| 20 2a 6e 61 6d 65 3b 0a | 58 09 42 6c 6f 63 6b 49 | *name;.|X.BlockI|
|00002cb0| 44 20 62 6c 6f 63 6b 49 | 44 3b 0a 58 09 4d 61 70 |D blockI|D;.X.Map|
|00002cc0| 49 44 20 66 72 6f 6d 4c | 69 6e 6b 4d 61 70 2c 20 |ID fromL|inkMap, |
|00002cd0| 74 6f 4c 69 6e 6b 4d 61 | 70 2c 20 62 6c 6f 63 6b |toLinkMa|p, block|
|00002ce0| 4d 61 70 3b 0a 58 7b 0a | 58 09 56 69 65 77 20 76 |Map;.X{.|X.View v|
|00002cf0| 69 65 77 3b 0a 58 0a 58 | 09 76 69 65 77 20 3d 20 |iew;.X.X|.view = |
|00002d00| 28 56 69 65 77 29 50 74 | 4d 61 6c 6c 6f 63 28 20 |(View)Pt|Malloc( |
|00002d10| 73 69 7a 65 6f 66 28 56 | 69 65 77 53 74 72 75 63 |sizeof(V|iewStruc|
|00002d20| 74 29 2c 20 22 61 6e 61 | 20 76 69 65 77 22 20 29 |t), "ana| view" )|
|00002d30| 3b 0a 58 09 76 69 65 77 | 2d 3e 6d 61 67 69 63 20 |;.X.view|->magic |
|00002d40| 3d 20 56 69 65 77 4d 61 | 67 69 63 3b 0a 58 09 76 |= ViewMa|gic;.X.v|
|00002d50| 69 65 77 2d 3e 74 68 69 | 73 5f 6f 6e 65 20 3d 20 |iew->thi|s_one = |
|00002d60| 28 64 6f 63 75 6d 65 6e | 74 2d 3e 6e 65 78 74 46 |(documen|t->nextF|
|00002d70| 72 65 65 49 44 29 2b 2b | 3b 0a 58 09 76 69 65 77 |reeID)++|;.X.view|
|00002d80| 2d 3e 6e 65 78 74 20 3d | 20 64 6f 63 75 6d 65 6e |->next =| documen|
|00002d90| 74 2d 3e 66 69 72 73 74 | 56 69 65 77 3b 0a 58 09 |t->first|View;.X.|
|00002da0| 64 6f 63 75 6d 65 6e 74 | 2d 3e 66 69 72 73 74 56 |document|->firstV|
|00002db0| 69 65 77 20 3d 20 76 69 | 65 77 2d 3e 74 68 69 73 |iew = vi|ew->this|
|00002dc0| 5f 6f 6e 65 3b 0a 58 09 | 73 74 72 6e 63 70 79 28 |_one;.X.|strncpy(|
|00002dd0| 20 76 69 65 77 2d 3e 6e | 61 6d 65 2c 20 6e 61 6d | view->n|ame, nam|
|00002de0| 65 2c 20 4e 41 4d 45 5f | 53 49 5a 45 20 29 3b 0a |e, NAME_|SIZE );.|
|00002df0| 58 09 76 69 65 77 2d 3e | 62 6c 6f 63 6b 49 44 20 |X.view->|blockID |
|00002e00| 3d 20 62 6c 6f 63 6b 49 | 44 3b 0a 58 09 76 69 65 |= blockI|D;.X.vie|
|00002e10| 77 2d 3e 66 72 6f 6d 4c | 69 6e 6b 4d 61 70 20 3d |w->fromL|inkMap =|
|00002e20| 20 66 72 6f 6d 4c 69 6e | 6b 4d 61 70 3b 0a 58 09 | fromLin|kMap;.X.|
|00002e30| 76 69 65 77 2d 3e 74 6f | 4c 69 6e 6b 4d 61 70 20 |view->to|LinkMap |
|00002e40| 3d 20 74 6f 4c 69 6e 6b | 4d 61 70 3b 0a 58 09 76 |= toLink|Map;.X.v|
|00002e50| 69 65 77 2d 3e 62 6c 6f | 63 6b 4d 61 70 20 3d 20 |iew->blo|ckMap = |
|00002e60| 62 6c 6f 63 6b 4d 61 70 | 3b 0a 58 09 50 75 74 56 |blockMap|;.X.PutV|
|00002e70| 69 65 77 28 20 64 62 2c | 20 76 69 65 77 2c 20 4e |iew( db,| view, N|
|00002e80| 4f 5f 52 45 4c 45 41 53 | 45 20 29 3b 0a 58 09 72 |O_RELEAS|E );.X.r|
|00002e90| 65 74 75 72 6e 20 76 69 | 65 77 3b 0a 58 7d 0a 58 |eturn vi|ew;.X}.X|
|00002ea0| 0a 44 6f 63 75 6d 65 6e | 74 0a 43 72 65 61 74 65 |.Documen|t.Create|
|00002eb0| 44 6f 63 75 6d 65 6e 74 | 28 20 64 62 2c 20 6e 61 |Document|( db, na|
|00002ec0| 6d 65 20 29 0a 58 09 44 | 42 4d 20 2a 64 62 3b 0a |me ).X.D|BM *db;.|
|00002ed0| 58 09 63 68 61 72 20 2a | 6e 61 6d 65 3b 0a 58 7b |X.char *|name;.X{|
|00002ee0| 0a 58 09 44 6f 63 75 6d | 65 6e 74 20 64 6f 63 75 |.X.Docum|ent docu|
|00002ef0| 6d 65 6e 74 3b 0a 58 0a | 58 09 64 6f 63 75 6d 65 |ment;.X.|X.docume|
|00002f00| 6e 74 20 3d 20 28 44 6f | 63 75 6d 65 6e 74 29 50 |nt = (Do|cument)P|
|00002f10| 74 4d 61 6c 6c 6f 63 28 | 20 73 69 7a 65 6f 66 28 |tMalloc(| sizeof(|
|00002f20| 44 6f 63 75 6d 65 6e 74 | 53 74 72 75 63 74 29 2c |Document|Struct),|
|00002f30| 20 22 61 6e 61 20 64 6f | 63 75 6d 65 6e 74 22 20 | "ana do|cument" |
|00002f40| 29 3b 0a 58 09 64 6f 63 | 75 6d 65 6e 74 2d 3e 6d |);.X.doc|ument->m|
|00002f50| 61 67 69 63 20 3d 20 44 | 6f 63 75 6d 65 6e 74 4d |agic = D|ocumentM|
|00002f60| 61 67 69 63 3b 0a 58 09 | 64 6f 63 75 6d 65 6e 74 |agic;.X.|document|
|00002f70| 2d 3e 74 68 69 73 5f 6f | 6e 65 20 3d 20 31 3b 0a |->this_o|ne = 1;.|
|00002f80| 58 09 64 6f 63 75 6d 65 | 6e 74 2d 3e 6e 65 78 74 |X.docume|nt->next|
|00002f90| 20 3d 20 4e 75 6c 6c 4f | 62 6a 65 63 74 3b 0a 58 | = NullO|bject;.X|
|00002fa0| 09 73 74 72 6e 63 70 79 | 28 20 64 6f 63 75 6d 65 |.strncpy|( docume|
|00002fb0| 6e 74 2d 3e 6e 61 6d 65 | 2c 20 6e 61 6d 65 2c 20 |nt->name|, name, |
|00002fc0| 4e 41 4d 45 5f 53 49 5a | 45 20 29 3b 0a 58 09 2f |NAME_SIZ|E );.X./|
|00002fd0| 2a 20 73 74 61 72 74 20 | 49 44 73 20 61 74 20 31 |* start |IDs at 1|
|00002fe0| 30 30 20 73 6f 20 77 65 | 20 63 61 6e 20 75 73 65 |00 so we| can use|
|00002ff0| 20 6c 6f 77 20 69 64 73 | 20 66 6f 72 20 63 6f 6e | low ids| for con|
|00003000| 76 65 6e 74 69 6f 6e 61 | 6c 20 2a 2f 0a 58 09 2f |ventiona|l */.X./|
|00003010| 2a 20 70 75 72 70 6f 73 | 65 73 2c 20 6c 69 6b 65 |* purpos|es, like|
|00003020| 20 6f 70 65 6e 20 66 69 | 6c 65 49 64 73 20 61 73 | open fi|leIds as|
|00003030| 20 49 44 73 20 2a 2f 0a | 58 09 64 6f 63 75 6d 65 | IDs */.|X.docume|
|00003040| 6e 74 2d 3e 6e 65 78 74 | 46 72 65 65 49 44 20 3d |nt->next|FreeID =|
|00003050| 20 31 30 30 3b 0a 58 09 | 64 6f 63 75 6d 65 6e 74 | 100;.X.|document|
|00003060| 2d 3e 69 6e 69 74 69 61 | 6c 56 69 65 77 20 3d 20 |->initia|lView = |
|00003070| 4e 75 6c 6c 4f 62 6a 65 | 63 74 3b 0a 58 09 64 6f |NullObje|ct;.X.do|
|00003080| 63 75 6d 65 6e 74 2d 3e | 66 69 72 73 74 42 6c 6f |cument->|firstBlo|
|00003090| 63 6b 20 3d 20 4e 75 6c | 6c 4f 62 6a 65 63 74 3b |ck = Nul|lObject;|
|000030a0| 0a 58 09 64 6f 63 75 6d | 65 6e 74 2d 3e 66 69 72 |.X.docum|ent->fir|
|000030b0| 73 74 41 74 74 72 69 62 | 75 74 65 20 3d 20 4e 75 |stAttrib|ute = Nu|
|000030c0| 6c 6c 4f 62 6a 65 63 74 | 3b 0a 58 09 64 6f 63 75 |llObject|;.X.docu|
|000030d0| 6d 65 6e 74 2d 3e 66 69 | 72 73 74 4c 69 6e 6b 20 |ment->fi|rstLink |
|000030e0| 3d 20 4e 75 6c 6c 4f 62 | 6a 65 63 74 3b 0a 58 09 |= NullOb|ject;.X.|
|000030f0| 64 6f 63 75 6d 65 6e 74 | 2d 3e 66 69 72 73 74 46 |document|->firstF|
|00003100| 69 6c 65 20 3d 20 4e 75 | 6c 6c 4f 62 6a 65 63 74 |ile = Nu|llObject|
|00003110| 3b 0a 58 09 64 6f 63 75 | 6d 65 6e 74 2d 3e 66 69 |;.X.docu|ment->fi|
|00003120| 72 73 74 56 69 65 77 20 | 3d 20 4e 75 6c 6c 4f 62 |rstView |= NullOb|
|00003130| 6a 65 63 74 3b 0a 58 09 | 64 6f 63 75 6d 65 6e 74 |ject;.X.|document|
|00003140| 2d 3e 66 69 72 73 74 4d | 61 70 20 3d 20 4e 75 6c |->firstM|ap = Nul|
|00003150| 6c 4f 62 6a 65 63 74 3b | 0a 58 09 64 6f 63 75 6d |lObject;|.X.docum|
|00003160| 65 6e 74 2d 3e 66 69 72 | 73 74 54 65 78 74 20 3d |ent->fir|stText =|
|00003170| 20 4e 75 6c 6c 4f 62 6a | 65 63 74 3b 0a 58 09 50 | NullObj|ect;.X.P|
|00003180| 75 74 44 6f 63 75 6d 65 | 6e 74 28 20 64 62 2c 20 |utDocume|nt( db, |
|00003190| 64 6f 63 75 6d 65 6e 74 | 2c 20 4e 4f 5f 52 45 4c |document|, NO_REL|
|000031a0| 45 41 53 45 20 29 3b 0a | 58 09 72 65 74 75 72 6e |EASE );.|X.return|
|000031b0| 20 64 6f 63 75 6d 65 6e | 74 3b 0a 58 7d 0a 58 23 | documen|t;.X}.X#|
|000031c0| 65 6e 64 69 66 0a 58 0a | 45 4e 44 5f 4f 46 5f 46 |endif.X.|END_OF_F|
|000031d0| 49 4c 45 0a 69 66 20 74 | 65 73 74 20 31 30 39 33 |ILE.if t|est 1093|
|000031e0| 33 20 2d 6e 65 20 60 77 | 63 20 2d 63 20 3c 27 61 |3 -ne `w|c -c <'a|
|000031f0| 6e 61 4f 62 6a 65 63 74 | 73 2e 63 27 60 3b 20 74 |naObject|s.c'`; t|
|00003200| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00003210| 72 3a 20 5c 22 27 61 6e | 61 4f 62 6a 65 63 74 73 |r: \"'an|aObjects|
|00003220| 2e 63 27 5c 22 20 75 6e | 70 61 63 6b 65 64 20 77 |.c'\" un|packed w|
|00003230| 69 74 68 20 77 72 6f 6e | 67 20 73 69 7a 65 21 0a |ith wron|g size!.|
|00003240| 66 69 0a 23 20 65 6e 64 | 20 6f 66 20 27 61 6e 61 |fi.# end| of 'ana|
|00003250| 4f 62 6a 65 63 74 73 2e | 63 27 0a 66 69 0a 69 66 |Objects.|c'.fi.if|
|00003260| 20 74 65 73 74 20 2d 66 | 20 27 64 69 73 70 6c 61 | test -f| 'displa|
|00003270| 79 2e 63 27 20 2d 61 20 | 22 24 7b 31 7d 22 20 21 |y.c' -a |"${1}" !|
|00003280| 3d 20 22 2d 63 22 20 3b | 20 74 68 65 6e 20 0a 20 |= "-c" ;| then . |
|00003290| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 57 69 6c 6c | echo sh|ar: Will|
|000032a0| 20 6e 6f 74 20 63 6c 6f | 62 62 65 72 20 65 78 69 | not clo|bber exi|
|000032b0| 73 74 69 6e 67 20 66 69 | 6c 65 20 5c 22 27 64 69 |sting fi|le \"'di|
|000032c0| 73 70 6c 61 79 2e 63 27 | 5c 22 0a 65 6c 73 65 0a |splay.c'|\".else.|
|000032d0| 65 63 68 6f 20 73 68 61 | 72 3a 20 45 78 74 72 61 |echo sha|r: Extra|
|000032e0| 63 74 69 6e 67 20 5c 22 | 27 64 69 73 70 6c 61 79 |cting \"|'display|
|000032f0| 2e 63 27 5c 22 20 5c 28 | 31 32 39 35 32 20 63 68 |.c'\" \(|12952 ch|
|00003300| 61 72 61 63 74 65 72 73 | 5c 29 0a 73 65 64 20 22 |aracters|\).sed "|
|00003310| 73 2f 5e 58 2f 2f 22 20 | 3e 27 64 69 73 70 6c 61 |s/^X//" |>'displa|
|00003320| 79 2e 63 27 20 3c 3c 27 | 45 4e 44 5f 4f 46 5f 46 |y.c' <<'|END_OF_F|
|00003330| 49 4c 45 27 0a 58 2f 2a | 20 24 48 65 61 64 65 72 |ILE'.X/*| $Header|
|00003340| 3a 20 2f 6e 66 73 2f 75 | 6e 6d 76 61 78 2f 66 61 |: /nfs/u|nmvax/fa|
|00003350| 63 75 6c 74 79 2f 63 72 | 6f 77 6c 65 79 2f 78 2f |culty/cr|owley/x/|
|00003360| 70 74 2f 52 43 53 2f 64 | 69 73 70 6c 61 79 2e 63 |pt/RCS/d|isplay.c|
|00003370| 2c 76 20 31 2e 37 20 31 | 39 39 32 2f 30 33 2f 30 |,v 1.7 1|992/03/0|
|00003380| 34 20 31 37 3a 30 37 3a | 31 38 20 63 72 6f 77 6c |4 17:07:|18 crowl|
|00003390| 65 79 20 45 78 70 20 63 | 72 6f 77 6c 65 79 20 24 |ey Exp c|rowley $|
|000033a0| 20 2a 2f 0a 58 0a 58 23 | 69 6e 63 6c 75 64 65 20 | */.X.X#|include |
|000033b0| 3c 6d 61 74 68 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |<math.h>|.X#inclu|
|000033c0| 64 65 20 3c 73 74 72 69 | 6e 67 2e 68 3e 0a 58 23 |de <stri|ng.h>.X#|
|000033d0| 69 6e 63 6c 75 64 65 20 | 3c 73 74 64 69 6f 2e 68 |include |<stdio.h|
|000033e0| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 22 70 74 2e |>.X#incl|ude "pt.|
|000033f0| 68 22 0a 58 23 69 6e 63 | 6c 75 64 65 20 3c 58 31 |h".X#inc|lude <X1|
|00003400| 31 2f 53 74 72 69 6e 67 | 44 65 66 73 2e 68 3e 0a |1/String|Defs.h>.|
|00003410| 58 0a 73 74 61 74 69 63 | 20 69 6e 74 20 6d 61 78 |X.static| int max|
|00003420| 4c 69 6e 65 4c 65 6e 67 | 74 68 20 3d 20 31 3b 0a |LineLeng|th = 1;.|
|00003430| 58 0a 58 2f 2a 20 63 68 | 61 72 61 63 74 65 72 20 |X.X/* ch|aracter |
|00003440| 74 61 62 6c 65 20 66 6f | 72 20 66 69 6c 6c 4c 69 |table fo|r fillLi|
|00003450| 6e 65 20 28 69 6e 20 77 | 69 6e 64 74 65 78 74 2e |ne (in w|indtext.|
|00003460| 63 29 20 2a 2f 0a 63 68 | 61 72 20 63 68 61 72 54 |c) */.ch|ar charT|
|00003470| 61 62 6c 65 5b 32 35 37 | 5d 3b 0a 58 0a 58 2f 2a |able[257|];.X.X/*|
|00003480| 20 73 63 72 65 65 6e 20 | 6c 69 6e 65 20 62 75 66 | screen |line buf|
|00003490| 66 65 72 20 2a 2f 0a 63 | 68 61 72 20 73 63 72 65 |fer */.c|har scre|
|000034a0| 65 6e 4c 69 6e 65 5b 4d | 41 58 43 4f 4c 53 5d 3b |enLine[M|AXCOLS];|
|000034b0| 0a 58 0a 76 6f 69 64 0a | 64 72 61 77 57 69 6e 64 |.X.void.|drawWind|
|000034c0| 6f 77 46 61 73 74 28 77 | 2c 20 66 69 72 73 74 52 |owFast(w|, firstR|
|000034d0| 6f 77 2c 20 6c 61 73 74 | 52 6f 77 2c 20 66 69 72 |ow, last|Row, fir|
|000034e0| 73 74 43 6f 6c 2c 20 6c | 61 73 74 43 6f 6c 20 29 |stCol, l|astCol )|
|000034f0| 0a 58 09 73 74 72 75 63 | 74 20 77 69 6e 64 6f 77 |.X.struc|t window|
|00003500| 20 2a 77 3b 0a 58 09 69 | 6e 74 20 66 69 72 73 74 | *w;.X.i|nt first|
|00003510| 52 6f 77 2c 20 6c 61 73 | 74 52 6f 77 2c 20 66 69 |Row, las|tRow, fi|
|00003520| 72 73 74 43 6f 6c 2c 20 | 6c 61 73 74 43 6f 6c 3b |rstCol, |lastCol;|
|00003530| 0a 58 7b 0a 58 09 65 78 | 74 65 72 6e 20 69 6e 74 |.X{.X.ex|tern int|
|00003540| 20 64 65 62 75 67 3b 0a | 58 0a 58 20 20 20 20 20 | debug;.|X.X |
|00003550| 20 20 20 66 69 6c 6c 57 | 69 6e 64 6f 77 28 77 2c | fillW|indow(w,|
|00003560| 20 66 69 72 73 74 52 6f | 77 2c 20 6c 61 73 74 52 | firstRo|w, lastR|
|00003570| 6f 77 2c 20 66 69 72 73 | 74 43 6f 6c 2c 20 6c 61 |ow, firs|tCol, la|
|00003580| 73 74 43 6f 6c 20 29 3b | 0a 58 09 62 61 6e 6e 65 |stCol );|.X.banne|
|00003590| 72 28 20 77 2c 20 31 20 | 29 3b 0a 58 7d 0a 58 0a |r( w, 1 |);.X}.X.|
|000035a0| 76 6f 69 64 0a 64 72 61 | 77 57 69 6e 64 6f 77 28 |void.dra|wWindow(|
|000035b0| 77 29 0a 58 09 72 65 67 | 69 73 74 65 72 20 73 74 |w).X.reg|ister st|
|000035c0| 72 75 63 74 20 77 69 6e | 64 6f 77 20 2a 77 3b 0a |ruct win|dow *w;.|
|000035d0| 58 7b 0a 58 09 65 78 74 | 65 72 6e 20 69 6e 74 20 |X{.X.ext|ern int |
|000035e0| 64 65 62 75 67 3b 0a 58 | 0a 58 09 69 66 28 20 77 |debug;.X|.X.if( w|
|000035f0| 20 3d 3d 20 4e 55 4c 4c | 20 29 0a 58 09 09 72 65 | == NULL| ).X..re|
|00003600| 74 75 72 6e 3b 0a 58 09 | 66 69 6c 6c 57 69 6e 64 |turn;.X.|fillWind|
|00003610| 6f 77 28 77 2c 20 30 2c | 20 77 2d 3e 6e 52 6f 77 |ow(w, 0,| w->nRow|
|00003620| 73 2d 31 2c 20 30 2c 20 | 77 2d 3e 6e 43 6f 6c 73 |s-1, 0, |w->nCols|
|00003630| 2d 31 29 3b 0a 58 09 62 | 61 6e 6e 65 72 28 20 77 |-1);.X.b|anner( w|
|00003640| 2c 20 31 20 29 3b 0a 58 | 7d 0a 58 0a 73 74 61 74 |, 1 );.X|}.X.stat|
|00003650| 69 63 20 63 68 61 72 20 | 2a 0a 58 46 6f 72 6d 61 |ic char |*.XForma|
|00003660| 74 54 69 74 6c 65 28 20 | 66 6f 72 6d 61 74 2c 20 |tTitle( |format, |
|00003670| 77 2c 20 66 66 20 29 0a | 58 09 63 68 61 72 20 2a |w, ff ).|X.char *|
|00003680| 20 66 6f 72 6d 61 74 3b | 0a 58 20 20 20 20 20 20 | format;|.X |
|00003690| 20 20 73 74 72 75 63 74 | 20 77 69 6e 64 6f 77 20 | struct| window |
|000036a0| 2a 77 3b 0a 58 20 20 20 | 20 20 20 20 20 73 74 72 |*w;.X | str|
|000036b0| 75 63 74 20 6f 70 65 6e | 46 69 6c 65 20 2a 66 66 |uct open|File *ff|
|000036c0| 3b 0a 58 7b 0a 58 09 65 | 78 74 65 72 6e 20 63 68 |;.X{.X.e|xtern ch|
|000036d0| 61 72 20 74 65 78 74 42 | 75 66 66 65 72 5b 5d 3b |ar textB|uffer[];|
|000036e0| 0a 58 09 65 78 74 65 72 | 6e 20 63 68 61 72 20 6d |.X.exter|n char m|
|000036f0| 73 67 42 75 66 66 65 72 | 5b 5d 3b 0a 58 09 65 78 |sgBuffer|[];.X.ex|
|00003700| 74 65 72 6e 20 69 6e 74 | 20 70 61 74 68 4e 61 6d |tern int| pathNam|
|00003710| 65 73 3b 0a 58 09 65 78 | 74 65 72 6e 20 69 6e 74 |es;.X.ex|tern int|
|00003720| 20 6f 76 65 72 54 79 70 | 65 3b 0a 58 09 65 78 74 | overTyp|e;.X.ext|
|00003730| 65 72 6e 20 69 6e 74 20 | 68 79 70 65 72 74 65 78 |ern int |hypertex|
|00003740| 74 4f 6e 3b 0a 58 20 20 | 20 20 20 20 20 20 65 78 |tOn;.X | ex|
|00003750| 74 65 72 6e 20 73 74 72 | 75 63 74 20 6f 70 65 6e |tern str|uct open|
|00003760| 46 69 6c 65 20 2a 66 69 | 6c 65 73 3b 0a 58 0a 58 |File *fi|les;.X.X|
|00003770| 09 63 68 61 72 20 2a 20 | 74 6f 20 3d 20 6d 73 67 |.char * |to = msg|
|00003780| 42 75 66 66 65 72 3b 0a | 58 09 63 68 61 72 20 2a |Buffer;.|X.char *|
|00003790| 20 63 6f 70 79 5f 69 6e | 3b 0a 58 09 63 68 61 72 | copy_in|;.X.char|
|000037a0| 20 63 68 3b 0a 58 0a 58 | 09 77 68 69 6c 65 28 20 | ch;.X.X|.while( |
|000037b0| 28 63 68 20 3d 20 2a 66 | 6f 72 6d 61 74 2b 2b 29 |(ch = *f|ormat++)|
|000037c0| 20 21 3d 20 27 5c 30 27 | 20 29 20 7b 0a 58 09 09 | != '\0'| ) {.X..|
|000037d0| 69 66 28 20 63 68 20 21 | 3d 20 27 25 27 20 29 20 |if( ch !|= '%' ) |
|000037e0| 7b 0a 58 09 09 09 2a 74 | 6f 2b 2b 20 3d 20 63 68 |{.X...*t|o++ = ch|
|000037f0| 3b 0a 58 09 09 09 63 6f | 6e 74 69 6e 75 65 3b 0a |;.X...co|ntinue;.|
|00003800| 58 09 09 7d 0a 58 09 09 | 2f 2a 20 72 65 61 64 20 |X..}.X..|/* read |
|00003810| 61 20 27 25 27 20 2a 2f | 0a 58 09 09 73 77 69 74 |a '%' */|.X..swit|
|00003820| 63 68 28 20 63 68 20 3d | 20 2a 66 6f 72 6d 61 74 |ch( ch =| *format|
|00003830| 2b 2b 20 29 20 7b 0a 58 | 09 09 64 65 66 61 75 6c |++ ) {.X|..defaul|
|00003840| 74 3a 09 2f 2a 20 61 6e | 79 74 68 69 6e 67 2c 20 |t:./* an|ything, |
|00003850| 69 6e 63 6c 75 64 69 6e | 67 20 61 20 6c 69 74 65 |includin|g a lite|
|00003860| 72 61 6c 20 27 25 27 20 | 2a 2f 0a 58 09 09 09 74 |ral '%' |*/.X...t|
|00003870| 65 78 74 42 75 66 66 65 | 72 5b 30 5d 20 3d 20 63 |extBuffe|r[0] = c|
|00003880| 68 3b 0a 58 09 09 09 74 | 65 78 74 42 75 66 66 65 |h;.X...t|extBuffe|
|00003890| 72 5b 31 5d 20 3d 20 27 | 5c 30 27 3b 0a 58 09 09 |r[1] = '|\0';.X..|
|000038a0| 09 63 6f 70 79 5f 69 6e | 20 3d 20 74 65 78 74 42 |.copy_in| = textB|
|000038b0| 75 66 66 65 72 3b 0a 58 | 09 09 09 62 72 65 61 6b |uffer;.X|...break|
|000038c0| 3b 0a 58 09 09 63 61 73 | 65 20 27 6e 27 3a 09 2f |;.X..cas|e 'n':./|
|000038d0| 2a 20 66 69 6c 65 20 6e | 61 6d 65 20 2a 2f 0a 58 |* file n|ame */.X|
|000038e0| 09 09 09 63 6f 70 79 5f | 69 6e 20 3d 20 26 28 28 |...copy_|in = &((|
|000038f0| 66 66 2d 3e 6f 72 69 67 | 4e 61 6d 65 29 5b 70 61 |ff->orig|Name)[pa|
|00003900| 74 68 4e 61 6d 65 73 3f | 30 3a 77 2d 3e 6e 61 6d |thNames?|0:w->nam|
|00003910| 65 4f 66 66 73 65 74 5d | 29 3b 0a 58 09 09 09 62 |eOffset]|);.X...b|
|00003920| 72 65 61 6b 3b 0a 58 09 | 09 63 61 73 65 20 27 4e |reak;.X.|.case 'N|
|00003930| 27 3a 09 2f 2a 20 66 75 | 6c 6c 20 70 61 74 68 20 |':./* fu|ll path |
|00003940| 66 69 6c 65 20 6e 61 6d | 65 20 2a 2f 0a 58 09 09 |file nam|e */.X..|
|00003950| 09 63 6f 70 79 5f 69 6e | 20 3d 20 26 28 28 66 66 |.copy_in| = &((ff|
|00003960| 2d 3e 6f 72 69 67 4e 61 | 6d 65 29 5b 30 5d 29 3b |->origNa|me)[0]);|
|00003970| 0a 58 09 09 09 62 72 65 | 61 6b 3b 0a 58 09 09 63 |.X...bre|ak;.X..c|
|00003980| 61 73 65 20 27 73 27 3a | 09 2f 2a 20 73 68 6f 72 |ase 's':|./* shor|
|00003990| 74 20 66 69 6c 65 20 6e | 61 6d 65 20 2a 2f 0a 58 |t file n|ame */.X|
|000039a0| 09 09 09 63 6f 70 79 5f | 69 6e 20 3d 20 26 28 28 |...copy_|in = &((|
|000039b0| 66 66 2d 3e 6f 72 69 67 | 4e 61 6d 65 29 5b 77 2d |ff->orig|Name)[w-|
|000039c0| 3e 6e 61 6d 65 4f 66 66 | 73 65 74 5d 29 3b 0a 58 |>nameOff|set]);.X|
|000039d0| 09 09 09 62 72 65 61 6b | 3b 0a 58 09 09 63 61 73 |...break|;.X..cas|
|000039e0| 65 20 27 63 27 3a 09 2f | 2a 20 63 68 61 6e 67 65 |e 'c':./|* change|
|000039f0| 64 20 20 66 6c 61 67 20 | 2a 2f 0a 58 09 09 09 7b |d flag |*/.X...{|
|00003a00| 2f 2a 20 67 65 74 20 74 | 68 65 20 63 68 61 6e 67 |/* get t|he chang|
|00003a10| 65 20 69 6e 64 69 63 61 | 74 6f 72 20 73 74 72 69 |e indica|tor stri|
|00003a20| 6e 67 20 2a 2f 0a 58 09 | 09 09 09 63 68 61 72 20 |ng */.X.|...char |
|00003a30| 2a 20 74 6f 20 3d 20 74 | 65 78 74 42 75 66 66 65 |* to = t|extBuffe|
|00003a40| 72 3b 0a 58 09 09 09 09 | 63 68 61 72 20 64 65 6c |r;.X....|char del|
|00003a50| 69 6d 69 74 65 72 20 3d | 20 2a 66 6f 72 6d 61 74 |imiter =| *format|
|00003a60| 2b 2b 3b 0a 58 09 09 09 | 09 77 68 69 6c 65 28 20 |++;.X...|.while( |
|00003a70| 31 20 29 20 7b 0a 58 09 | 09 09 09 09 63 68 20 3d |1 ) {.X.|....ch =|
|00003a80| 20 2a 66 6f 72 6d 61 74 | 2b 2b 3b 0a 58 09 09 09 | *format|++;.X...|
|00003a90| 09 09 69 66 28 20 63 68 | 20 3d 3d 20 64 65 6c 69 |..if( ch| == deli|
|00003aa0| 6d 69 74 65 72 20 29 0a | 58 09 09 09 09 09 09 62 |miter ).|X......b|
|00003ab0| 72 65 61 6b 3b 0a 58 09 | 09 09 09 09 2f 2a 20 61 |reak;.X.|..../* a|
|00003ac0| 6c 6c 6f 77 20 66 6f 72 | 20 6d 69 73 73 69 6e 67 |llow for| missing|
|00003ad0| 20 64 65 6c 69 6d 69 74 | 65 72 73 20 2a 2f 0a 58 | delimit|ers */.X|
|00003ae0| 09 09 09 09 09 69 66 28 | 20 63 68 20 3d 3d 20 27 |.....if(| ch == '|
|00003af0| 5c 30 27 20 29 20 7b 0a | 58 09 09 09 09 09 09 2d |\0' ) {.|X......-|
|00003b00| 2d 66 6f 72 6d 61 74 3b | 0a 58 09 09 09 09 09 09 |-format;|.X......|
|00003b10| 6d 73 67 28 0a 58 22 4d | 69 73 73 69 6e 67 20 63 |msg(.X"M|issing c|
|00003b20| 68 61 6e 67 65 20 66 6c | 61 67 20 69 6e 20 74 69 |hange fl|ag in ti|
|00003b30| 74 6c 65 20 66 6f 72 6d | 61 74 22 2c 20 31 20 29 |tle form|at", 1 )|
|00003b40| 3b 0a 58 09 09 09 09 09 | 09 62 72 65 61 6b 3b 0a |;.X.....|.break;.|
|00003b50| 58 09 09 09 09 09 7d 0a | 58 09 09 09 09 09 2a 74 |X.....}.|X.....*t|
|00003b60| 6f 2b 2b 20 3d 20 63 68 | 3b 0a 58 09 09 09 09 7d |o++ = ch|;.X....}|
|00003b70| 0a 58 09 09 09 09 2a 74 | 6f 20 3d 20 27 5c 30 27 |.X....*t|o = '\0'|
|00003b80| 3b 0a 58 09 09 09 7d 0a | 58 09 09 09 69 66 28 20 |;.X...}.|X...if( |
|00003b90| 66 66 2d 3e 66 6c 61 67 | 73 26 49 53 5f 43 48 41 |ff->flag|s&IS_CHA|
|00003ba0| 4e 47 45 44 20 29 20 7b | 0a 58 09 09 09 09 63 6f |NGED ) {|.X....co|
|00003bb0| 70 79 5f 69 6e 20 3d 20 | 74 65 78 74 42 75 66 66 |py_in = |textBuff|
|00003bc0| 65 72 3b 0a 58 09 09 09 | 7d 20 65 6c 73 65 0a 58 |er;.X...|} else.X|
|00003bd0| 09 09 09 09 63 6f 70 79 | 5f 69 6e 20 3d 20 22 22 |....copy|_in = ""|
|00003be0| 3b 0a 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |;.X...br|eak;.X..|
|00003bf0| 63 61 73 65 20 27 6f 27 | 3a 09 2f 2a 20 6f 76 65 |case 'o'|:./* ove|
|00003c00| 72 54 79 70 65 20 66 6c | 61 67 20 2a 2f 0a 58 09 |rType fl|ag */.X.|
|00003c10| 09 09 7b 2f 2a 20 67 65 | 74 20 74 68 65 20 6f 76 |..{/* ge|t the ov|
|00003c20| 65 72 74 79 70 65 20 69 | 6e 64 69 63 61 74 6f 72 |ertype i|ndicator|
|00003c30| 20 73 74 72 69 6e 67 20 | 2a 2f 0a 58 09 09 09 09 | string |*/.X....|
|00003c40| 63 68 61 72 20 2a 20 74 | 6f 20 3d 20 74 65 78 74 |char * t|o = text|
|00003c50| 42 75 66 66 65 72 3b 0a | 58 09 09 09 09 63 68 61 |Buffer;.|X....cha|
|00003c60| 72 20 64 65 6c 69 6d 69 | 74 65 72 20 3d 20 2a 66 |r delimi|ter = *f|
|00003c70| 6f 72 6d 61 74 2b 2b 3b | 0a 58 09 09 09 09 77 68 |ormat++;|.X....wh|
|00003c80| 69 6c 65 28 20 31 20 29 | 20 7b 0a 58 09 09 09 09 |ile( 1 )| {.X....|
|00003c90| 09 63 68 20 3d 20 2a 66 | 6f 72 6d 61 74 2b 2b 3b |.ch = *f|ormat++;|
|00003ca0| 0a 58 09 09 09 09 09 69 | 66 28 20 63 68 20 3d 3d |.X.....i|f( ch ==|
|00003cb0| 20 64 65 6c 69 6d 69 74 | 65 72 20 29 0a 58 09 09 | delimit|er ).X..|
|00003cc0| 09 09 09 09 62 72 65 61 | 6b 3b 0a 58 09 09 09 09 |....brea|k;.X....|
|00003cd0| 09 2f 2a 20 61 6c 6c 6f | 77 20 66 6f 72 20 6d 69 |./* allo|w for mi|
|00003ce0| 73 73 69 6e 67 20 64 65 | 6c 69 6d 69 74 65 72 73 |ssing de|limiters|
|00003cf0| 20 2a 2f 0a 58 09 09 09 | 09 09 69 66 28 20 63 68 | */.X...|..if( ch|
|00003d00| 20 3d 3d 20 27 5c 30 27 | 20 29 20 7b 0a 58 09 09 | == '\0'| ) {.X..|
|00003d10| 09 09 09 09 2d 2d 66 6f | 72 6d 61 74 3b 0a 58 09 |....--fo|rmat;.X.|
|00003d20| 09 09 09 09 09 6d 73 67 | 28 0a 58 22 4d 69 73 73 |.....msg|(.X"Miss|
|00003d30| 69 6e 67 20 6f 76 65 72 | 74 79 70 65 20 66 6c 61 |ing over|type fla|
|00003d40| 67 20 69 6e 20 74 69 74 | 6c 65 20 66 6f 72 6d 61 |g in tit|le forma|
|00003d50| 74 22 2c 20 31 20 29 3b | 0a 58 09 09 09 09 09 09 |t", 1 );|.X......|
|00003d60| 62 72 65 61 6b 3b 0a 58 | 09 09 09 09 09 7d 0a 58 |break;.X|.....}.X|
|00003d70| 09 09 09 09 09 2a 74 6f | 2b 2b 20 3d 20 63 68 3b |.....*to|++ = ch;|
|00003d80| 0a 58 09 09 09 09 7d 0a | 58 09 09 09 09 2a 74 6f |.X....}.|X....*to|
|00003d90| 20 3d 20 27 5c 30 27 3b | 0a 58 09 09 09 7d 0a 58 | = '\0';|.X...}.X|
|00003da0| 09 09 09 69 66 28 20 6f | 76 65 72 54 79 70 65 20 |...if( o|verType |
|00003db0| 29 20 7b 0a 58 09 09 09 | 09 63 6f 70 79 5f 69 6e |) {.X...|.copy_in|
|00003dc0| 20 3d 20 74 65 78 74 42 | 75 66 66 65 72 3b 0a 58 | = textB|uffer;.X|
|00003dd0| 09 09 09 7d 20 65 6c 73 | 65 0a 58 09 09 09 09 63 |...} els|e.X....c|
|00003de0| 6f 70 79 5f 69 6e 20 3d | 20 22 22 3b 0a 58 09 09 |opy_in =| "";.X..|
|00003df0| 09 62 72 65 61 6b 3b 0a | 58 09 09 63 61 73 65 20 |.break;.|X..case |
|00003e00| 27 72 27 3a 09 2f 2a 20 | 72 65 61 64 4f 6e 6c 79 |'r':./* |readOnly|
|00003e10| 20 66 6c 61 67 20 2a 2f | 0a 58 09 09 09 7b 2f 2a | flag */|.X...{/*|
|00003e20| 20 67 65 74 20 74 68 65 | 20 72 65 61 64 4f 6e 6c | get the| readOnl|
|00003e30| 79 20 69 6e 64 69 63 61 | 74 6f 72 20 73 74 72 69 |y indica|tor stri|
|00003e40| 6e 67 20 2a 2f 0a 58 09 | 09 09 09 63 68 61 72 20 |ng */.X.|...char |
|00003e50| 2a 20 74 6f 20 3d 20 74 | 65 78 74 42 75 66 66 65 |* to = t|extBuffe|
|00003e60| 72 3b 0a 58 09 09 09 09 | 63 68 61 72 20 64 65 6c |r;.X....|char del|
|00003e70| 69 6d 69 74 65 72 20 3d | 20 2a 66 6f 72 6d 61 74 |imiter =| *format|
|00003e80| 2b 2b 3b 0a 58 09 09 09 | 09 77 68 69 6c 65 28 20 |++;.X...|.while( |
|00003e90| 31 20 29 20 7b 0a 58 09 | 09 09 09 09 63 68 20 3d |1 ) {.X.|....ch =|
|00003ea0| 20 2a 66 6f 72 6d 61 74 | 2b 2b 3b 0a 58 09 09 09 | *format|++;.X...|
|00003eb0| 09 09 69 66 28 20 63 68 | 20 3d 3d 20 64 65 6c 69 |..if( ch| == deli|
|00003ec0| 6d 69 74 65 72 20 29 0a | 58 09 09 09 09 09 09 62 |miter ).|X......b|
|00003ed0| 72 65 61 6b 3b 0a 58 09 | 09 09 09 09 2f 2a 20 61 |reak;.X.|..../* a|
|00003ee0| 6c 6c 6f 77 20 66 6f 72 | 20 6d 69 73 73 69 6e 67 |llow for| missing|
|00003ef0| 20 64 65 6c 69 6d 69 74 | 65 72 73 20 2a 2f 0a 58 | delimit|ers */.X|
|00003f00| 09 09 09 09 09 69 66 28 | 20 63 68 20 3d 3d 20 27 |.....if(| ch == '|
|00003f10| 5c 30 27 20 29 20 7b 0a | 58 09 09 09 09 09 09 2d |\0' ) {.|X......-|
|00003f20| 2d 66 6f 72 6d 61 74 3b | 0a 58 09 09 09 09 09 09 |-format;|.X......|
|00003f30| 6d 73 67 28 0a 58 22 4d | 69 73 73 69 6e 67 20 72 |msg(.X"M|issing r|
|00003f40| 65 61 64 20 6f 6e 6c 79 | 20 66 6c 61 67 20 69 6e |ead only| flag in|
|00003f50| 20 74 69 74 6c 65 20 66 | 6f 72 6d 61 74 22 2c 20 | title f|ormat", |
|00003f60| 31 20 29 3b 0a 58 09 09 | 09 09 09 09 62 72 65 61 |1 );.X..|....brea|
|00003f70| 6b 3b 0a 58 09 09 09 09 | 09 7d 0a 58 09 09 09 09 |k;.X....|.}.X....|
|00003f80| 09 2a 74 6f 2b 2b 20 3d | 20 63 68 3b 0a 58 09 09 |.*to++ =| ch;.X..|
|00003f90| 09 09 7d 0a 58 09 09 09 | 09 2a 74 6f 20 3d 20 27 |..}.X...|.*to = '|
|00003fa0| 5c 30 27 3b 0a 58 09 09 | 09 7d 0a 58 09 09 09 69 |\0';.X..|.}.X...i|
|00003fb0| 66 28 20 66 66 2d 3e 66 | 6c 61 67 73 26 52 45 41 |f( ff->f|lags&REA|
|00003fc0| 44 5f 4f 4e 4c 59 20 29 | 20 7b 0a 58 09 09 09 09 |D_ONLY )| {.X....|
|00003fd0| 63 6f 70 79 5f 69 6e 20 | 3d 20 74 65 78 74 42 75 |copy_in |= textBu|
|00003fe0| 66 66 65 72 3b 0a 58 09 | 09 09 7d 20 65 6c 73 65 |ffer;.X.|..} else|
|00003ff0| 0a 58 09 09 09 09 63 6f | 70 79 5f 69 6e 20 3d 20 |.X....co|py_in = |
|00004000| 22 22 3b 0a 58 09 09 09 | 62 72 65 61 6b 3b 0a 58 |"";.X...|break;.X|
|00004010| 09 09 63 61 73 65 20 27 | 6c 27 3a 09 2f 2a 20 62 |..case '|l':./* b|
|00004020| 65 67 69 6e 6e 69 6e 67 | 20 6c 69 6e 65 20 6e 75 |eginning| line nu|
|00004030| 6d 62 65 72 20 2a 2f 0a | 58 09 09 09 73 70 72 69 |mber */.|X...spri|
|00004040| 6e 74 66 28 20 74 65 78 | 74 42 75 66 66 65 72 2c |ntf( tex|tBuffer,|
|00004050| 20 22 25 64 22 2c 20 77 | 2d 3e 6e 75 6d 54 6f 70 | "%d", w|->numTop|
|00004060| 6c 69 6e 65 20 29 3b 0a | 58 09 09 09 63 6f 70 79 |line );.|X...copy|
|00004070| 5f 69 6e 20 3d 20 74 65 | 78 74 42 75 66 66 65 72 |_in = te|xtBuffer|
|00004080| 3b 0a 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |;.X...br|eak;.X..|
|00004090| 63 61 73 65 20 27 4c 27 | 3a 09 2f 2a 20 65 6e 64 |case 'L'|:./* end|
|000040a0| 69 6e 67 20 6c 69 6e 65 | 20 6e 75 6d 62 65 72 20 |ing line| number |
|000040b0| 2a 2f 0a 58 09 09 09 73 | 70 72 69 6e 74 66 28 20 |*/.X...s|printf( |
|000040c0| 74 65 78 74 42 75 66 66 | 65 72 2c 20 22 25 64 22 |textBuff|er, "%d"|
|000040d0| 2c 20 77 2d 3e 6e 75 6d | 42 6f 74 6c 69 6e 65 20 |, w->num|Botline |
|000040e0| 2d 20 31 20 29 3b 0a 58 | 09 09 09 63 6f 70 79 5f |- 1 );.X|...copy_|
|000040f0| 69 6e 20 3d 20 74 65 78 | 74 42 75 66 66 65 72 3b |in = tex|tBuffer;|
|00004100| 0a 58 09 09 09 62 72 65 | 61 6b 3b 0a 58 09 09 63 |.X...bre|ak;.X..c|
|00004110| 61 73 65 20 27 70 27 3a | 09 2f 2a 20 62 65 67 69 |ase 'p':|./* begi|
|00004120| 6e 6e 69 6e 67 20 70 6f | 73 69 74 69 6f 6e 20 6e |nning po|sition n|
|00004130| 75 6d 62 65 72 20 2a 2f | 0a 58 09 09 09 73 70 72 |umber */|.X...spr|
|00004140| 69 6e 74 66 28 20 74 65 | 78 74 42 75 66 66 65 72 |intf( te|xtBuffer|
|00004150| 2c 20 22 25 64 22 2c 20 | 77 2d 3e 70 6f 73 54 6f |, "%d", |w->posTo|
|00004160| 70 6c 69 6e 65 20 29 3b | 0a 58 09 09 09 63 6f 70 |pline );|.X...cop|
|00004170| 79 5f 69 6e 20 3d 20 74 | 65 78 74 42 75 66 66 65 |y_in = t|extBuffe|
|00004180| 72 3b 0a 58 09 09 09 62 | 72 65 61 6b 3b 0a 58 09 |r;.X...b|reak;.X.|
|00004190| 09 63 61 73 65 20 27 50 | 27 3a 09 2f 2a 20 65 6e |.case 'P|':./* en|
|000041a0| 64 69 6e 67 20 70 6f 73 | 69 74 69 6f 6e 20 6e 75 |ding pos|ition nu|
|000041b0| 6d 62 65 72 20 2a 2f 0a | 58 09 09 09 73 70 72 69 |mber */.|X...spri|
|000041c0| 6e 74 66 28 20 74 65 78 | 74 42 75 66 66 65 72 2c |ntf( tex|tBuffer,|
|000041d0| 20 22 25 64 22 2c 20 77 | 2d 3e 70 6f 73 42 6f 74 | "%d", w|->posBot|
|000041e0| 6c 69 6e 65 20 2d 20 31 | 20 29 3b 0a 58 09 09 09 |line - 1| );.X...|
|000041f0| 63 6f 70 79 5f 69 6e 20 | 3d 20 74 65 78 74 42 75 |copy_in |= textBu|
|00004200| 66 66 65 72 3b 0a 58 09 | 09 09 62 72 65 61 6b 3b |ffer;.X.|..break;|
|00004210| 0a 58 09 09 63 61 73 65 | 20 27 53 27 3a 09 2f 2a |.X..case| 'S':./*|
|00004220| 20 66 69 6c 65 20 73 69 | 7a 65 20 28 69 6e 20 62 | file si|ze (in b|
|00004230| 79 74 65 73 29 20 2a 2f | 0a 58 09 09 09 73 70 72 |ytes) */|.X...spr|
|00004240| 69 6e 74 66 28 20 74 65 | 78 74 42 75 66 66 65 72 |intf( te|xtBuffer|
|00004250| 2c 20 22 25 64 22 2c 20 | 66 66 2d 3e 66 69 6c 65 |, "%d", |ff->file|
|00004260| 53 69 7a 65 20 29 3b 0a | 58 09 09 09 63 6f 70 79 |Size );.|X...copy|
|00004270| 5f 69 6e 20 3d 20 74 65 | 78 74 42 75 66 66 65 72 |_in = te|xtBuffer|
|00004280| 3b 0a 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |;.X...br|eak;.X..|
|00004290| 63 61 73 65 20 27 76 27 | 3a 09 2f 2a 20 62 65 67 |case 'v'|:./* beg|
|000042a0| 69 6e 6e 69 6e 67 20 63 | 6f 6c 75 6d 6e 20 6e 75 |inning c|olumn nu|
|000042b0| 6d 62 65 72 20 2a 2f 0a | 58 09 09 09 73 70 72 69 |mber */.|X...spri|
|000042c0| 6e 74 66 28 20 74 65 78 | 74 42 75 66 66 65 72 2c |ntf( tex|tBuffer,|
|000042d0| 20 22 25 64 22 2c 20 77 | 2d 3e 69 6e 64 65 6e 74 | "%d", w|->indent|
|000042e0| 20 2b 20 31 20 29 3b 0a | 58 09 09 09 63 6f 70 79 | + 1 );.|X...copy|
|000042f0| 5f 69 6e 20 3d 20 74 65 | 78 74 42 75 66 66 65 72 |_in = te|xtBuffer|
|00004300| 3b 0a 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |;.X...br|eak;.X..|
|00004310| 63 61 73 65 20 27 56 27 | 3a 09 2f 2a 20 65 6e 64 |case 'V'|:./* end|
|00004320| 69 6e 67 20 63 6f 6c 75 | 6d 6e 20 6e 75 6d 62 65 |ing colu|mn numbe|
|00004330| 72 20 2a 2f 0a 58 09 09 | 09 73 70 72 69 6e 74 66 |r */.X..|.sprintf|
|00004340| 28 20 74 65 78 74 42 75 | 66 66 65 72 2c 20 22 25 |( textBu|ffer, "%|
|00004350| 64 22 2c 20 77 2d 3e 69 | 6e 64 65 6e 74 20 2b 20 |d", w->i|ndent + |
|00004360| 77 2d 3e 6e 43 6f 6c 73 | 20 29 3b 0a 58 09 09 09 |w->nCols| );.X...|
|00004370| 63 6f 70 79 5f 69 6e 20 | 3d 20 74 65 78 74 42 75 |copy_in |= textBu|
|00004380| 66 66 65 72 3b 0a 58 09 | 09 09 62 72 65 61 6b 3b |ffer;.X.|..break;|
|00004390| 0a 58 23 69 66 64 65 66 | 20 48 59 50 45 52 54 45 |.X#ifdef| HYPERTE|
|000043a0| 58 54 0a 58 09 09 63 61 | 73 65 20 27 4d 27 3a 09 |XT.X..ca|se 'M':.|
|000043b0| 2f 2a 20 62 6c 6f 63 6b | 20 6d 61 70 20 6e 61 6d |/* block| map nam|
|000043c0| 65 20 2a 2f 0a 58 09 09 | 09 69 66 28 20 77 2d 3e |e */.X..|.if( w->|
|000043d0| 62 6c 6f 63 6b 4d 61 70 | 21 3d 4e 55 4c 4c 20 26 |blockMap|!=NULL &|
|000043e0| 26 20 68 79 70 65 72 74 | 65 78 74 4f 6e 20 29 0a |& hypert|extOn ).|
|000043f0| 58 09 09 09 09 73 70 72 | 69 6e 74 66 28 20 74 65 |X....spr|intf( te|
|00004400| 78 74 42 75 66 66 65 72 | 2c 20 22 25 73 22 2c 20 |xtBuffer|, "%s", |
|00004410| 77 2d 3e 62 6c 6f 63 6b | 4d 61 70 2d 3e 6e 61 6d |w->block|Map->nam|
|00004420| 65 20 29 3b 0a 58 09 09 | 09 65 6c 73 65 0a 58 09 |e );.X..|.else.X.|
|00004430| 09 09 09 74 65 78 74 42 | 75 66 66 65 72 5b 30 5d |...textB|uffer[0]|
|00004440| 20 3d 20 27 5c 30 27 3b | 0a 58 09 09 09 63 6f 70 | = '\0';|.X...cop|
|00004450| 79 5f 69 6e 20 3d 20 74 | 65 78 74 42 75 66 66 65 |y_in = t|extBuffe|
|00004460| 72 3b 0a 58 09 09 09 62 | 72 65 61 6b 3b 0a 58 23 |r;.X...b|reak;.X#|
|00004470| 65 6e 64 69 66 0a 58 09 | 09 7d 0a 58 09 09 77 68 |endif.X.|.}.X..wh|
|00004480| 69 6c 65 28 20 2a 63 6f | 70 79 5f 69 6e 20 21 3d |ile( *co|py_in !=|
|00004490| 20 27 5c 30 27 20 29 0a | 58 09 09 09 2a 74 6f 2b | '\0' ).|X...*to+|
|000044a0| 2b 20 3d 20 2a 63 6f 70 | 79 5f 69 6e 2b 2b 3b 0a |+ = *cop|y_in++;.|
|000044b0| 58 09 7d 0a 58 09 2a 74 | 6f 20 3d 20 27 5c 30 27 |X.}.X.*t|o = '\0'|
|000044c0| 3b 0a 58 09 0a 58 09 72 | 65 74 75 72 6e 20 6d 73 |;.X..X.r|eturn ms|
|000044d0| 67 42 75 66 66 65 72 3b | 0a 58 7d 0a 58 0a 76 6f |gBuffer;|.X}.X.vo|
|000044e0| 69 64 0a 62 61 6e 6e 65 | 72 28 20 77 2c 20 64 6f |id.banne|r( w, do|
|000044f0| 53 6c 69 64 65 72 20 29 | 0a 58 09 72 65 67 69 73 |Slider )|.X.regis|
|00004500| 74 65 72 20 73 74 72 75 | 63 74 20 77 69 6e 64 6f |ter stru|ct windo|
|00004510| 77 20 2a 77 3b 0a 58 09 | 69 6e 74 20 64 6f 53 6c |w *w;.X.|int doSl|
|00004520| 69 64 65 72 3b 0a 58 7b | 0a 58 09 65 78 74 65 72 |ider;.X{|.X.exter|
|00004530| 6e 20 69 6e 74 20 6d 73 | 67 49 6e 54 69 74 6c 65 |n int ms|gInTitle|
|00004540| 4c 69 6e 65 3b 0a 58 09 | 65 78 74 65 72 6e 20 69 |Line;.X.|extern i|
|00004550| 6e 74 20 64 65 62 75 67 | 3b 0a 58 09 65 78 74 65 |nt debug|;.X.exte|
|00004560| 72 6e 20 63 68 61 72 20 | 2a 20 74 69 74 6c 65 46 |rn char |* titleF|
|00004570| 6f 72 6d 61 74 3b 0a 58 | 09 65 78 74 65 72 6e 20 |ormat;.X|.extern |
|00004580| 63 68 61 72 20 2a 20 69 | 63 6f 6e 46 6f 72 6d 61 |char * i|conForma|
|00004590| 74 3b 0a 58 0a 58 09 6c | 6f 6e 67 20 6c 70 3b 0a |t;.X.X.l|ong lp;.|
|000045a0| 58 20 20 20 20 20 20 20 | 20 73 74 72 75 63 74 20 |X | struct |
|000045b0| 6f 70 65 6e 46 69 6c 65 | 20 2a 66 66 3b 0a 58 0a |openFile| *ff;.X.|
|000045c0| 58 09 2f 2a 20 72 65 6d | 65 6d 62 65 72 20 74 68 |X./* rem|ember th|
|000045d0| 61 74 20 77 65 20 64 6f | 6e 27 74 20 68 61 76 65 |at we do|n't have|
|000045e0| 20 74 6f 20 64 72 61 77 | 20 74 68 65 20 62 61 6e | to draw| the ban|
|000045f0| 6e 65 72 20 61 67 61 69 | 6e 20 2a 2f 0a 58 09 6d |ner agai|n */.X.m|
|00004600| 73 67 49 6e 54 69 74 6c | 65 4c 69 6e 65 20 3d 20 |sgInTitl|eLine = |
|00004610| 30 3b 0a 58 0a 58 09 2f | 2a 20 67 75 61 72 64 20 |0;.X.X./|* guard |
|00004620| 61 67 61 69 6e 73 74 20 | 63 61 6c 6c 73 20 77 69 |against |calls wi|
|00004630| 74 68 20 61 20 4e 55 4c | 4c 20 61 72 67 75 6d 65 |th a NUL|L argume|
|00004640| 6e 74 20 2a 2f 0a 58 09 | 69 66 28 20 77 20 3d 3d |nt */.X.|if( w ==|
|00004650| 20 4e 55 4c 4c 20 29 0a | 58 09 09 72 65 74 75 72 | NULL ).|X..retur|
|00004660| 6e 3b 0a 58 0a 58 09 69 | 66 28 20 77 2d 3e 66 69 |n;.X.X.i|f( w->fi|
|00004670| 6c 65 49 64 20 3d 3d 20 | 2d 31 20 29 20 7b 0a 58 |leId == |-1 ) {.X|
|00004680| 09 09 72 65 74 75 72 6e | 3b 0a 58 09 7d 20 65 6c |..return|;.X.} el|
|00004690| 73 65 20 7b 0a 58 09 09 | 66 66 20 3d 20 26 28 66 |se {.X..|ff = &(f|
|000046a0| 69 6c 65 73 5b 77 2d 3e | 66 69 6c 65 49 64 5d 29 |iles[w->|fileId])|
|000046b0| 3b 0a 58 09 09 6c 70 20 | 3d 20 66 66 2d 3e 66 69 |;.X..lp |= ff->fi|
|000046c0| 6c 65 53 69 7a 65 3b 0a | 58 09 7d 0a 58 09 0a 58 |leSize;.|X.}.X..X|
|000046d0| 09 2f 2a 20 73 65 74 20 | 74 68 65 20 77 69 6e 64 |./* set |the wind|
|000046e0| 6f 77 20 61 6e 64 20 69 | 63 6f 6e 20 74 69 74 6c |ow and i|con titl|
|000046f0| 65 73 20 2a 2f 0a 58 09 | 73 70 72 69 6e 74 66 28 |es */.X.|sprintf(|
|00004700| 20 74 65 78 74 42 75 66 | 66 65 72 2c 20 22 77 6d | textBuf|fer, "wm|
|00004710| 20 74 69 74 6c 65 20 25 | 73 20 7b 25 73 7d 22 2c | title %|s {%s}",|
|00004720| 20 77 2d 3e 74 6b 5f 70 | 61 74 68 6e 61 6d 65 2c | w->tk_p|athname,|
|00004730| 0a 58 09 09 09 46 6f 72 | 6d 61 74 54 69 74 6c 65 |.X...For|matTitle|
|00004740| 28 20 74 69 74 6c 65 46 | 6f 72 6d 61 74 2c 20 77 |( titleF|ormat, w|
|00004750| 2c 20 66 66 29 20 29 3b | 0a 58 09 28 76 6f 69 64 |, ff) );|.X.(void|
|00004760| 29 45 78 65 63 54 63 6c | 43 6f 6d 6d 61 6e 64 28 |)ExecTcl|Command(|
|00004770| 20 74 65 78 74 42 75 66 | 66 65 72 20 29 3b 0a 58 | textBuf|fer );.X|
|00004780| 09 73 70 72 69 6e 74 66 | 28 20 74 65 78 74 42 75 |.sprintf|( textBu|
|00004790| 66 66 65 72 2c 22 77 6d | 20 69 63 6f 6e 6e 61 6d |ffer,"wm| iconnam|
|000047a0| 65 20 25 73 20 7b 25 73 | 7d 22 2c 20 77 2d 3e 74 |e %s {%s|}", w->t|
|000047b0| 6b 5f 70 61 74 68 6e 61 | 6d 65 2c 0a 58 09 09 09 |k_pathna|me,.X...|
|000047c0| 46 6f 72 6d 61 74 54 69 | 74 6c 65 28 20 69 63 6f |FormatTi|tle( ico|
|000047d0| 6e 46 6f 72 6d 61 74 2c | 20 77 2c 20 66 66 29 20 |nFormat,| w, ff) |
|000047e0| 29 3b 0a 58 09 28 76 6f | 69 64 29 45 78 65 63 54 |);.X.(vo|id)ExecT|
|000047f0| 63 6c 43 6f 6d 6d 61 6e | 64 28 20 74 65 78 74 42 |clComman|d( textB|
|00004800| 75 66 66 65 72 20 29 3b | 0a 58 0a 58 09 69 66 28 |uffer );|.X.X.if(|
|00004810| 20 64 6f 53 6c 69 64 65 | 72 20 29 0a 58 09 09 53 | doSlide|r ).X..S|
|00004820| 65 74 53 6c 69 64 65 72 | 28 20 77 2c 20 6c 70 20 |etSlider|( w, lp |
|00004830| 29 3b 0a 58 7d 0a 58 0a | 76 6f 69 64 0a 53 65 74 |);.X}.X.|void.Set|
|00004840| 53 6c 69 64 65 72 28 20 | 77 2c 20 74 6f 74 61 6c |Slider( |w, total|
|00004850| 20 29 0a 58 09 73 74 72 | 75 63 74 20 77 69 6e 64 | ).X.str|uct wind|
|00004860| 6f 77 20 2a 77 3b 0a 58 | 09 69 6e 74 20 74 6f 74 |ow *w;.X|.int tot|
|00004870| 61 6c 3b 0a 58 7b 0a 58 | 09 65 78 74 65 72 6e 20 |al;.X{.X|.extern |
|00004880| 63 68 61 72 20 6d 73 67 | 42 75 66 66 65 72 5b 5d |char msg|Buffer[]|
|00004890| 3b 0a 58 0a 58 09 69 6e | 74 20 69 6e 77 69 6e 64 |;.X.X.in|t inwind|
|000048a0| 6f 77 2c 20 66 69 72 73 | 74 2c 20 6c 61 73 74 3b |ow, firs|t, last;|
|000048b0| 0a 58 0a 58 09 2f 2a 20 | 73 65 74 20 76 65 72 74 |.X.X./* |set vert|
|000048c0| 69 63 61 6c 20 73 63 72 | 6f 6c 6c 20 62 61 72 20 |ical scr|oll bar |
|000048d0| 2a 2f 0a 58 09 69 66 28 | 20 74 6f 74 61 6c 20 3d |*/.X.if(| total =|
|000048e0| 3d 20 30 20 29 20 2f 2a | 20 67 75 61 72 64 20 61 |= 0 ) /*| guard a|
|000048f0| 67 61 69 6e 20 7a 65 72 | 6f 64 69 76 69 64 65 20 |gain zer|odivide |
|00004900| 2a 2f 0a 58 09 09 74 6f | 74 61 6c 20 3d 20 31 3b |*/.X..to|tal = 1;|
|00004910| 0a 58 09 66 69 72 73 74 | 20 3d 20 77 2d 3e 70 6f |.X.first| = w->po|
|00004920| 73 54 6f 70 6c 69 6e 65 | 3b 0a 58 09 6c 61 73 74 |sTopline|;.X.last|
|00004930| 20 3d 20 77 2d 3e 70 6f | 73 42 6f 74 6c 69 6e 65 | = w->po|sBotline|
|00004940| 20 2d 20 32 3b 0a 58 09 | 69 66 28 20 6c 61 73 74 | - 2;.X.|if( last|
|00004950| 20 3c 20 66 69 72 73 74 | 20 29 0a 58 09 09 6c 61 | < first| ).X..la|
|00004960| 73 74 20 3d 20 66 69 72 | 73 74 3b 0a 58 09 69 6e |st = fir|st;.X.in|
|00004970| 77 69 6e 64 6f 77 20 3d | 20 6c 61 73 74 20 2d 20 |window =| last - |
|00004980| 66 69 72 73 74 3b 0a 58 | 09 69 66 28 20 69 6e 77 |first;.X|.if( inw|
|00004990| 69 6e 64 6f 77 20 3c 20 | 30 20 29 0a 58 09 09 69 |indow < |0 ).X..i|
|000049a0| 6e 77 69 6e 64 6f 77 20 | 3d 20 30 3b 0a 58 09 73 |nwindow |= 0;.X.s|
|000049b0| 70 72 69 6e 74 66 28 20 | 6d 73 67 42 75 66 66 65 |printf( |msgBuffe|
|000049c0| 72 2c 20 22 25 73 2e 56 | 53 63 72 6f 6c 6c 41 6e |r, "%s.V|ScrollAn|
|000049d0| 64 54 65 78 74 2e 56 53 | 63 72 6f 6c 6c 20 73 65 |dText.VS|croll se|
|000049e0| 74 20 25 64 20 25 64 20 | 25 64 20 25 64 22 2c 0a |t %d %d |%d %d",.|
|000049f0| 58 09 09 77 2d 3e 74 6b | 5f 70 61 74 68 6e 61 6d |X..w->tk|_pathnam|
|00004a00| 65 2c 20 74 6f 74 61 6c | 2c 20 69 6e 77 69 6e 64 |e, total|, inwind|
|00004a10| 6f 77 2c 20 66 69 72 73 | 74 2c 20 6c 61 73 74 20 |ow, firs|t, last |
|00004a20| 29 3b 0a 58 09 28 76 6f | 69 64 29 45 78 65 63 54 |);.X.(vo|id)ExecT|
|00004a30| 63 6c 43 6f 6d 6d 61 6e | 64 28 20 6d 73 67 42 75 |clComman|d( msgBu|
|00004a40| 66 66 65 72 20 29 3b 0a | 58 0a 58 09 2f 2a 20 73 |ffer );.|X.X./* s|
|00004a50| 65 74 20 68 6f 72 69 7a | 6f 6e 74 61 6c 20 73 63 |et horiz|ontal sc|
|00004a60| 72 6f 6c 6c 20 62 61 72 | 20 2a 2f 0a 58 09 74 6f |roll bar| */.X.to|
|00004a70| 74 61 6c 20 3d 20 77 2d | 3e 6e 43 6f 6c 73 3b 0a |tal = w-|>nCols;.|
|00004a80| 58 09 69 66 28 20 74 6f | 74 61 6c 20 3c 20 6d 61 |X.if( to|tal < ma|
|00004a90| 78 4c 69 6e 65 4c 65 6e | 67 74 68 20 29 0a 58 09 |xLineLen|gth ).X.|
|00004aa0| 09 74 6f 74 61 6c 20 3d | 20 6d 61 78 4c 69 6e 65 |.total =| maxLine|
|00004ab0| 4c 65 6e 67 74 68 3b 0a | 58 09 69 66 28 20 74 6f |Length;.|X.if( to|
|00004ac0| 74 61 6c 20 3c 3d 20 30 | 20 29 0a 58 09 09 74 6f |tal <= 0| ).X..to|
|00004ad0| 74 61 6c 20 3d 20 31 3b | 0a 58 09 69 6e 77 69 6e |tal = 1;|.X.inwin|
|00004ae0| 64 6f 77 20 3d 20 77 2d | 3e 6e 43 6f 6c 73 3b 0a |dow = w-|>nCols;.|
|00004af0| 58 09 66 69 72 73 74 20 | 3d 20 77 2d 3e 69 6e 64 |X.first |= w->ind|
|00004b00| 65 6e 74 3b 0a 58 09 69 | 66 28 20 66 69 72 73 74 |ent;.X.i|f( first|
|00004b10| 20 3e 3d 20 74 6f 74 61 | 6c 20 29 0a 58 09 09 66 | >= tota|l ).X..f|
|00004b20| 69 72 73 74 20 3d 20 74 | 6f 74 61 6c 20 2d 20 31 |irst = t|otal - 1|
|00004b30| 3b 0a 58 09 6c 61 73 74 | 20 3d 20 77 2d 3e 69 6e |;.X.last| = w->in|
|00004b40| 64 65 6e 74 2b 77 2d 3e | 6e 43 6f 6c 73 2d 31 3b |dent+w->|nCols-1;|
|00004b50| 0a 58 09 69 66 28 20 6c | 61 73 74 20 3c 20 66 69 |.X.if( l|ast < fi|
|00004b60| 72 73 74 20 29 0a 58 09 | 09 6c 61 73 74 20 3d 20 |rst ).X.|.last = |
|00004b70| 66 69 72 73 74 20 2b 20 | 31 3b 0a 58 09 69 66 28 |first + |1;.X.if(|
|00004b80| 20 6c 61 73 74 20 3e 3d | 20 74 6f 74 61 6c 20 29 | last >=| total )|
|00004b90| 0a 58 09 09 6c 61 73 74 | 20 3d 20 74 6f 74 61 6c |.X..last| = total|
|00004ba0| 20 2d 20 31 3b 0a 58 09 | 73 70 72 69 6e 74 66 28 | - 1;.X.|sprintf(|
|00004bb0| 20 6d 73 67 42 75 66 66 | 65 72 2c 20 22 25 73 2e | msgBuff|er, "%s.|
|00004bc0| 53 70 6c 69 74 74 65 72 | 41 6e 64 48 53 63 72 6f |Splitter|AndHScro|
|00004bd0| 6c 6c 2e 48 53 63 72 6f | 6c 6c 20 73 65 74 20 25 |ll.HScro|ll set %|
|00004be0| 64 20 25 64 20 25 64 20 | 25 64 22 2c 0a 58 09 09 |d %d %d |%d",.X..|
|00004bf0| 77 2d 3e 74 6b 5f 70 61 | 74 68 6e 61 6d 65 2c 20 |w->tk_pa|thname, |
|00004c00| 74 6f 74 61 6c 2c 20 69 | 6e 77 69 6e 64 6f 77 2c |total, i|nwindow,|
|00004c10| 20 66 69 72 73 74 2c 20 | 6c 61 73 74 20 29 3b 0a | first, |last );.|
|00004c20| 58 09 28 76 6f 69 64 29 | 45 78 65 63 54 63 6c 43 |X.(void)|ExecTclC|
|00004c30| 6f 6d 6d 61 6e 64 28 20 | 6d 73 67 42 75 66 66 65 |ommand( |msgBuffe|
|00004c40| 72 20 29 3b 0a 58 7d 0a | 58 0a 76 6f 69 64 0a 66 |r );.X}.|X.void.f|
|00004c50| 69 6c 6c 57 69 6e 64 6f | 77 28 77 2c 20 66 69 72 |illWindo|w(w, fir|
|00004c60| 73 74 52 6f 77 2c 20 6c | 61 73 74 52 6f 77 2c 20 |stRow, l|astRow, |
|00004c70| 66 69 72 73 74 43 6f 6c | 2c 20 6c 61 73 74 43 6f |firstCol|, lastCo|
|00004c80| 6c 29 0a 58 09 72 65 67 | 69 73 74 65 72 20 73 74 |l).X.reg|ister st|
|00004c90| 72 75 63 74 20 77 69 6e | 64 6f 77 20 2a 77 3b 0a |ruct win|dow *w;.|
|00004ca0| 58 09 69 6e 74 20 66 69 | 72 73 74 52 6f 77 2c 20 |X.int fi|rstRow, |
|00004cb0| 6c 61 73 74 52 6f 77 2c | 20 66 69 72 73 74 43 6f |lastRow,| firstCo|
|00004cc0| 6c 2c 20 6c 61 73 74 43 | 6f 6c 3b 0a 58 7b 0a 58 |l, lastC|ol;.X{.X|
|00004cd0| 09 65 78 74 65 72 6e 20 | 69 6e 74 20 64 65 62 75 |.extern |int debu|
|00004ce0| 67 3b 0a 58 09 65 78 74 | 65 72 6e 20 69 6e 74 20 |g;.X.ext|ern int |
|00004cf0| 68 79 70 65 72 74 65 78 | 74 4f 6e 3b 0a 58 09 65 |hypertex|tOn;.X.e|
|00004d00| 78 74 65 72 6e 20 73 74 | 72 75 63 74 20 77 69 6e |xtern st|ruct win|
|00004d10| 64 6f 77 20 2a 73 65 6c | 57 69 6e 64 6f 77 3b 0a |dow *sel|Window;.|
|00004d20| 58 09 65 78 74 65 72 6e | 20 44 69 73 70 6c 61 79 |X.extern| Display|
|00004d30| 20 2a 4d 61 69 6e 44 69 | 73 70 6c 61 79 3b 0a 58 | *MainDi|splay;.X|
|00004d40| 0a 58 09 4f 66 66 73 65 | 74 20 63 70 3b 0a 58 09 |.X.Offse|t cp;.X.|
|00004d50| 69 6e 74 20 69 2c 20 79 | 2c 20 72 6f 77 2c 20 6c |int i, y|, row, l|
|00004d60| 69 6e 65 4e 75 6d 62 65 | 72 3b 0a 58 09 69 6e 74 |ineNumbe|r;.X.int|
|00004d70| 20 63 6f 6c 31 2c 20 63 | 6f 6c 32 3b 0a 58 09 73 | col1, c|ol2;.X.s|
|00004d80| 74 72 75 63 74 20 66 6f | 6e 74 44 61 74 61 53 74 |truct fo|ntDataSt|
|00004d90| 72 75 63 74 20 2a 66 6f | 6e 74 3b 0a 58 09 69 6e |ruct *fo|nt;.X.in|
|00004da0| 74 20 66 69 64 3b 0a 58 | 0a 58 09 69 66 28 20 77 |t fid;.X|.X.if( w|
|00004db0| 20 3d 3d 20 4e 55 4c 4c | 20 29 0a 58 09 09 72 65 | == NULL| ).X..re|
|00004dc0| 74 75 72 6e 3b 0a 58 0a | 58 23 69 66 64 65 66 20 |turn;.X.|X#ifdef |
|00004dd0| 48 59 50 45 52 54 45 58 | 54 0a 58 09 69 66 28 20 |HYPERTEX|T.X.if( |
|00004de0| 77 2d 3e 66 69 6c 65 20 | 21 3d 20 4e 55 4c 4c 20 |w->file |!= NULL |
|00004df0| 26 26 20 21 68 79 70 65 | 72 74 65 78 74 4f 6e 20 |&& !hype|rtextOn |
|00004e00| 29 0a 58 09 09 2f 2a 20 | 61 20 68 79 70 65 72 74 |).X../* |a hypert|
|00004e10| 65 78 74 20 66 69 6c 65 | 20 62 75 74 20 6e 6f 74 |ext file| but not|
|00004e20| 20 69 6e 20 68 79 70 65 | 72 74 65 78 74 20 6d 6f | in hype|rtext mo|
|00004e30| 64 65 20 2a 2f 0a 58 09 | 09 66 69 64 20 3d 20 77 |de */.X.|.fid = w|
|00004e40| 2d 3e 72 65 61 6c 46 69 | 6c 65 49 64 3b 0a 58 09 |->realFi|leId;.X.|
|00004e50| 65 6c 73 65 0a 58 23 65 | 6e 64 69 66 0a 58 09 09 |else.X#e|ndif.X..|
|00004e60| 66 69 64 20 3d 20 77 2d | 3e 66 69 6c 65 49 64 3b |fid = w-|>fileId;|
|00004e70| 0a 58 09 0a 58 09 66 6f | 6e 74 20 3d 20 26 28 77 |.X..X.fo|nt = &(w|
|00004e80| 2d 3e 66 6f 6e 74 29 3b | 0a 58 0a 58 09 6d 61 78 |->font);|.X.X.max|
|00004e90| 4c 69 6e 65 4c 65 6e 67 | 74 68 20 3d 20 31 3b 09 |LineLeng|th = 1;.|
|00004ea0| 2f 2a 20 72 65 73 65 74 | 20 74 68 69 73 20 63 6f |/* reset| this co|
|00004eb0| 75 6e 74 20 2a 2f 0a 58 | 0a 58 09 2f 2a 20 66 69 |unt */.X|.X./* fi|
|00004ec0| 6c 6c 20 74 68 65 20 72 | 6f 77 73 20 6f 6e 65 20 |ll the r|ows one |
|00004ed0| 61 74 20 61 20 74 69 6d | 65 20 2a 2f 0a 58 0a 58 |at a tim|e */.X.X|
|00004ee0| 09 2f 2a 20 69 6e 69 74 | 69 61 6c 69 7a 65 20 2a |./* init|ialize *|
|00004ef0| 2f 0a 58 09 63 70 20 3d | 20 77 2d 3e 70 6f 73 54 |/.X.cp =| w->posT|
|00004f00| 6f 70 6c 69 6e 65 3b 0a | 58 09 6c 69 6e 65 4e 75 |opline;.|X.lineNu|
|00004f10| 6d 62 65 72 20 3d 20 77 | 2d 3e 6e 75 6d 54 6f 70 |mber = w|->numTop|
|00004f20| 6c 69 6e 65 3b 0a 58 09 | 79 20 3d 20 77 2d 3e 74 |line;.X.|y = w->t|
|00004f30| 6f 70 4d 61 72 67 69 6e | 20 2b 20 66 6f 6e 74 2d |opMargin| + font-|
|00004f40| 3e 61 73 63 65 6e 74 3b | 0a 58 0a 58 09 2f 2a 20 |>ascent;|.X.X./* |
|00004f50| 73 6b 69 70 20 74 68 65 | 20 72 6f 77 73 20 61 62 |skip the| rows ab|
|00004f60| 6f 76 65 20 74 68 65 20 | 6f 6e 65 73 20 77 65 20 |ove the |ones we |
|00004f70| 61 72 65 20 72 65 64 72 | 61 77 69 6e 67 20 2a 2f |are redr|awing */|
|00004f80| 0a 58 09 66 6f 72 28 20 | 72 6f 77 20 3d 20 30 3b |.X.for( |row = 0;|
|00004f90| 20 72 6f 77 20 3c 20 66 | 69 72 73 74 52 6f 77 3b | row < f|irstRow;|
|00004fa0| 20 2b 2b 72 6f 77 20 29 | 20 7b 0a 58 09 09 69 20 | ++row )| {.X..i |
|00004fb0| 3d 20 31 3b 0a 58 09 09 | 63 70 20 3d 20 6e 65 78 |= 1;.X..|cp = nex|
|00004fc0| 74 4c 69 6e 65 28 20 66 | 69 64 2c 20 63 70 2c 20 |tLine( f|id, cp, |
|00004fd0| 26 69 29 3b 0a 58 09 09 | 79 20 2b 3d 20 66 6f 6e |&i);.X..|y += fon|
|00004fe0| 74 2d 3e 68 65 69 67 68 | 74 3b 0a 58 09 09 2b 2b |t->heigh|t;.X..++|
|00004ff0| 6c 69 6e 65 4e 75 6d 62 | 65 72 3b 0a 58 09 7d 0a |lineNumb|er;.X.}.|
|00005000| 58 09 0a 58 09 2f 2a 20 | 63 6c 65 61 72 20 74 68 |X..X./* |clear th|
|00005010| 65 20 61 72 65 61 20 77 | 65 20 61 72 65 20 72 65 |e area w|e are re|
|00005020| 64 72 61 77 69 6e 67 20 | 2a 2f 0a 58 09 58 43 6c |drawing |*/.X.XCl|
|00005030| 65 61 72 41 72 65 61 28 | 4d 61 69 6e 44 69 73 70 |earArea(|MainDisp|
|00005040| 6c 61 79 2c 20 77 2d 3e | 78 5f 77 69 6e 64 6f 77 |lay, w->|x_window|
|00005050| 5f 69 64 2c 20 30 2c 20 | 79 20 2d 20 66 6f 6e 74 |_id, 0, |y - font|
|00005060| 2d 3e 61 73 63 65 6e 74 | 2c 0a 58 09 09 54 6b 5f |->ascent|,.X..Tk_|
|00005070| 57 69 64 74 68 28 77 2d | 3e 74 6b 5f 74 65 78 74 |Width(w-|>tk_text|
|00005080| 29 2c 20 28 6c 61 73 74 | 52 6f 77 20 2d 20 72 6f |), (last|Row - ro|
|00005090| 77 20 2b 20 31 29 2a 28 | 66 6f 6e 74 2d 3e 68 65 |w + 1)*(|font->he|
|000050a0| 69 67 68 74 29 2c 0a 58 | 09 09 46 61 6c 73 65 20 |ight),.X|..False |
|000050b0| 29 3b 0a 58 09 09 2f 2a | 20 30 20 77 69 64 74 68 |);.X../*| 0 width|
|000050c0| 20 3d 3e 20 63 6c 65 61 | 72 20 74 68 65 20 77 68 | => clea|r the wh|
|000050d0| 6f 6c 65 20 77 69 64 74 | 68 20 6f 66 20 74 68 65 |ole widt|h of the|
|000050e0| 20 77 69 6e 64 6f 77 20 | 2a 2f 0a 58 09 09 2f 2a | window |*/.X../*|
|000050f0| 20 46 61 6c 73 65 20 6d | 65 61 6e 73 3a 20 64 6f | False m|eans: do|
|00005100| 20 6e 6f 74 20 67 65 6e | 65 72 61 74 65 20 65 78 | not gen|erate ex|
|00005110| 70 6f 73 75 72 65 20 65 | 76 65 6e 74 73 20 2a 2f |posure e|vents */|
|00005120| 0a 58 0a 58 09 2f 2a 20 | 72 65 77 72 69 74 65 20 |.X.X./* |rewrite |
|00005130| 74 68 65 20 6c 69 6e 65 | 73 20 72 65 71 75 69 72 |the line|s requir|
|00005140| 65 64 20 2a 2f 0a 58 09 | 66 6f 72 28 20 3b 20 72 |ed */.X.|for( ; r|
|00005150| 6f 77 20 3c 3d 20 6c 61 | 73 74 52 6f 77 3b 20 2b |ow <= la|stRow; +|
|00005160| 2b 72 6f 77 20 29 20 7b | 0a 58 09 09 69 66 28 20 |+row ) {|.X..if( |
|00005170| 72 6f 77 20 3d 3d 20 66 | 69 72 73 74 52 6f 77 20 |row == f|irstRow |
|00005180| 29 0a 58 09 09 09 63 6f | 6c 31 20 3d 20 66 69 72 |).X...co|l1 = fir|
|00005190| 73 74 43 6f 6c 3b 0a 58 | 09 09 65 6c 73 65 0a 58 |stCol;.X|..else.X|
|000051a0| 09 09 09 63 6f 6c 31 20 | 3d 20 30 3b 0a 58 09 09 |...col1 |= 0;.X..|
|000051b0| 69 66 28 20 72 6f 77 20 | 3d 3d 20 6c 61 73 74 52 |if( row |== lastR|
|000051c0| 6f 77 20 29 0a 58 09 09 | 09 63 6f 6c 32 20 3d 20 |ow ).X..|.col2 = |
|000051d0| 6c 61 73 74 43 6f 6c 3b | 0a 58 09 09 65 6c 73 65 |lastCol;|.X..else|
|000051e0| 0a 58 09 09 09 63 6f 6c | 32 20 3d 20 77 2d 3e 6e |.X...col|2 = w->n|
|000051f0| 43 6f 6c 73 20 2d 20 31 | 3b 0a 58 09 09 63 70 20 |Cols - 1|;.X..cp |
|00005200| 3d 20 66 69 6c 6c 4c 69 | 6e 65 28 20 77 2c 20 63 |= fillLi|ne( w, c|
|00005210| 70 2c 20 72 6f 77 2c 20 | 63 6f 6c 31 2c 20 63 6f |p, row, |col1, co|
|00005220| 6c 32 2c 20 79 2c 20 31 | 20 29 3b 0a 58 09 09 69 |l2, y, 1| );.X..i|
|00005230| 66 28 20 63 70 20 3d 3d | 20 2d 31 20 29 20 7b 0a |f( cp ==| -1 ) {.|
|00005240| 58 09 09 09 2b 2b 72 6f | 77 3b 09 2f 2a 20 61 74 |X...++ro|w;./* at|
|00005250| 20 6c 65 61 73 74 20 74 | 68 65 20 45 4f 46 20 6d | least t|he EOF m|
|00005260| 61 72 6b 65 72 20 70 72 | 69 6e 74 65 64 20 6f 75 |arker pr|inted ou|
|00005270| 74 20 2a 2f 0a 58 09 09 | 09 62 72 65 61 6b 3b 0a |t */.X..|.break;.|
|00005280| 58 09 09 7d 0a 58 09 09 | 79 20 2b 3d 20 66 6f 6e |X..}.X..|y += fon|
|00005290| 74 2d 3e 68 65 69 67 68 | 74 3b 0a 58 09 09 2b 2b |t->heigh|t;.X..++|
|000052a0| 6c 69 6e 65 4e 75 6d 62 | 65 72 3b 0a 58 09 7d 0a |lineNumb|er;.X.}.|
|000052b0| 58 0a 58 09 2f 2a 20 63 | 6f 75 6e 74 20 64 6f 77 |X.X./* c|ount dow|
|000052c0| 6e 20 74 68 72 6f 75 67 | 68 20 74 68 65 20 72 6f |n throug|h the ro|
|000052d0| 77 73 20 77 65 20 61 72 | 65 20 6e 6f 74 20 64 72 |ws we ar|e not dr|
|000052e0| 61 77 69 6e 67 20 2a 2f | 0a 58 09 66 6f 72 28 20 |awing */|.X.for( |
|000052f0| 3b 20 72 6f 77 20 3c 20 | 77 2d 3e 6e 52 6f 77 73 |; row < |w->nRows|
|00005300| 3b 20 2b 2b 72 6f 77 20 | 29 20 7b 0a 58 09 09 69 |; ++row |) {.X..i|
|00005310| 66 28 20 63 70 20 3d 3d | 20 2d 31 20 29 0a 58 09 |f( cp ==| -1 ).X.|
|00005320| 09 09 62 72 65 61 6b 3b | 0a 58 09 09 69 20 3d 20 |..break;|.X..i = |
|00005330| 31 3b 0a 58 09 09 63 70 | 20 3d 20 6e 65 78 74 4c |1;.X..cp| = nextL|
|00005340| 69 6e 65 28 20 66 69 64 | 2c 20 63 70 2c 20 26 69 |ine( fid|, cp, &i|
|00005350| 29 3b 0a 58 09 09 2b 2b | 6c 69 6e 65 4e 75 6d 62 |);.X..++|lineNumb|
|00005360| 65 72 3b 0a 58 09 7d 0a | 58 0a 58 09 2f 2a 20 49 |er;.X.}.|X.X./* I|
|00005370| 66 20 77 65 20 67 6f 74 | 20 74 6f 20 74 68 65 20 |f we got| to the |
|00005380| 65 6e 64 20 6f 66 20 74 | 68 65 20 66 69 6c 65 20 |end of t|he file |
|00005390| 77 65 20 77 61 6e 74 20 | 70 6f 73 42 6f 74 6c 69 |we want |posBotli|
|000053a0| 6e 65 20 74 6f 20 62 65 | 20 2a 2f 0a 58 09 2f 2a |ne to be| */.X./*|
|000053b0| 20 74 68 65 20 73 69 7a | 65 20 6f 66 20 74 68 65 | the siz|e of the|
|000053c0| 20 66 69 6c 65 20 28 77 | 68 69 63 68 20 77 69 6c | file (w|hich wil|
|000053d0| 6c 20 62 65 20 6f 6e 65 | 20 70 61 73 74 20 74 68 |l be one| past th|
|000053e0| 65 20 6c 61 73 74 20 63 | 68 61 72 61 63 74 65 72 |e last c|haracter|
|000053f0| 20 2a 2f 0a 58 09 2f 2a | 20 69 6e 20 74 68 65 20 | */.X./*| in the |
|00005400| 66 69 6c 65 20 73 69 6e | 63 65 20 77 65 20 73 74 |file sin|ce we st|
|00005410| 61 72 74 20 63 6f 75 6e | 74 69 6e 67 20 61 74 20 |art coun|ting at |
|00005420| 30 29 20 2a 2f 0a 58 09 | 69 66 28 20 63 70 20 3d |0) */.X.|if( cp =|
|00005430| 3d 20 2d 31 20 29 0a 58 | 09 09 63 70 20 3d 20 66 |= -1 ).X|..cp = f|
|00005440| 69 6c 65 53 69 7a 65 28 | 20 77 2d 3e 66 69 6c 65 |ileSize(| w->file|
|00005450| 49 64 20 29 3b 0a 58 09 | 77 2d 3e 70 6f 73 42 6f |Id );.X.|w->posBo|
|00005460| 74 6c 69 6e 65 20 3d 20 | 63 70 3b 0a 58 09 77 2d |tline = |cp;.X.w-|
|00005470| 3e 6e 75 6d 42 6f 74 6c | 69 6e 65 20 3d 20 6c 69 |>numBotl|ine = li|
|00005480| 6e 65 4e 75 6d 62 65 72 | 3b 0a 58 7d 0a 58 0a 58 |neNumber|;.X}.X.X|
|00005490| 2f 2a 20 49 20 6b 6e 6f | 77 20 49 20 73 68 6f 75 |/* I kno|w I shou|
|000054a0| 6c 64 6e 27 74 20 75 73 | 65 20 67 6c 6f 62 61 6c |ldn't us|e global|
|000054b0| 20 76 61 72 69 61 62 6c | 65 73 20 66 6f 72 20 70 | variabl|es for p|
|000054c0| 72 6f 63 65 64 75 72 65 | 20 70 61 72 61 6d 65 74 |rocedure| paramet|
|000054d0| 65 72 73 20 2a 2f 0a 58 | 2f 2a 20 62 75 74 20 74 |ers */.X|/* but t|
|000054e0| 68 65 73 65 20 61 72 65 | 20 63 61 6c 6c 65 64 20 |hese are| called |
|000054f0| 66 6f 72 20 65 76 65 72 | 79 20 73 69 6e 67 6c 65 |for ever|y single|
|00005500| 20 63 68 61 72 61 63 74 | 65 72 20 73 6f 20 49 20 | charact|er so I |
|00005510| 61 6d 20 63 6f 6d 70 72 | 6f 6d 69 73 69 6e 67 20 |am compr|omising |
|00005520| 2a 2f 0a 73 74 72 75 63 | 74 20 77 69 6e 64 6f 77 |*/.struc|t window|
|00005530| 20 2a 77 3b 0a 63 68 61 | 72 20 2a 73 4c 69 6e 65 | *w;.cha|r *sLine|
|00005540| 3b 0a 47 43 20 67 63 2c | 20 67 63 5f 6e 6f 72 6d |;.GC gc,| gc_norm|
|00005550| 61 6c 3b 0a 69 6e 74 20 | 78 2c 20 79 3b 0a 69 6e |al;.int |x, y;.in|
|00005560| 74 20 69 6e 53 65 6c 65 | 63 74 69 6f 6e 3b 0a 69 |t inSele|ction;.i|
|00005570| 6e 74 20 6c 6f 67 69 63 | 61 6c 43 6f 6c 3b 0a 69 |nt logic|alCol;.i|
|00005580| 6e 74 20 72 6f 77 3b 0a | 69 6e 74 20 69 6e 64 65 |nt row;.|int inde|
|00005590| 6e 74 3b 0a 4f 66 66 73 | 65 74 20 63 70 3b 0a 73 |nt;.Offs|et cp;.s|
|000055a0| 74 72 75 63 74 20 66 6f | 6e 74 44 61 74 61 53 74 |truct fo|ntDataSt|
|000055b0| 72 75 63 74 20 2a 66 6f | 6e 74 3b 0a 58 0a 76 6f |ruct *fo|nt;.X.vo|
|000055c0| 69 64 0a 44 72 61 77 53 | 74 72 69 6e 67 28 29 0a |id.DrawS|tring().|
|000055d0| 58 7b 0a 58 09 65 78 74 | 65 72 6e 20 63 68 61 72 |X{.X.ext|ern char|
|000055e0| 20 73 63 72 65 65 6e 4c | 69 6e 65 5b 5d 3b 0a 58 | screenL|ine[];.X|
|000055f0| 09 65 78 74 65 72 6e 20 | 69 6e 74 20 75 6e 64 65 |.extern |int unde|
|00005600| 72 6c 69 6e 65 53 65 6c | 65 63 74 69 6f 6e 3b 0a |rlineSel|ection;.|
|00005610| 58 09 65 78 74 65 72 6e | 20 44 69 73 70 6c 61 79 |X.extern| Display|
|00005620| 20 2a 4d 61 69 6e 44 69 | 73 70 6c 61 79 3b 0a 58 | *MainDi|splay;.X|
|00005630| 09 65 78 74 65 72 6e 20 | 69 6e 74 20 64 65 62 75 |.extern |int debu|
|00005640| 67 3b 0a 58 0a 58 09 69 | 6e 74 20 63 68 61 72 5f |g;.X.X.i|nt char_|
|00005650| 6c 65 6e 2c 20 70 69 78 | 5f 6c 65 6e 3b 0a 58 0a |len, pix|_len;.X.|
|00005660| 58 09 2a 73 4c 69 6e 65 | 20 3d 20 27 5c 30 27 3b |X.*sLine| = '\0';|
|00005670| 0a 58 09 63 68 61 72 5f | 6c 65 6e 20 3d 20 73 4c |.X.char_|len = sL|
|00005680| 69 6e 65 20 2d 20 73 63 | 72 65 65 6e 4c 69 6e 65 |ine - sc|reenLine|
|00005690| 3b 0a 58 09 70 69 78 5f | 6c 65 6e 20 3d 20 63 68 |;.X.pix_|len = ch|
|000056a0| 61 72 5f 6c 65 6e 20 2a | 20 66 6f 6e 74 2d 3e 77 |ar_len *| font->w|
|000056b0| 69 64 74 68 3b 0a 58 09 | 69 66 28 20 63 68 61 72 |idth;.X.|if( char|
|000056c0| 5f 6c 65 6e 20 3e 20 30 | 20 29 20 7b 0a 58 09 09 |_len > 0| ) {.X..|
|000056d0| 69 66 28 20 69 6e 53 65 | 6c 65 63 74 69 6f 6e 20 |if( inSe|lection |
|000056e0| 26 26 20 28 75 6e 64 65 | 72 6c 69 6e 65 53 65 6c |&& (unde|rlineSel|
|000056f0| 65 63 74 69 6f 6e 20 3e | 20 30 29 20 29 0a 58 09 |ection >| 0) ).X.|
|00005700| 09 09 67 63 20 3d 20 67 | 63 5f 6e 6f 72 6d 61 6c |..gc = g|c_normal|
|00005710| 3b 0a 58 09 09 58 44 72 | 61 77 49 6d 61 67 65 53 |;.X..XDr|awImageS|
|00005720| 74 72 69 6e 67 28 20 4d | 61 69 6e 44 69 73 70 6c |tring( M|ainDispl|
|00005730| 61 79 2c 20 77 2d 3e 78 | 5f 77 69 6e 64 6f 77 5f |ay, w->x|_window_|
|00005740| 69 64 2c 20 67 63 2c 20 | 78 2c 20 79 2c 0a 58 09 |id, gc, |x, y,.X.|
|00005750| 09 09 73 63 72 65 65 6e | 4c 69 6e 65 2c 20 63 68 |..screen|Line, ch|
|00005760| 61 72 5f 6c 65 6e 20 29 | 3b 0a 58 09 09 69 66 28 |ar_len )|;.X..if(|
|00005770| 20 69 6e 53 65 6c 65 63 | 74 69 6f 6e 20 26 26 20 | inSelec|tion && |
|00005780| 28 75 6e 64 65 72 6c 69 | 6e 65 53 65 6c 65 63 74 |(underli|neSelect|
|00005790| 69 6f 6e 20 3e 20 30 29 | 20 29 20 7b 0a 58 09 09 |ion > 0)| ) {.X..|
|000057a0| 09 69 6e 74 20 79 32 20 | 3d 20 79 20 2b 20 31 3b |.int y2 |= y + 1;|
|000057b0| 0a 58 09 09 09 58 44 72 | 61 77 4c 69 6e 65 28 4d |.X...XDr|awLine(M|
|000057c0| 61 69 6e 44 69 73 70 6c | 61 79 2c 20 77 2d 3e 78 |ainDispl|ay, w->x|
|000057d0| 5f 77 69 6e 64 6f 77 5f | 69 64 2c 20 67 63 2c 20 |_window_|id, gc, |
|000057e0| 78 2c 20 79 32 2c 0a 58 | 09 09 09 09 09 09 09 78 |x, y2,.X|.......x|
|000057f0| 2b 70 69 78 5f 6c 65 6e | 2d 31 2c 20 79 32 29 3b |+pix_len|-1, y2);|
|00005800| 0a 58 09 09 09 69 66 28 | 20 75 6e 64 65 72 6c 69 |.X...if(| underli|
|00005810| 6e 65 53 65 6c 65 63 74 | 69 6f 6e 20 3d 3d 20 32 |neSelect|ion == 2|
|00005820| 20 29 0a 58 09 09 09 09 | 58 44 72 61 77 4c 69 6e | ).X....|XDrawLin|
|00005830| 65 28 20 4d 61 69 6e 44 | 69 73 70 6c 61 79 2c 20 |e( MainD|isplay, |
|00005840| 77 2d 3e 78 5f 77 69 6e | 64 6f 77 5f 69 64 2c 20 |w->x_win|dow_id, |
|00005850| 67 63 2c 0a 58 09 09 09 | 09 09 09 78 2c 20 79 32 |gc,.X...|...x, y2|
|00005860| 2b 31 2c 20 78 2b 70 69 | 78 5f 6c 65 6e 2d 31 2c |+1, x+pi|x_len-1,|
|00005870| 20 79 32 2b 31 20 29 3b | 0a 58 09 09 7d 0a 58 09 | y2+1 );|.X..}.X.|
|00005880| 09 78 20 2b 3d 20 70 69 | 78 5f 6c 65 6e 3b 0a 58 |.x += pi|x_len;.X|
|00005890| 09 7d 0a 58 09 73 4c 69 | 6e 65 20 3d 20 73 63 72 |.}.X.sLi|ne = scr|
|000058a0| 65 65 6e 4c 69 6e 65 3b | 0a 58 7d 0a 58 0a 4f 66 |eenLine;|.X}.X.Of|
|000058b0| 66 73 65 74 0a 66 69 6c | 6c 4c 69 6e 65 28 77 5f |fset.fil|lLine(w_|
|000058c0| 69 6e 2c 20 63 70 5f 69 | 6e 2c 20 72 6f 77 5f 69 |in, cp_i|n, row_i|
|000058d0| 6e 2c 20 66 69 72 73 74 | 43 6f 6c 2c 20 6c 61 73 |n, first|Col, las|
|000058e0| 74 43 6f 6c 2c 20 79 5f | 69 6e 2c 20 66 69 6c 6c |tCol, y_|in, fill|
|000058f0| 54 6f 45 6f 6c 29 0a 58 | 09 73 74 72 75 63 74 20 |ToEol).X|.struct |
|00005900| 77 69 6e 64 6f 77 20 2a | 77 5f 69 6e 3b 0a 58 09 |window *|w_in;.X.|
|00005910| 4f 66 66 73 65 74 20 63 | 70 5f 69 6e 3b 0a 58 09 |Offset c|p_in;.X.|
|00005920| 69 6e 74 20 72 6f 77 5f | 69 6e 2c 20 66 69 72 73 |int row_|in, firs|
|00005930| 74 43 6f 6c 2c 20 6c 61 | 73 74 43 6f 6c 2c 20 79 |tCol, la|stCol, y|
|00005940| 5f 69 6e 2c 20 66 69 6c | 6c 54 6f 45 6f 6c 3b 0a |_in, fil|lToEol;.|
|00005950| 58 7b 0a 58 09 65 78 74 | 65 72 6e 20 73 74 72 75 |X{.X.ext|ern stru|
|00005960| 63 74 20 77 69 6e 64 6f | 77 20 2a 73 65 6c 57 69 |ct windo|w *selWi|
|00005970| 6e 64 6f 77 3b 0a 58 09 | 65 78 74 65 72 6e 20 63 |ndow;.X.|extern c|
|00005980| 68 61 72 20 63 68 61 72 | 54 61 62 6c 65 5b 5d 3b |har char|Table[];|
|00005990| 0a 58 09 65 78 74 65 72 | 6e 20 63 68 61 72 20 73 |.X.exter|n char s|
|000059a0| 63 72 65 65 6e 4c 69 6e | 65 5b 5d 3b 0a 58 09 65 |creenLin|e[];.X.e|
|000059b0| 78 74 65 72 6e 20 69 6e | 74 20 74 61 62 57 69 64 |xtern in|t tabWid|
|000059c0| 74 68 3b 0a 58 09 65 78 | 74 65 72 6e 20 69 6e 74 |th;.X.ex|tern int|
|000059d0| 20 65 6f 66 43 68 61 72 | 3b 0a 58 09 65 78 74 65 | eofChar|;.X.exte|
|000059e0| 72 6e 20 44 69 73 70 6c | 61 79 20 2a 4d 61 69 6e |rn Displ|ay *Main|
|000059f0| 44 69 73 70 6c 61 79 3b | 0a 58 09 65 78 74 65 72 |Display;|.X.exter|
|00005a00| 6e 20 4f 66 66 73 65 74 | 20 73 65 6c 42 65 67 69 |n Offset| selBegi|
|00005a10| 6e 2c 20 73 65 6c 45 6e | 64 3b 0a 58 09 65 78 74 |n, selEn|d;.X.ext|
|00005a20| 65 72 6e 20 69 6e 74 20 | 68 79 70 65 72 74 65 78 |ern int |hypertex|
|00005a30| 74 4f 6e 3b 0a 58 09 65 | 78 74 65 72 6e 20 69 6e |tOn;.X.e|xtern in|
|00005a40| 74 20 67 65 74 53 70 61 | 6e 53 69 7a 65 3b 0a 58 |t getSpa|nSize;.X|
|00005a50| 0a 58 09 69 6e 74 20 75 | 63 68 3b 0a 58 09 69 6e |.X.int u|ch;.X.in|
|00005a60| 74 20 74 61 62 53 74 6f | 70 3b 0a 58 09 69 6e 74 |t tabSto|p;.X.int|
|00005a70| 20 66 69 64 3b 0a 58 09 | 75 6e 73 69 67 6e 65 64 | fid;.X.|unsigned|
|00005a80| 20 63 68 61 72 20 2a 66 | 69 72 73 74 42 79 74 65 | char *f|irstByte|
|00005a90| 3b 0a 58 09 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |;.X.unsi|gned cha|
|00005aa0| 72 20 2a 6c 61 73 74 42 | 79 74 65 3b 0a 58 09 63 |r *lastB|yte;.X.c|
|00005ab0| 68 61 72 20 2a 73 4c 69 | 6e 65 4d 61 78 3b 0a 58 |har *sLi|neMax;.X|
|00005ac0| 09 0a 58 09 2f 2a 20 6d | 61 6b 65 20 74 68 65 73 |..X./* m|ake thes|
|00005ad0| 65 20 76 61 6c 75 65 73 | 20 61 76 61 69 6c 61 62 |e values| availab|
|00005ae0| 6c 65 20 74 6f 20 44 72 | 61 77 53 74 72 69 6e 67 |le to Dr|awString|
|00005af0| 20 61 6e 64 20 43 68 65 | 63 6b 46 6f 72 53 65 6c | and Che|ckForSel|
|00005b00| 65 63 74 69 6f 6e 20 2a | 2f 0a 58 09 63 70 20 3d |ection *|/.X.cp =|
|00005b10| 20 63 70 5f 69 6e 3b 0a | 58 09 77 20 3d 20 77 5f | cp_in;.|X.w = w_|
|00005b20| 69 6e 3b 0a 58 09 79 20 | 3d 20 79 5f 69 6e 3b 0a |in;.X.y |= y_in;.|
|00005b30| 58 09 72 6f 77 20 3d 20 | 72 6f 77 5f 69 6e 3b 0a |X.row = |row_in;.|
|00005b40| 58 09 66 6f 6e 74 20 3d | 20 26 28 77 2d 3e 66 6f |X.font =| &(w->fo|
|00005b50| 6e 74 29 3b 0a 58 09 0a | 58 23 69 66 64 65 66 20 |nt);.X..|X#ifdef |
|00005b60| 48 59 50 45 52 54 45 58 | 54 0a 58 09 69 66 28 20 |HYPERTEX|T.X.if( |
|00005b70| 77 2d 3e 66 69 6c 65 20 | 21 3d 20 4e 55 4c 4c 20 |w->file |!= NULL |
|00005b80| 26 26 20 21 68 79 70 65 | 72 74 65 78 74 4f 6e 20 |&& !hype|rtextOn |
|00005b90| 29 0a 58 09 09 2f 2a 20 | 61 20 68 79 70 65 72 74 |).X../* |a hypert|
|00005ba0| 65 78 74 20 66 69 6c 65 | 20 62 75 74 20 6e 6f 74 |ext file| but not|
|00005bb0| 20 69 6e 20 68 79 70 65 | 72 74 65 78 74 20 6d 6f | in hype|rtext mo|
|00005bc0| 64 65 20 2a 2f 0a 58 09 | 09 66 69 64 20 3d 20 77 |de */.X.|.fid = w|
|00005bd0| 2d 3e 72 65 61 6c 46 69 | 6c 65 49 64 3b 0a 58 09 |->realFi|leId;.X.|
|00005be0| 65 6c 73 65 0a 58 23 65 | 6e 64 69 66 0a 58 09 09 |else.X#e|ndif.X..|
|00005bf0| 66 69 64 20 3d 20 77 2d | 3e 66 69 6c 65 49 64 3b |fid = w-|>fileId;|
|00005c00| 0a 58 0a 58 09 2f 2a 20 | 73 65 74 20 75 70 20 66 |.X.X./* |set up f|
|00005c10| 6f 72 20 74 68 65 20 6c | 6f 6f 70 20 2a 2f 0a 58 |or the l|oop */.X|
|00005c20| 09 69 6e 53 65 6c 65 63 | 74 69 6f 6e 20 3d 20 30 |.inSelec|tion = 0|
|00005c30| 3b 0a 58 09 67 63 5f 6e | 6f 72 6d 61 6c 20 3d 20 |;.X.gc_n|ormal = |
|00005c40| 66 6f 6e 74 2d 3e 67 63 | 5f 6e 6f 72 6d 61 6c 3b |font->gc|_normal;|
|00005c50| 0a 58 09 67 63 20 3d 20 | 67 63 5f 6e 6f 72 6d 61 |.X.gc = |gc_norma|
|00005c60| 6c 3b 0a 58 09 6c 6f 67 | 69 63 61 6c 43 6f 6c 20 |l;.X.log|icalCol |
|00005c70| 3d 20 30 3b 0a 58 09 69 | 6e 64 65 6e 74 20 3d 20 |= 0;.X.i|ndent = |
|00005c80| 77 2d 3e 69 6e 64 65 6e | 74 3b 0a 58 09 6c 61 73 |w->inden|t;.X.las|
|00005c90| 74 43 6f 6c 20 2b 3d 20 | 69 6e 64 65 6e 74 3b 0a |tCol += |indent;.|
|00005ca0| 58 09 78 20 3d 20 77 2d | 3e 6c 65 66 74 4d 61 72 |X.x = w-|>leftMar|
|00005cb0| 67 69 6e 3b 0a 58 09 73 | 4c 69 6e 65 20 3d 20 73 |gin;.X.s|Line = s|
|00005cc0| 63 72 65 65 6e 4c 69 6e | 65 3b 0a 58 09 73 4c 69 |creenLin|e;.X.sLi|
|00005cd0| 6e 65 4d 61 78 20 3d 20 | 73 4c 69 6e 65 20 2b 20 |neMax = |sLine + |
|00005ce0| 4d 41 58 43 4f 4c 53 20 | 2d 20 31 3b 0a 58 0a 58 |MAXCOLS |- 1;.X.X|
|00005cf0| 09 2f 2a 20 73 65 74 20 | 74 68 69 6e 67 73 20 75 |./* set |things u|
|00005d00| 70 20 73 6f 20 77 65 20 | 77 69 6c 6c 20 63 61 6c |p so we |will cal|
|00005d10| 6c 20 67 65 74 53 70 61 | 6e 20 66 69 72 73 74 20 |l getSpa|n first |
|00005d20| 74 68 69 6e 67 20 2a 2f | 0a 58 09 66 69 72 73 74 |thing */|.X.first|
|00005d30| 42 79 74 65 20 3d 20 28 | 75 6e 73 69 67 6e 65 64 |Byte = (|unsigned|
|00005d40| 20 63 68 61 72 20 2a 29 | 31 3b 0a 58 09 6c 61 73 | char *)|1;.X.las|
|00005d50| 74 42 79 74 65 20 3d 20 | 28 75 6e 73 69 67 6e 65 |tByte = |(unsigne|
|00005d60| 64 20 63 68 61 72 20 2a | 29 30 3b 0a 58 09 0a 58 |d char *|)0;.X..X|
|00005d70| 09 2f 2a 20 68 61 6e 64 | 6c 65 20 6c 69 6e 65 20 |./* hand|le line |
|00005d80| 6e 75 6d 62 65 72 69 6e | 67 20 2a 2f 0a 58 09 69 |numberin|g */.X.i|
|00005d90| 66 28 20 77 2d 3e 6c 69 | 6e 65 4e 75 6d 62 65 72 |f( w->li|neNumber|
|00005da0| 73 20 26 26 20 66 69 72 | 73 74 43 6f 6c 20 3d 3d |s && fir|stCol ==|
|00005db0| 20 30 20 29 20 7b 0a 58 | 09 09 69 6e 74 20 6c 6e | 0 ) {.X|..int ln|
|00005dc0| 20 3d 20 72 6f 77 20 2b | 20 77 2d 3e 6e 75 6d 54 | = row +| w->numT|
|00005dd0| 6f 70 6c 69 6e 65 3b 0a | 58 09 09 69 6e 74 20 69 |opline;.|X..int i|
|00005de0| 3b 0a 58 09 09 63 68 61 | 72 20 73 5b 31 32 5d 3b |;.X..cha|r s[12];|
|00005df0| 0a 58 09 09 0a 58 09 09 | 73 70 72 69 6e 74 66 28 |.X...X..|sprintf(|
|00005e00| 73 2c 20 22 25 34 64 3a | 22 2c 20 6c 6e 29 3b 0a |s, "%4d:|", ln);.|
|00005e10| 58 09 09 66 6f 72 28 20 | 69 20 3d 20 30 3b 20 69 |X..for( |i = 0; i|
|00005e20| 20 3c 20 35 3b 20 2b 2b | 69 20 29 0a 58 09 09 09 | < 5; ++|i ).X...|
|00005e30| 2a 73 4c 69 6e 65 2b 2b | 20 3d 20 73 5b 69 5d 3b |*sLine++| = s[i];|
|00005e40| 0a 58 09 7d 0a 58 0a 58 | 09 2f 2a 20 6c 6f 6f 70 |.X.}.X.X|./* loop|
|00005e50| 20 75 6e 74 69 6c 20 77 | 65 20 67 65 74 20 74 6f | until w|e get to|
|00005e60| 20 74 68 65 20 65 6e 64 | 20 6f 66 20 74 68 65 20 | the end| of the |
|00005e70| 6c 69 6e 65 20 6f 72 20 | 74 68 65 20 77 69 6e 64 |line or |the wind|
|00005e80| 6f 77 20 2a 2f 0a 58 09 | 77 68 69 6c 65 28 20 6c |ow */.X.|while( l|
|00005e90| 6f 67 69 63 61 6c 43 6f | 6c 20 3c 3d 20 6c 61 73 |ogicalCo|l <= las|
|00005ea0| 74 43 6f 6c 20 29 20 7b | 0a 58 09 09 2f 2a 2a 2a |tCol ) {|.X../***|
|00005eb0| 2a 42 65 67 69 6e 20 43 | 68 65 63 6b 46 6f 72 53 |*Begin C|heckForS|
|00005ec0| 65 6c 65 63 74 69 6f 6e | 28 29 3b 2a 2a 2a 2a 2f |election|();****/|
|00005ed0| 0a 58 09 09 69 66 28 20 | 73 65 6c 42 65 67 69 6e |.X..if( |selBegin|
|00005ee0| 20 3c 3d 20 63 70 20 26 | 26 20 63 70 20 3c 3d 20 | <= cp &|& cp <= |
|00005ef0| 73 65 6c 45 6e 64 20 26 | 26 20 77 20 3d 3d 20 73 |selEnd &|& w == s|
|00005f00| 65 6c 57 69 6e 64 6f 77 | 20 29 20 7b 0a 58 09 09 |elWindow| ) {.X..|
|00005f10| 09 2f 2a 20 77 65 20 61 | 72 65 20 69 6e 73 69 64 |./* we a|re insid|
|00005f20| 65 20 74 68 65 20 73 65 | 6c 65 63 74 69 6f 6e 20 |e the se|lection |
|00005f30| 2a 2f 0a 58 09 09 09 69 | 66 28 20 21 69 6e 53 65 |*/.X...i|f( !inSe|
|00005f40| 6c 65 63 74 69 6f 6e 20 | 29 20 7b 0a 58 09 09 09 |lection |) {.X...|
|00005f50| 09 44 72 61 77 53 74 72 | 69 6e 67 28 29 3b 0a 58 |.DrawStr|ing();.X|
|00005f60| 09 09 09 09 67 63 20 3d | 20 66 6f 6e 74 2d 3e 67 |....gc =| font->g|
|00005f70| 63 5f 73 65 6c 65 63 74 | 65 64 3b 0a 58 09 09 09 |c_select|ed;.X...|
|00005f80| 09 69 6e 53 65 6c 65 63 | 74 69 6f 6e 20 3d 20 31 |.inSelec|tion = 1|
|00005f90| 3b 0a 58 09 09 09 7d 0a | 58 09 09 7d 20 65 6c 73 |;.X...}.|X..} els|
|00005fa0| 65 20 7b 0a 58 09 09 09 | 2f 2a 20 77 65 20 61 72 |e {.X...|/* we ar|
|00005fb0| 65 20 6e 6f 74 20 69 6e | 73 69 64 65 20 74 68 65 |e not in|side the|
|00005fc0| 20 73 65 6c 65 63 74 69 | 6f 6e 20 2a 2f 0a 58 09 | selecti|on */.X.|
|00005fd0| 09 09 69 66 28 20 69 6e | 53 65 6c 65 63 74 69 6f |..if( in|Selectio|
|00005fe0| 6e 20 29 20 7b 0a 58 09 | 09 09 09 44 72 61 77 53 |n ) {.X.|...DrawS|
|00005ff0| 74 72 69 6e 67 28 29 3b | 0a 58 09 09 09 09 67 63 |tring();|.X....gc|
|00006000| 20 3d 20 66 6f 6e 74 2d | 3e 67 63 5f 6e 6f 72 6d | = font-|>gc_norm|
|00006010| 61 6c 3b 0a 58 09 09 09 | 09 69 6e 53 65 6c 65 63 |al;.X...|.inSelec|
|00006020| 74 69 6f 6e 20 3d 20 30 | 3b 0a 58 09 09 09 7d 0a |tion = 0|;.X...}.|
|00006030| 58 09 09 7d 0a 58 09 09 | 2f 2a 2a 2a 2a 45 6e 64 |X..}.X..|/****End|
|00006040| 20 43 68 65 63 6b 46 6f | 72 53 65 6c 65 63 74 69 | CheckFo|rSelecti|
|00006050| 6f 6e 28 29 3b 2a 2a 2a | 2a 2f 0a 58 09 09 69 66 |on();***|*/.X..if|
|00006060| 28 20 66 69 72 73 74 42 | 79 74 65 20 3e 20 6c 61 |( firstB|yte > la|
|00006070| 73 74 42 79 74 65 20 29 | 20 7b 0a 58 09 09 09 69 |stByte )| {.X...i|
|00006080| 66 28 20 67 65 74 53 70 | 61 6e 28 20 66 69 64 2c |f( getSp|an( fid,|
|00006090| 20 63 70 2c 20 26 66 69 | 72 73 74 42 79 74 65 2c | cp, &fi|rstByte,|
|000060a0| 20 26 6c 61 73 74 42 79 | 74 65 2c 20 30 20 29 20 | &lastBy|te, 0 ) |
|000060b0| 29 20 7b 0a 58 09 09 09 | 09 75 63 68 20 3d 20 42 |) {.X...|.uch = B|
|000060c0| 4c 4f 43 4b 5f 45 4f 46 | 3b 0a 58 09 09 09 09 67 |LOCK_EOF|;.X....g|
|000060d0| 6f 74 6f 20 61 74 45 4f | 46 3b 0a 58 09 09 09 7d |oto atEO|F;.X...}|
|000060e0| 0a 58 09 09 7d 0a 58 2b | 2b 67 65 74 53 70 61 6e |.X..}.X+|+getSpan|
|000060f0| 53 69 7a 65 3b 0a 58 09 | 09 75 63 68 20 3d 20 28 |Size;.X.|.uch = (|
|00006100| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 29 28 2a |unsigned| char)(*|
|00006110| 66 69 72 73 74 42 79 74 | 65 2b 2b 29 3b 0a 58 09 |firstByt|e++);.X.|
|00006120| 09 2b 2b 63 70 3b 0a 58 | 09 09 2f 2a 20 63 68 65 |.++cp;.X|../* che|
|00006130| 63 6b 20 6c 69 6d 69 74 | 73 20 6f 66 20 6c 69 6e |ck limit|s of lin|
|00006140| 65 20 62 75 66 66 65 72 | 20 2a 2f 0a 58 09 09 69 |e buffer| */.X..i|
|00006150| 66 28 20 73 4c 69 6e 65 | 20 3e 20 73 4c 69 6e 65 |f( sLine| > sLine|
|00006160| 4d 61 78 20 29 0a 58 09 | 09 09 73 4c 69 6e 65 20 |Max ).X.|..sLine |
|00006170| 3d 20 73 4c 69 6e 65 4d | 61 78 3b 0a 58 09 09 73 |= sLineM|ax;.X..s|
|00006180| 77 69 74 63 68 28 20 63 | 68 61 72 54 61 62 6c 65 |witch( c|harTable|
|00006190| 5b 75 63 68 5d 20 29 20 | 7b 0a 58 09 09 0a 58 09 |[uch] ) |{.X...X.|
|000061a0| 09 63 61 73 65 20 32 3a | 09 09 2f 2a 20 65 6e 64 |.case 2:|../* end|
|000061b0| 20 6f 66 20 66 69 6c 65 | 20 2a 2f 0a 58 09 61 74 | of file| */.X.at|
|000061c0| 45 4f 46 3a 0a 58 09 09 | 09 69 66 28 20 65 6f 66 |EOF:.X..|.if( eof|
|000061d0| 43 68 61 72 20 21 3d 20 | 2d 31 20 29 0a 58 09 09 |Char != |-1 ).X..|
|000061e0| 09 09 2a 73 4c 69 6e 65 | 2b 2b 20 3d 20 28 63 68 |..*sLine|++ = (ch|
|000061f0| 61 72 29 65 6f 66 43 68 | 61 72 3b 0a 58 09 09 09 |ar)eofCh|ar;.X...|
|00006200| 63 70 20 3d 20 2d 31 3b | 09 2f 2a 20 69 6e 64 69 |cp = -1;|./* indi|
|00006210| 63 61 74 65 20 65 6e 64 | 20 6f 66 20 66 69 6c 65 |cate end| of file|
|00006220| 20 77 72 69 74 74 65 6e | 20 2a 2f 0a 58 09 09 09 | written| */.X...|
|00006230| 67 6f 74 6f 20 65 6e 64 | 4c 6f 6f 70 3b 0a 58 0a |goto end|Loop;.X.|
|00006240| 58 09 09 63 61 73 65 20 | 31 3a 09 09 2f 2a 20 6e |X..case |1:../* n|
|00006250| 65 77 6c 69 6e 65 20 2d | 2d 20 65 6e 64 20 6f 66 |ewline -|- end of|
|00006260| 20 6c 69 6e 65 20 20 2a | 2f 0a 58 09 09 09 2a 73 | line *|/.X...*s|
|00006270| 4c 69 6e 65 2b 2b 20 3d | 20 27 20 27 3b 0a 58 09 |Line++ =| ' ';.X.|
|00006280| 09 09 67 6f 74 6f 20 65 | 6e 64 4c 6f 6f 70 3b 0a |..goto e|ndLoop;.|
|00006290| 58 0a 58 09 09 63 61 73 | 65 20 33 3a 09 2f 2a 20 |X.X..cas|e 3:./* |
|000062a0| 74 61 62 20 2a 2f 0a 58 | 09 09 09 74 61 62 53 74 |tab */.X|...tabSt|
|000062b0| 6f 70 20 3d 20 74 61 62 | 57 69 64 74 68 20 2d 20 |op = tab|Width - |
|000062c0| 28 6c 6f 67 69 63 61 6c | 43 6f 6c 20 25 20 74 61 |(logical|Col % ta|
|000062d0| 62 57 69 64 74 68 29 0a | 58 09 09 09 09 09 2b 20 |bWidth).|X.....+ |
|000062e0| 6c 6f 67 69 63 61 6c 43 | 6f 6c 3b 0a 58 09 09 09 |logicalC|ol;.X...|
|000062f0| 69 66 28 20 28 73 4c 69 | 6e 65 2b 74 61 62 57 69 |if( (sLi|ne+tabWi|
|00006300| 64 74 68 29 20 3e 20 73 | 4c 69 6e 65 4d 61 78 20 |dth) > s|LineMax |
|00006310| 29 0a 58 09 09 09 09 73 | 4c 69 6e 65 20 3d 20 73 |).X....s|Line = s|
|00006320| 4c 69 6e 65 4d 61 78 2d | 74 61 62 57 69 64 74 68 |LineMax-|tabWidth|
|00006330| 3b 0a 58 09 09 09 77 68 | 69 6c 65 28 20 2b 2b 6c |;.X...wh|ile( ++l|
|00006340| 6f 67 69 63 61 6c 43 6f | 6c 20 3c 3d 20 74 61 62 |ogicalCo|l <= tab|
|00006350| 53 74 6f 70 20 29 0a 58 | 09 09 09 09 69 66 28 20 |Stop ).X|....if( |
|00006360| 6c 6f 67 69 63 61 6c 43 | 6f 6c 20 3e 3d 20 69 6e |logicalC|ol >= in|
|00006370| 64 65 6e 74 20 29 0a 58 | 09 09 09 09 09 2a 73 4c |dent ).X|.....*sL|
|00006380| 69 6e 65 2b 2b 20 3d 20 | 27 20 27 3b 0a 58 09 09 |ine++ = |' ';.X..|
|00006390| 09 2d 2d 6c 6f 67 69 63 | 61 6c 43 6f 6c 3b 09 2f |.--logic|alCol;./|
|000063a0| 2a 20 6f 6e 65 20 2b 2b | 20 74 6f 6f 20 6d 61 6e |* one ++| too man|
|000063b0| 79 20 61 62 6f 76 65 20 | 2a 2f 0a 58 09 09 09 62 |y above |*/.X...b|
|000063c0| 72 65 61 6b 3b 0a 58 0a | 58 09 09 63 61 73 65 20 |reak;.X.|X..case |
|000063d0| 30 3a 09 2f 2a 20 6f 74 | 68 65 72 20 28 6f 6e 65 |0:./* ot|her (one|
|000063e0| 20 63 68 61 72 20 70 6f | 73 69 74 69 6f 6e 29 20 | char po|sition) |
|000063f0| 63 68 61 72 61 63 74 65 | 72 20 2a 2f 0a 58 09 09 |characte|r */.X..|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.