0000: 2f 2a 0a 2a 2a 20 43 6f 70 79 72 69 67 68 74 20 /*.** Copyright
0010: 28 63 29 20 32 30 30 36 2c 32 30 30 37 20 44 2e (c) 2006,2007 D.
0020: 20 52 69 63 68 61 72 64 20 48 69 70 70 0a 2a 2a Richard Hipp.**
0030: 0a 2a 2a 20 54 68 69 73 20 70 72 6f 67 72 61 6d .** This program
0040: 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 is free softwar
0050: 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 e; you can redis
0060: 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f tribute it and/o
0070: 72 0a 2a 2a 20 6d 6f 64 69 66 79 20 69 74 20 75 r.** modify it u
0080: 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f nder the terms o
0090: 66 20 74 68 65 20 53 69 6d 70 6c 69 66 69 65 64 f the Simplified
00a0: 20 42 53 44 20 4c 69 63 65 6e 73 65 20 28 61 6c BSD License (al
00b0: 73 6f 0a 2a 2a 20 6b 6e 6f 77 6e 20 61 73 20 74 so.** known as t
00c0: 68 65 20 22 32 2d 43 6c 61 75 73 65 20 4c 69 63 he "2-Clause Lic
00d0: 65 6e 73 65 22 20 6f 72 20 22 46 72 65 65 42 53 ense" or "FreeBS
00e0: 44 20 4c 69 63 65 6e 73 65 22 2e 29 0a 0a 2a 2a D License".)..**
00f0: 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 This program is
0100: 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 distributed in
0110: 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 the hope that it
0120: 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c will be useful,
0130: 0a 2a 2a 20 62 75 74 20 77 69 74 68 6f 75 74 20 .** but without
0140: 61 6e 79 20 77 61 72 72 61 6e 74 79 3b 20 77 69 any warranty; wi
0150: 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 thout even the i
0160: 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 mplied warranty
0170: 6f 66 0a 2a 2a 20 6d 65 72 63 68 61 6e 74 61 62 of.** merchantab
0180: 69 6c 69 74 79 20 6f 72 20 66 69 74 6e 65 73 73 ility or fitness
0190: 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 for a particula
01a0: 72 20 70 75 72 70 6f 73 65 2e 0a 2a 2a 0a 2a 2a r purpose..**.**
01b0: 20 41 75 74 68 6f 72 20 63 6f 6e 74 61 63 74 20 Author contact
01c0: 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a 0a 2a 2a 20 information:.**
01d0: 20 20 64 72 68 40 68 77 61 63 69 2e 63 6f 6d 0a drh@hwaci.com.
01e0: 2a 2a 20 20 20 68 74 74 70 3a 2f 2f 77 77 77 2e ** http://www.
01f0: 68 77 61 63 69 2e 63 6f 6d 2f 64 72 68 2f 0a 2a hwaci.com/drh/.*
0200: 2a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a *.**************
0210: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0220: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0230: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0240: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0250: 2a 0a 2a 2a 0a 2a 2a 20 54 68 69 73 20 66 69 6c *.**.** This fil
0260: 65 20 63 6f 6e 74 61 69 6e 73 20 63 6f 64 65 20 e contains code
0270: 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 to implement the
0280: 20 62 61 73 69 63 20 77 65 62 20 70 61 67 65 20 basic web page
0290: 6c 6f 6f 6b 20 61 6e 64 20 66 65 65 6c 2e 0a 2a look and feel..*
02a0: 2a 0a 2a 2f 0a 23 69 6e 63 6c 75 64 65 20 22 56 *.*/.#include "V
02b0: 45 52 53 49 4f 4e 2e 68 22 0a 23 69 6e 63 6c 75 ERSION.h".#inclu
02c0: 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 0a 23 69 de "config.h".#i
02d0: 6e 63 6c 75 64 65 20 22 73 74 79 6c 65 2e 68 22 nclude "style.h"
02e0: 0a 0a 0a 2f 2a 0a 2a 2a 20 45 6c 65 6d 65 6e 74 .../*.** Element
02f0: 73 20 6f 66 20 74 68 65 20 73 75 62 6d 65 6e 75 s of the submenu
0300: 20 61 72 65 20 63 6f 6c 6c 65 63 74 65 64 20 69 are collected i
0310: 6e 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e nto the followin
0320: 67 0a 2a 2a 20 73 74 72 75 63 74 75 72 65 20 61 g.** structure a
0330: 6e 64 20 64 69 73 70 6c 61 79 65 64 20 62 65 6c nd displayed bel
0340: 6f 77 20 74 68 65 20 6d 61 69 6e 20 6d 65 6e 75 ow the main menu
0350: 2e 0a 2a 2a 0a 2a 2a 20 50 6f 70 75 6c 61 74 65 ..**.** Populate
0360: 20 74 68 65 73 65 20 73 74 72 75 63 74 75 72 65 these structure
0370: 20 77 69 74 68 20 63 61 6c 6c 73 20 74 6f 0a 2a with calls to.*
0380: 2a 0a 2a 2a 20 20 20 20 20 20 73 74 79 6c 65 5f *.** style_
0390: 73 75 62 6d 65 6e 75 5f 65 6c 65 6d 65 6e 74 28 submenu_element(
03a0: 29 0a 2a 2a 20 20 20 20 20 20 73 74 79 6c 65 5f ).** style_
03b0: 73 75 62 6d 65 6e 75 5f 65 6e 74 72 79 28 29 0a submenu_entry().
03c0: 2a 2a 20 20 20 20 20 20 73 74 79 6c 65 5f 73 75 ** style_su
03d0: 62 6d 65 6e 75 5f 63 68 65 63 6b 62 6f 78 28 29 bmenu_checkbox()
03e0: 0a 2a 2a 20 20 20 20 20 20 73 74 79 6c 65 5f 73 .** style_s
03f0: 75 62 6d 65 6e 75 5f 6d 75 6c 74 69 63 68 6f 69 ubmenu_multichoi
0400: 63 65 28 29 0a 2a 2a 0a 2a 2a 20 70 72 69 6f 72 ce().**.** prior
0410: 20 74 6f 20 63 61 6c 6c 69 6e 67 20 73 74 79 6c to calling styl
0420: 65 5f 66 6f 6f 74 65 72 28 29 2e 20 20 54 68 65 e_footer(). The
0430: 20 73 74 79 6c 65 5f 66 6f 6f 74 65 72 28 29 20 style_footer()
0440: 72 6f 75 74 69 6e 65 0a 2a 2a 20 77 69 6c 6c 20 routine.** will
0450: 67 65 6e 65 72 61 74 65 20 74 68 65 20 61 70 70 generate the app
0460: 72 6f 70 72 69 61 74 65 20 48 54 4d 4c 20 74 65 ropriate HTML te
0470: 78 74 20 6a 75 73 74 20 62 65 6c 6f 77 20 74 68 xt just below th
0480: 65 20 6d 61 69 6e 0a 2a 2a 20 6d 65 6e 75 2e 0a e main.** menu..
0490: 2a 2f 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 */.static struct
04a0: 20 53 75 62 6d 65 6e 75 20 7b 0a 20 20 63 6f 6e Submenu {. con
04b0: 73 74 20 63 68 61 72 20 2a 7a 4c 61 62 65 6c 3b st char *zLabel;
04c0: 20 20 20 20 20 20 20 20 2f 2a 20 42 75 74 74 6f /* Butto
04d0: 6e 20 6c 61 62 65 6c 20 2a 2f 0a 20 20 63 6f 6e n label */. con
04e0: 73 74 20 63 68 61 72 20 2a 7a 54 69 74 6c 65 3b st char *zTitle;
04f0: 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 7a . const char *z
0500: 4c 69 6e 6b 3b 20 20 20 20 20 20 20 20 20 2f 2a Link; /*
0510: 20 4a 75 6d 70 20 74 6f 20 74 68 69 73 20 6c 69 Jump to this li
0520: 6e 6b 20 77 68 65 6e 20 62 75 74 74 6f 6e 20 69 nk when button i
0530: 73 20 70 72 65 73 73 65 64 20 2a 2f 0a 7d 20 61 s pressed */.} a
0540: 53 75 62 6d 65 6e 75 5b 33 30 5d 3b 0a 73 74 61 Submenu[30];.sta
0550: 74 69 63 20 69 6e 74 20 6e 53 75 62 6d 65 6e 75 tic int nSubmenu
0560: 20 3d 20 30 3b 20 20 20 20 20 2f 2a 20 4e 75 6d = 0; /* Num
0570: 62 65 72 20 6f 66 20 62 75 74 74 6f 6e 73 20 2a ber of buttons *
0580: 2f 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 /.static struct
0590: 53 75 62 6d 65 6e 75 43 74 72 6c 20 7b 0a 20 20 SubmenuCtrl {.
05a0: 63 6f 6e 73 74 20 63 68 61 72 20 2a 7a 4e 61 6d const char *zNam
05b0: 65 3b 20 20 20 20 20 20 20 20 20 2f 2a 20 46 6f e; /* Fo
05c0: 72 6d 20 71 75 65 72 79 20 70 61 72 61 6d 65 74 rm query paramet
05d0: 65 72 20 2a 2f 0a 20 20 63 6f 6e 73 74 20 63 68 er */. const ch
05e0: 61 72 20 2a 7a 4c 61 62 65 6c 3b 20 20 20 20 20 ar *zLabel;
05f0: 20 20 20 2f 2a 20 4c 61 62 65 6c 2e 20 20 4d 69 /* Label. Mi
0600: 67 68 74 20 62 65 20 4e 55 4c 4c 20 66 6f 72 20 ght be NULL for
0610: 46 46 5f 4d 55 4c 54 49 20 2a 2f 0a 20 20 75 6e FF_MULTI */. un
0620: 73 69 67 6e 65 64 20 63 68 61 72 20 65 54 79 70 signed char eTyp
0630: 65 3b 20 20 20 20 20 20 20 2f 2a 20 46 46 5f 45 e; /* FF_E
0640: 4e 54 52 59 2c 20 46 46 5f 4d 55 4c 54 49 2c 20 NTRY, FF_MULTI,
0650: 46 46 5f 42 49 4e 41 52 59 20 2a 2f 0a 20 20 75 FF_BINARY */. u
0660: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 69 73 44 nsigned char isD
0670: 69 73 61 62 6c 65 64 3b 20 20 2f 2a 20 54 72 75 isabled; /* Tru
0680: 65 20 69 66 20 74 68 69 73 20 63 6f 6e 74 72 6f e if this contro
0690: 6c 20 69 73 20 67 72 61 79 65 64 20 6f 75 74 20 l is grayed out
06a0: 2a 2f 0a 20 20 73 68 6f 72 74 20 69 6e 74 20 69 */. short int i
06b0: 53 69 7a 65 3b 20 20 20 20 20 20 20 20 20 20 20 Size;
06c0: 2f 2a 20 57 69 64 74 68 20 66 6f 72 20 46 46 5f /* Width for FF_
06d0: 45 4e 54 52 59 2e 20 20 43 6f 75 6e 74 20 66 6f ENTRY. Count fo
06e0: 72 20 46 46 5f 4d 55 4c 54 49 20 2a 2f 0a 20 20 r FF_MULTI */.
06f0: 63 6f 6e 73 74 20 63 68 61 72 20 2a 2a 61 7a 43 const char **azC
0700: 68 6f 69 63 65 3b 20 20 20 20 20 2f 2a 20 76 61 hoice; /* va
0710: 6c 75 65 2f 64 69 73 70 6c 61 79 20 70 61 69 72 lue/display pair
0720: 73 20 66 6f 72 20 46 46 5f 4d 55 4c 54 49 20 2a s for FF_MULTI *
0730: 2f 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a /. const char *
0740: 7a 46 61 6c 73 65 3b 20 20 20 20 20 20 20 20 2f zFalse; /
0750: 2a 20 46 46 5f 42 49 4e 41 52 59 20 6c 61 62 65 * FF_BINARY labe
0760: 6c 20 77 68 65 6e 20 66 61 6c 73 65 20 2a 2f 0a l when false */.
0770: 7d 20 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b 32 } aSubmenuCtrl[2
0780: 30 5d 3b 0a 73 74 61 74 69 63 20 69 6e 74 20 6e 0];.static int n
0790: 53 75 62 6d 65 6e 75 43 74 72 6c 20 3d 20 30 3b SubmenuCtrl = 0;
07a0: 0a 23 64 65 66 69 6e 65 20 46 46 5f 45 4e 54 52 .#define FF_ENTR
07b0: 59 20 20 31 0a 23 64 65 66 69 6e 65 20 46 46 5f Y 1.#define FF_
07c0: 4d 55 4c 54 49 20 20 32 0a 23 64 65 66 69 6e 65 MULTI 2.#define
07d0: 20 46 46 5f 42 49 4e 41 52 59 20 33 0a 0a 2f 2a FF_BINARY 3../*
07e0: 0a 2a 2a 20 52 65 6d 65 6d 62 65 72 20 74 68 61 .** Remember tha
07f0: 74 20 74 68 65 20 68 65 61 64 65 72 20 68 61 73 t the header has
0800: 20 62 65 65 6e 20 67 65 6e 65 72 61 74 65 64 2e been generated.
0810: 20 20 54 68 65 20 66 6f 6f 74 65 72 20 69 73 20 The footer is
0820: 6f 6d 69 74 74 65 64 0a 2a 2a 20 69 66 20 61 6e omitted.** if an
0830: 20 65 72 72 6f 72 20 6f 63 63 75 72 73 20 62 65 error occurs be
0840: 66 6f 72 65 20 74 68 65 20 68 65 61 64 65 72 2e fore the header.
0850: 0a 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 68 .*/.static int h
0860: 65 61 64 65 72 48 61 73 42 65 65 6e 47 65 6e 65 eaderHasBeenGene
0870: 72 61 74 65 64 20 3d 20 30 3b 0a 0a 2f 2a 0a 2a rated = 0;../*.*
0880: 2a 20 72 65 6d 65 6d 62 65 72 2c 20 69 66 20 61 * remember, if a
0890: 20 73 69 64 65 62 6f 78 20 77 61 73 20 75 73 65 sidebox was use
08a0: 64 0a 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 d.*/.static int
08b0: 73 69 64 65 62 6f 78 55 73 65 64 20 3d 20 30 3b sideboxUsed = 0;
08c0: 0a 0a 2f 2a 0a 2a 2a 20 41 64 2d 75 6e 69 74 20 ../*.** Ad-unit
08d0: 73 74 79 6c 65 73 2e 0a 2a 2f 0a 73 74 61 74 69 styles..*/.stati
08e0: 63 20 75 6e 73 69 67 6e 65 64 20 61 64 55 6e 69 c unsigned adUni
08f0: 74 46 6c 61 67 73 20 3d 20 30 3b 0a 0a 0a 2f 2a tFlags = 0;.../*
0900: 0a 2a 2a 20 4c 69 73 74 20 6f 66 20 68 79 70 65 .** List of hype
0910: 72 6c 69 6e 6b 73 20 61 6e 64 20 66 6f 72 6d 73 rlinks and forms
0920: 20 74 68 61 74 20 6e 65 65 64 20 74 6f 20 62 65 that need to be
0930: 20 72 65 73 6f 6c 76 65 64 20 62 79 20 6a 61 76 resolved by jav
0940: 61 73 63 72 69 70 74 20 69 6e 0a 2a 2a 20 74 68 ascript in.** th
0950: 65 20 66 6f 6f 74 65 72 2e 0a 2a 2f 0a 63 68 61 e footer..*/.cha
0960: 72 20 2a 2a 61 48 72 65 66 20 3d 20 30 3b 0a 69 r **aHref = 0;.i
0970: 6e 74 20 6e 48 72 65 66 20 3d 20 30 3b 0a 69 6e nt nHref = 0;.in
0980: 74 20 6e 48 72 65 66 41 6c 6c 6f 63 20 3d 20 30 t nHrefAlloc = 0
0990: 3b 0a 63 68 61 72 20 2a 2a 61 46 6f 72 6d 41 63 ;.char **aFormAc
09a0: 74 69 6f 6e 20 3d 20 30 3b 0a 69 6e 74 20 6e 46 tion = 0;.int nF
09b0: 6f 72 6d 41 63 74 69 6f 6e 20 3d 20 30 3b 0a 0a ormAction = 0;..
09c0: 2f 2a 0a 2a 2a 20 47 65 6e 65 72 61 74 65 20 61 /*.** Generate a
09d0: 6e 64 20 72 65 74 75 72 6e 20 61 20 61 6e 63 68 nd return a anch
09e0: 6f 72 20 74 61 67 20 6c 69 6b 65 20 74 68 69 73 or tag like this
09f0: 3a 0a 2a 2a 0a 2a 2a 20 20 20 20 20 20 20 20 3c :.**.** <
0a00: 61 20 68 72 65 66 3d 22 55 52 4c 22 3e 0a 2a 2a a href="URL">.**
0a10: 20 20 6f 72 20 20 20 20 3c 61 20 69 64 3d 22 49 or <a id="I
0a20: 44 22 3e 0a 2a 2a 0a 2a 2a 20 54 68 65 20 66 6f D">.**.** The fo
0a30: 72 6d 20 6f 66 20 74 68 65 20 61 6e 63 68 6f 72 rm of the anchor
0a40: 20 74 61 67 20 69 73 20 64 65 74 65 72 6d 69 6e tag is determin
0a50: 65 64 20 62 79 20 74 68 65 20 67 2e 6a 61 76 61 ed by the g.java
0a60: 73 63 72 69 70 74 48 79 70 65 72 6c 69 6e 6b 0a scriptHyperlink.
0a70: 2a 2a 20 76 61 72 69 61 62 6c 65 2e 20 20 54 68 ** variable. Th
0a80: 65 20 68 72 65 66 3d 22 55 52 4c 22 20 66 6f 72 e href="URL" for
0a90: 6d 20 69 73 20 75 73 65 64 20 69 66 20 67 2e 6a m is used if g.j
0aa0: 61 76 61 73 63 72 69 70 74 48 79 70 65 72 6c 69 avascriptHyperli
0ab0: 6e 6b 20 69 73 20 66 61 6c 73 65 2e 0a 2a 2a 20 nk is false..**
0ac0: 49 66 20 67 2e 6a 61 76 61 73 63 72 69 70 74 48 If g.javascriptH
0ad0: 79 70 65 72 6c 69 6e 6b 20 69 73 20 74 72 75 65 yperlink is true
0ae0: 20 74 68 65 6e 20 74 68 65 0a 2a 2a 20 69 64 3d then the.** id=
0af0: 22 49 44 22 20 66 6f 72 6d 20 69 73 20 75 73 65 "ID" form is use
0b00: 64 20 61 6e 64 20 6a 61 76 61 73 63 72 69 70 74 d and javascript
0b10: 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 69 6e is generated in
0b20: 20 74 68 65 20 66 6f 6f 74 65 72 20 74 6f 20 63 the footer to c
0b30: 61 75 73 65 0a 2a 2a 20 68 72 65 66 20 76 61 6c ause.** href val
0b40: 75 65 73 20 74 6f 20 62 65 20 69 6e 73 65 72 74 ues to be insert
0b50: 65 64 20 61 66 74 65 72 20 74 68 65 20 70 61 67 ed after the pag
0b60: 65 20 68 61 73 20 6c 6f 61 64 65 64 2e 20 20 49 e has loaded. I
0b70: 66 0a 2a 2a 20 67 2e 70 65 72 6d 2e 48 69 73 74 f.** g.perm.Hist
0b80: 6f 72 79 20 69 73 20 66 61 6c 73 65 2c 20 74 68 ory is false, th
0b90: 65 6e 20 74 68 65 20 3c 61 20 69 64 3d 22 49 44 en the <a id="ID
0ba0: 22 3e 20 66 6f 72 6d 20 69 73 20 73 74 69 6c 6c "> form is still
0bb0: 0a 2a 2a 20 67 65 6e 65 72 61 74 65 64 20 62 75 .** generated bu
0bc0: 74 20 74 68 65 20 6a 61 76 61 73 63 72 69 70 74 t the javascript
0bd0: 20 69 73 20 6e 6f 74 20 67 65 6e 65 72 61 74 65 is not generate
0be0: 64 20 73 6f 20 74 68 65 20 6c 69 6e 6b 73 20 6e d so the links n
0bf0: 65 76 65 72 0a 2a 2a 20 61 63 74 69 76 61 74 65 ever.** activate
0c00: 2e 0a 2a 2a 0a 2a 2a 20 49 66 20 74 68 65 20 75 ..**.** If the u
0c10: 73 65 72 20 6c 61 63 6b 73 20 74 68 65 20 48 79 ser lacks the Hy
0c20: 70 65 72 6c 69 6e 6b 20 28 68 29 20 70 72 6f 70 perlink (h) prop
0c30: 65 72 74 79 20 61 6e 64 20 74 68 65 20 22 61 75 erty and the "au
0c40: 74 6f 2d 68 79 70 65 72 6c 69 6e 6b 22 0a 2a 2a to-hyperlink".**
0c50: 20 73 65 74 74 69 6e 67 20 69 73 20 74 72 75 65 setting is true
0c60: 2c 20 74 68 65 6e 20 67 2e 70 65 72 6d 2e 48 79 , then g.perm.Hy
0c70: 70 65 72 6c 69 6e 6b 20 69 73 20 63 68 61 6e 67 perlink is chang
0c80: 65 64 20 66 72 6f 6d 20 30 20 74 6f 20 31 20 61 ed from 0 to 1 a
0c90: 6e 64 0a 2a 2a 20 67 2e 6a 61 76 61 73 63 72 69 nd.** g.javascri
0ca0: 70 74 48 79 70 65 72 6c 69 6e 6b 20 69 73 20 73 ptHyperlink is s
0cb0: 65 74 20 74 6f 20 31 2e 20 20 54 68 65 20 67 2e et to 1. The g.
0cc0: 6a 61 76 61 73 63 72 69 70 74 48 79 70 65 72 6c javascriptHyperl
0cd0: 69 6e 6b 20 64 65 66 61 75 6c 74 73 0a 2a 2a 20 ink defaults.**
0ce0: 74 6f 20 30 20 61 6e 64 20 6f 6e 6c 79 20 63 68 to 0 and only ch
0cf0: 61 6e 67 65 73 20 74 6f 20 6f 6e 65 20 69 66 20 anges to one if
0d00: 74 68 65 20 75 73 65 72 20 6c 61 63 6b 73 20 74 the user lacks t
0d10: 68 65 20 48 79 70 65 72 6c 69 6e 6b 20 28 68 29 he Hyperlink (h)
0d20: 20 70 72 6f 70 65 72 74 79 0a 2a 2a 20 61 6e 64 property.** and
0d30: 20 74 68 65 20 22 61 75 74 6f 2d 68 79 70 65 72 the "auto-hyper
0d40: 6c 69 6e 6b 22 20 73 65 74 74 69 6e 67 20 69 73 link" setting is
0d50: 20 65 6e 61 62 6c 65 64 2e 0a 2a 2a 0a 2a 2a 20 enabled..**.**
0d60: 46 69 6c 6c 69 6e 67 20 69 6e 20 74 68 65 20 68 Filling in the h
0d70: 72 65 66 3d 22 55 52 4c 22 20 75 73 69 6e 67 20 ref="URL" using
0d80: 6a 61 76 61 73 63 72 69 70 74 20 69 73 20 61 20 javascript is a
0d90: 64 65 66 65 6e 73 65 20 61 67 61 69 6e 73 74 20 defense against
0da0: 62 6f 74 73 2e 0a 2a 2a 0a 2a 2a 20 54 68 65 20 bots..**.** The
0db0: 6e 61 6d 65 20 6f 66 20 74 68 69 73 20 72 6f 75 name of this rou
0dc0: 74 69 6e 65 20 69 73 20 64 65 6c 69 62 65 72 61 tine is delibera
0dd0: 74 65 6c 79 20 6b 65 70 74 20 73 68 6f 72 74 20 tely kept short
0de0: 73 6f 20 74 68 61 74 20 63 61 6e 20 62 65 0a 2a so that can be.*
0df0: 2a 20 65 61 73 69 6c 79 20 75 73 65 64 20 77 69 * easily used wi
0e00: 74 68 69 6e 20 40 2d 6c 69 6e 65 73 2e 20 20 45 thin @-lines. E
0e10: 78 61 6d 70 6c 65 3a 0a 2a 2a 0a 2a 2a 20 20 20 xample:.**.**
0e20: 20 20 20 40 20 25 7a 28 68 72 65 66 28 22 25 52 @ %z(href("%R
0e30: 2f 61 72 74 69 66 61 63 74 2f 25 73 22 2c 7a 55 /artifact/%s",zU
0e40: 75 69 64 29 29 25 68 28 7a 46 4e 29 3c 2f 61 3e uid))%h(zFN)</a>
0e50: 0a 2a 2a 0a 2a 2a 20 4e 6f 74 65 20 25 7a 20 66 .**.** Note %z f
0e60: 6f 72 6d 61 74 2e 20 20 54 68 65 20 73 74 72 69 ormat. The stri
0e70: 6e 67 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 ng returned by t
0e80: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 his function is
0e90: 61 6c 77 61 79 73 0a 2a 2a 20 6f 62 74 61 69 6e always.** obtain
0ea0: 65 64 20 66 72 6f 6d 20 66 6f 73 73 69 6c 5f 6d ed from fossil_m
0eb0: 61 6c 6c 6f 63 28 29 20 73 6f 20 72 65 6e 64 65 alloc() so rende
0ec0: 72 69 6e 67 20 69 74 20 77 69 74 68 20 25 7a 20 ring it with %z
0ed0: 77 69 6c 6c 20 72 65 63 6c 61 69 6d 0a 2a 2a 20 will reclaim.**
0ee0: 74 68 61 74 20 6d 65 6d 6f 72 79 20 73 70 61 63 that memory spac
0ef0: 65 2e 0a 2a 2a 0a 2a 2a 20 54 68 65 72 65 20 61 e..**.** There a
0f00: 72 65 20 74 77 6f 20 76 65 72 73 69 6f 6e 73 20 re two versions
0f10: 6f 66 20 74 68 69 73 20 72 6f 75 74 69 6e 65 3a of this routine:
0f20: 20 68 72 65 66 28 29 20 64 6f 65 73 20 61 20 70 href() does a p
0f30: 6c 61 69 6e 20 68 79 70 65 72 6c 69 6e 6b 0a 2a lain hyperlink.*
0f40: 2a 20 61 6e 64 20 78 68 72 65 66 28 29 20 61 64 * and xhref() ad
0f50: 64 73 20 65 78 74 72 61 20 61 74 74 72 69 62 75 ds extra attribu
0f60: 74 65 20 74 65 78 74 2e 0a 2a 2a 0a 2a 2a 20 67 te text..**.** g
0f70: 2e 70 65 72 6d 2e 48 79 70 65 72 6c 69 6e 6b 20 .perm.Hyperlink
0f80: 69 73 20 74 72 75 65 20 69 66 20 74 68 65 20 75 is true if the u
0f90: 73 65 72 20 68 61 73 20 74 68 65 20 48 79 70 65 ser has the Hype
0fa0: 72 6c 69 6e 6b 20 28 68 29 20 70 72 6f 70 65 72 rlink (h) proper
0fb0: 74 79 2e 0a 2a 2a 20 4d 6f 73 74 20 6c 6f 67 67 ty..** Most logg
0fc0: 65 64 20 69 6e 20 75 73 65 72 73 20 73 68 6f 75 ed in users shou
0fd0: 6c 64 20 68 61 76 65 20 74 68 69 73 20 70 72 6f ld have this pro
0fe0: 70 65 72 74 79 2c 20 73 69 6e 63 65 20 77 65 20 perty, since we
0ff0: 63 61 6e 20 61 73 73 75 6d 65 0a 2a 2a 20 74 68 can assume.** th
1000: 61 74 20 61 20 6c 6f 67 67 65 64 20 69 6e 20 75 at a logged in u
1010: 73 65 72 20 69 73 20 6e 6f 74 20 61 20 62 6f 74 ser is not a bot
1020: 2e 20 20 4f 6e 6c 79 20 22 6e 6f 62 6f 64 79 22 . Only "nobody"
1030: 20 6c 61 63 6b 73 20 67 2e 70 65 72 6d 2e 48 79 lacks g.perm.Hy
1040: 70 65 72 6c 69 6e 6b 2c 0a 2a 2a 20 74 79 70 69 perlink,.** typi
1050: 63 61 6c 6c 79 2e 0a 2a 2f 0a 63 68 61 72 20 2a cally..*/.char *
1060: 78 68 72 65 66 28 63 6f 6e 73 74 20 63 68 61 72 xhref(const char
1070: 20 2a 7a 45 78 74 72 61 2c 20 63 6f 6e 73 74 20 *zExtra, const
1080: 63 68 61 72 20 2a 7a 46 6f 72 6d 61 74 2c 20 2e char *zFormat, .
1090: 2e 2e 29 7b 0a 20 20 63 68 61 72 20 2a 7a 55 72 ..){. char *zUr
10a0: 6c 3b 0a 20 20 76 61 5f 6c 69 73 74 20 61 70 3b l;. va_list ap;
10b0: 0a 20 20 76 61 5f 73 74 61 72 74 28 61 70 2c 20 . va_start(ap,
10c0: 7a 46 6f 72 6d 61 74 29 3b 0a 20 20 7a 55 72 6c zFormat);. zUrl
10d0: 20 3d 20 76 6d 70 72 69 6e 74 66 28 7a 46 6f 72 = vmprintf(zFor
10e0: 6d 61 74 2c 20 61 70 29 3b 0a 20 20 76 61 5f 65 mat, ap);. va_e
10f0: 6e 64 28 61 70 29 3b 0a 20 20 69 66 28 20 67 2e nd(ap);. if( g.
1100: 70 65 72 6d 2e 48 79 70 65 72 6c 69 6e 6b 20 26 perm.Hyperlink &
1110: 26 20 21 67 2e 6a 61 76 61 73 63 72 69 70 74 48 & !g.javascriptH
1120: 79 70 65 72 6c 69 6e 6b 20 29 7b 0a 20 20 20 20 yperlink ){.
1130: 63 68 61 72 20 2a 7a 48 55 72 6c 20 3d 20 6d 70 char *zHUrl = mp
1140: 72 69 6e 74 66 28 22 3c 61 20 25 73 20 68 72 65 rintf("<a %s hre
1150: 66 3d 5c 22 25 68 5c 22 3e 22 2c 20 7a 45 78 74 f=\"%h\">", zExt
1160: 72 61 2c 20 7a 55 72 6c 29 3b 0a 20 20 20 20 66 ra, zUrl);. f
1170: 6f 73 73 69 6c 5f 66 72 65 65 28 7a 55 72 6c 29 ossil_free(zUrl)
1180: 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 7a 48 55 ;. return zHU
1190: 72 6c 3b 0a 20 20 7d 0a 20 20 69 66 28 20 6e 48 rl;. }. if( nH
11a0: 72 65 66 3e 3d 6e 48 72 65 66 41 6c 6c 6f 63 20 ref>=nHrefAlloc
11b0: 29 7b 0a 20 20 20 20 6e 48 72 65 66 41 6c 6c 6f ){. nHrefAllo
11c0: 63 20 3d 20 6e 48 72 65 66 41 6c 6c 6f 63 2a 32 c = nHrefAlloc*2
11d0: 20 2b 20 31 30 3b 0a 20 20 20 20 61 48 72 65 66 + 10;. aHref
11e0: 20 3d 20 66 6f 73 73 69 6c 5f 72 65 61 6c 6c 6f = fossil_reallo
11f0: 63 28 61 48 72 65 66 2c 20 6e 48 72 65 66 41 6c c(aHref, nHrefAl
1200: 6c 6f 63 2a 73 69 7a 65 6f 66 28 61 48 72 65 66 loc*sizeof(aHref
1210: 5b 30 5d 29 29 3b 0a 20 20 7d 0a 20 20 61 48 72 [0]));. }. aHr
1220: 65 66 5b 6e 48 72 65 66 2b 2b 5d 20 3d 20 7a 55 ef[nHref++] = zU
1230: 72 6c 3b 0a 20 20 72 65 74 75 72 6e 20 6d 70 72 rl;. return mpr
1240: 69 6e 74 66 28 22 3c 61 20 25 73 20 69 64 3d 27 intf("<a %s id='
1250: 61 25 64 27 20 68 72 65 66 3d 27 25 52 2f 68 6f a%d' href='%R/ho
1260: 6e 65 79 70 6f 74 27 3e 22 2c 20 7a 45 78 74 72 neypot'>", zExtr
1270: 61 2c 20 6e 48 72 65 66 29 3b 0a 7d 0a 63 68 61 a, nHref);.}.cha
1280: 72 20 2a 68 72 65 66 28 63 6f 6e 73 74 20 63 68 r *href(const ch
1290: 61 72 20 2a 7a 46 6f 72 6d 61 74 2c 20 2e 2e 2e ar *zFormat, ...
12a0: 29 7b 0a 20 20 63 68 61 72 20 2a 7a 55 72 6c 3b ){. char *zUrl;
12b0: 0a 20 20 76 61 5f 6c 69 73 74 20 61 70 3b 0a 20 . va_list ap;.
12c0: 20 76 61 5f 73 74 61 72 74 28 61 70 2c 20 7a 46 va_start(ap, zF
12d0: 6f 72 6d 61 74 29 3b 0a 20 20 7a 55 72 6c 20 3d ormat);. zUrl =
12e0: 20 76 6d 70 72 69 6e 74 66 28 7a 46 6f 72 6d 61 vmprintf(zForma
12f0: 74 2c 20 61 70 29 3b 0a 20 20 76 61 5f 65 6e 64 t, ap);. va_end
1300: 28 61 70 29 3b 0a 20 20 69 66 28 20 67 2e 70 65 (ap);. if( g.pe
1310: 72 6d 2e 48 79 70 65 72 6c 69 6e 6b 20 26 26 20 rm.Hyperlink &&
1320: 21 67 2e 6a 61 76 61 73 63 72 69 70 74 48 79 70 !g.javascriptHyp
1330: 65 72 6c 69 6e 6b 20 29 7b 0a 20 20 20 20 63 68 erlink ){. ch
1340: 61 72 20 2a 7a 48 55 72 6c 20 3d 20 6d 70 72 69 ar *zHUrl = mpri
1350: 6e 74 66 28 22 3c 61 20 68 72 65 66 3d 5c 22 25 ntf("<a href=\"%
1360: 68 5c 22 3e 22 2c 20 7a 55 72 6c 29 3b 0a 20 20 h\">", zUrl);.
1370: 20 20 66 6f 73 73 69 6c 5f 66 72 65 65 28 7a 55 fossil_free(zU
1380: 72 6c 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 rl);. return
1390: 7a 48 55 72 6c 3b 0a 20 20 7d 0a 20 20 69 66 28 zHUrl;. }. if(
13a0: 20 6e 48 72 65 66 3e 3d 6e 48 72 65 66 41 6c 6c nHref>=nHrefAll
13b0: 6f 63 20 29 7b 0a 20 20 20 20 6e 48 72 65 66 41 oc ){. nHrefA
13c0: 6c 6c 6f 63 20 3d 20 6e 48 72 65 66 41 6c 6c 6f lloc = nHrefAllo
13d0: 63 2a 32 20 2b 20 31 30 3b 0a 20 20 20 20 61 48 c*2 + 10;. aH
13e0: 72 65 66 20 3d 20 66 6f 73 73 69 6c 5f 72 65 61 ref = fossil_rea
13f0: 6c 6c 6f 63 28 61 48 72 65 66 2c 20 6e 48 72 65 lloc(aHref, nHre
1400: 66 41 6c 6c 6f 63 2a 73 69 7a 65 6f 66 28 61 48 fAlloc*sizeof(aH
1410: 72 65 66 5b 30 5d 29 29 3b 0a 20 20 7d 0a 20 20 ref[0]));. }.
1420: 61 48 72 65 66 5b 6e 48 72 65 66 2b 2b 5d 20 3d aHref[nHref++] =
1430: 20 7a 55 72 6c 3b 0a 20 20 72 65 74 75 72 6e 20 zUrl;. return
1440: 6d 70 72 69 6e 74 66 28 22 3c 61 20 69 64 3d 27 mprintf("<a id='
1450: 61 25 64 27 20 68 72 65 66 3d 27 25 52 2f 68 6f a%d' href='%R/ho
1460: 6e 65 79 70 6f 74 27 3e 22 2c 20 6e 48 72 65 66 neypot'>", nHref
1470: 29 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 47 65 6e 65 );.}../*.** Gene
1480: 72 61 74 65 20 3c 66 6f 72 6d 20 6d 65 74 68 6f rate <form metho
1490: 64 3d 22 70 6f 73 74 22 20 61 63 74 69 6f 6e 3d d="post" action=
14a0: 41 52 47 3e 2e 20 20 54 68 65 20 41 52 47 20 76 ARG>. The ARG v
14b0: 61 6c 75 65 20 69 73 20 69 6e 73 65 72 74 65 64 alue is inserted
14c0: 0a 2a 2a 20 62 79 20 6a 61 76 61 73 63 72 69 70 .** by javascrip
14d0: 74 2e 0a 2a 2f 0a 76 6f 69 64 20 66 6f 72 6d 5f t..*/.void form_
14e0: 62 65 67 69 6e 28 63 6f 6e 73 74 20 63 68 61 72 begin(const char
14f0: 20 2a 7a 4f 74 68 65 72 41 72 67 73 2c 20 63 6f *zOtherArgs, co
1500: 6e 73 74 20 63 68 61 72 20 2a 7a 41 63 74 69 6f nst char *zActio
1510: 6e 2c 20 2e 2e 2e 29 7b 0a 20 20 63 68 61 72 20 n, ...){. char
1520: 2a 7a 4c 69 6e 6b 3b 0a 20 20 76 61 5f 6c 69 73 *zLink;. va_lis
1530: 74 20 61 70 3b 0a 20 20 69 66 28 20 7a 4f 74 68 t ap;. if( zOth
1540: 65 72 41 72 67 73 3d 3d 30 20 29 20 7a 4f 74 68 erArgs==0 ) zOth
1550: 65 72 41 72 67 73 20 3d 20 22 22 3b 0a 20 20 76 erArgs = "";. v
1560: 61 5f 73 74 61 72 74 28 61 70 2c 20 7a 41 63 74 a_start(ap, zAct
1570: 69 6f 6e 29 3b 0a 20 20 7a 4c 69 6e 6b 20 3d 20 ion);. zLink =
1580: 76 6d 70 72 69 6e 74 66 28 7a 41 63 74 69 6f 6e vmprintf(zAction
1590: 2c 20 61 70 29 3b 0a 20 20 76 61 5f 65 6e 64 28 , ap);. va_end(
15a0: 61 70 29 3b 0a 20 20 69 66 28 20 67 2e 70 65 72 ap);. if( g.per
15b0: 6d 2e 48 79 70 65 72 6c 69 6e 6b 20 26 26 20 21 m.Hyperlink && !
15c0: 67 2e 6a 61 76 61 73 63 72 69 70 74 48 79 70 65 g.javascriptHype
15d0: 72 6c 69 6e 6b 20 29 7b 0a 20 20 20 20 40 20 3c rlink ){. @ <
15e0: 66 6f 72 6d 20 6d 65 74 68 6f 64 3d 22 50 4f 53 form method="POS
15f0: 54 22 20 61 63 74 69 6f 6e 3d 22 25 7a 28 7a 4c T" action="%z(zL
1600: 69 6e 6b 29 22 20 25 73 28 7a 4f 74 68 65 72 41 ink)" %s(zOtherA
1610: 72 67 73 29 3e 0a 20 20 7d 65 6c 73 65 7b 0a 20 rgs)>. }else{.
1620: 20 20 20 69 6e 74 20 6e 3b 0a 20 20 20 20 61 46 int n;. aF
1630: 6f 72 6d 41 63 74 69 6f 6e 20 3d 20 66 6f 73 73 ormAction = foss
1640: 69 6c 5f 72 65 61 6c 6c 6f 63 28 61 46 6f 72 6d il_realloc(aForm
1650: 41 63 74 69 6f 6e 2c 20 28 6e 46 6f 72 6d 41 63 Action, (nFormAc
1660: 74 69 6f 6e 2b 31 29 2a 73 69 7a 65 6f 66 28 63 tion+1)*sizeof(c
1670: 68 61 72 2a 29 29 3b 0a 20 20 20 20 61 46 6f 72 har*));. aFor
1680: 6d 41 63 74 69 6f 6e 5b 6e 46 6f 72 6d 41 63 74 mAction[nFormAct
1690: 69 6f 6e 2b 2b 5d 20 3d 20 7a 4c 69 6e 6b 3b 0a ion++] = zLink;.
16a0: 20 20 20 20 6e 20 3d 20 6e 46 6f 72 6d 41 63 74 n = nFormAct
16b0: 69 6f 6e 3b 0a 20 20 20 20 40 20 3c 66 6f 72 6d ion;. @ <form
16c0: 20 69 64 3d 22 66 6f 72 6d 25 64 28 6e 29 22 20 id="form%d(n)"
16d0: 6d 65 74 68 6f 64 3d 22 50 4f 53 54 22 20 61 63 method="POST" ac
16e0: 74 69 6f 6e 3d 27 25 52 2f 6c 6f 67 69 6e 27 20 tion='%R/login'
16f0: 25 73 28 7a 4f 74 68 65 72 41 72 67 73 29 3e 0a %s(zOtherArgs)>.
1700: 20 20 7d 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 47 65 6e }.}../*.** Gen
1710: 65 72 61 74 65 20 6a 61 76 61 73 63 72 69 70 74 erate javascript
1720: 20 74 68 61 74 20 77 69 6c 6c 20 73 65 74 20 74 that will set t
1730: 68 65 20 68 72 65 66 3d 20 61 74 74 72 69 62 75 he href= attribu
1740: 74 65 20 6f 6e 20 61 6c 6c 20 61 6e 63 68 6f 72 te on all anchor
1750: 73 2e 0a 2a 2f 0a 76 6f 69 64 20 73 74 79 6c 65 s..*/.void style
1760: 5f 72 65 73 6f 6c 76 65 5f 68 72 65 66 28 76 6f _resolve_href(vo
1770: 69 64 29 7b 0a 20 20 69 6e 74 20 69 3b 0a 20 20 id){. int i;.
1780: 69 6e 74 20 6e 44 65 6c 61 79 20 3d 20 64 62 5f int nDelay = db_
1790: 67 65 74 5f 69 6e 74 28 22 61 75 74 6f 2d 68 79 get_int("auto-hy
17a0: 70 65 72 6c 69 6e 6b 2d 64 65 6c 61 79 22 2c 31 perlink-delay",1
17b0: 30 29 3b 0a 20 20 69 66 28 20 21 67 2e 70 65 72 0);. if( !g.per
17c0: 6d 2e 48 79 70 65 72 6c 69 6e 6b 20 29 20 72 65 m.Hyperlink ) re
17d0: 74 75 72 6e 3b 0a 20 20 69 66 28 20 6e 48 72 65 turn;. if( nHre
17e0: 66 3d 3d 30 20 26 26 20 6e 46 6f 72 6d 41 63 74 f==0 && nFormAct
17f0: 69 6f 6e 3d 3d 30 20 29 20 72 65 74 75 72 6e 3b ion==0 ) return;
1800: 0a 20 20 40 20 3c 73 63 72 69 70 74 3e 0a 20 20 . @ <script>.
1810: 40 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c @ function setAl
1820: 6c 48 72 65 66 73 28 29 7b 0a 20 20 69 66 28 20 lHrefs(){. if(
1830: 67 2e 6a 61 76 61 73 63 72 69 70 74 48 79 70 65 g.javascriptHype
1840: 72 6c 69 6e 6b 20 29 7b 0a 20 20 20 20 66 6f 72 rlink ){. for
1850: 28 69 3d 30 3b 20 69 3c 6e 48 72 65 66 3b 20 69 (i=0; i<nHref; i
1860: 2b 2b 29 7b 0a 20 20 20 20 20 20 40 20 67 65 62 ++){. @ geb
1870: 69 28 22 61 25 64 28 69 2b 31 29 22 29 2e 68 72 i("a%d(i+1)").hr
1880: 65 66 3d 22 25 73 28 61 48 72 65 66 5b 69 5d 29 ef="%s(aHref[i])
1890: 22 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 66 ";. }. }. f
18a0: 6f 72 28 69 3d 30 3b 20 69 3c 6e 46 6f 72 6d 41 or(i=0; i<nFormA
18b0: 63 74 69 6f 6e 3b 20 69 2b 2b 29 7b 0a 20 20 20 ction; i++){.
18c0: 20 40 20 67 65 62 69 28 22 66 6f 72 6d 25 64 28 @ gebi("form%d(
18d0: 69 2b 31 29 22 29 2e 61 63 74 69 6f 6e 3d 22 25 i+1)").action="%
18e0: 73 28 61 46 6f 72 6d 41 63 74 69 6f 6e 5b 69 5d s(aFormAction[i]
18f0: 29 22 3b 0a 20 20 7d 0a 20 20 40 20 7d 0a 20 20 )";. }. @ }.
1900: 69 66 28 20 73 71 6c 69 74 65 33 5f 73 74 72 67 if( sqlite3_strg
1910: 6c 6f 62 28 22 2a 4f 70 65 72 61 20 4d 69 6e 69 lob("*Opera Mini
1920: 2f 5b 31 2d 39 5d 2a 22 2c 20 50 28 22 48 54 54 /[1-9]*", P("HTT
1930: 50 5f 55 53 45 52 5f 41 47 45 4e 54 22 29 29 3d P_USER_AGENT"))=
1940: 3d 30 20 29 7b 0a 20 20 20 20 2f 2a 20 53 70 65 =0 ){. /* Spe
1950: 63 69 61 6c 20 63 61 73 65 20 66 6f 72 20 4f 70 cial case for Op
1960: 65 72 61 20 4d 69 6e 69 2c 20 77 68 69 63 68 20 era Mini, which
1970: 65 78 65 63 75 74 65 73 20 4a 53 20 73 65 72 76 executes JS serv
1980: 65 72 2d 73 69 64 65 20 2a 2f 0a 20 20 20 20 40 er-side */. @
1990: 20 76 61 72 20 69 73 4f 70 65 72 61 4d 69 6e 69 var isOperaMini
19a0: 20 3d 20 4f 62 6a 65 63 74 2e 70 72 6f 74 6f 74 = Object.protot
19b0: 79 70 65 2e 74 6f 53 74 72 69 6e 67 2e 63 61 6c ype.toString.cal
19c0: 6c 28 77 69 6e 64 6f 77 2e 6f 70 65 72 61 6d 69 l(window.operami
19d0: 6e 69 29 0a 20 20 20 20 40 20 20 20 20 20 20 20 ni). @
19e0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 3d 3d 20 ===
19f0: 22 5b 6f 62 6a 65 63 74 20 4f 70 65 72 61 4d 69 "[object OperaMi
1a00: 6e 69 5d 22 3b 0a 20 20 20 20 40 20 69 66 28 20 ni]";. @ if(
1a10: 69 73 4f 70 65 72 61 4d 69 6e 69 20 29 7b 0a 20 isOperaMini ){.
1a20: 20 20 20 40 20 20 20 73 65 74 54 69 6d 65 6f 75 @ setTimeou
1a30: 74 28 22 73 65 74 41 6c 6c 48 72 65 66 73 28 29 t("setAllHrefs()
1a40: 3b 22 2c 25 64 28 6e 44 65 6c 61 79 29 29 3b 0a ;",%d(nDelay));.
1a50: 20 20 20 20 40 20 7d 0a 20 20 7d 65 6c 73 65 20 @ }. }else
1a60: 69 66 28 20 64 62 5f 67 65 74 5f 62 6f 6f 6c 65 if( db_get_boole
1a70: 61 6e 28 22 61 75 74 6f 2d 68 79 70 65 72 6c 69 an("auto-hyperli
1a80: 6e 6b 2d 69 73 68 75 6d 61 6e 22 2c 30 29 20 26 nk-ishuman",0) &
1a90: 26 20 67 2e 69 73 48 75 6d 61 6e 20 29 7b 0a 20 & g.isHuman ){.
1aa0: 20 20 20 2f 2a 20 41 63 74 69 76 65 20 68 79 70 /* Active hyp
1ab0: 65 72 6c 69 6e 6b 73 20 61 66 74 65 72 20 61 20 erlinks after a
1ac0: 64 65 6c 61 79 20 2a 2f 0a 20 20 20 20 40 20 73 delay */. @ s
1ad0: 65 74 54 69 6d 65 6f 75 74 28 22 73 65 74 41 6c etTimeout("setAl
1ae0: 6c 48 72 65 66 73 28 29 3b 22 2c 25 64 28 6e 44 lHrefs();",%d(nD
1af0: 65 6c 61 79 29 29 3b 0a 20 20 7d 65 6c 73 65 20 elay));. }else
1b00: 69 66 28 20 64 62 5f 67 65 74 5f 62 6f 6f 6c 65 if( db_get_boole
1b10: 61 6e 28 22 61 75 74 6f 2d 68 79 70 65 72 6c 69 an("auto-hyperli
1b20: 6e 6b 2d 6d 6f 75 73 65 6f 76 65 72 22 2c 30 29 nk-mouseover",0)
1b30: 20 29 7b 0a 20 20 20 20 2f 2a 20 52 65 71 75 69 ){. /* Requi
1b40: 72 65 20 6d 6f 75 73 65 20 6d 6f 76 65 6d 65 6e re mouse movemen
1b50: 74 20 62 65 66 6f 72 65 20 73 74 61 72 74 69 6e t before startin
1b60: 67 20 74 68 65 20 74 65 69 6d 20 74 68 61 74 20 g the teim that
1b70: 77 69 6c 6c 0a 20 20 20 20 2a 2a 20 61 63 74 69 will. ** acti
1b80: 76 61 74 69 6e 67 20 68 79 70 65 72 6c 69 6e 6b vating hyperlink
1b90: 73 20 2a 2f 0a 20 20 20 20 40 20 64 6f 63 75 6d s */. @ docum
1ba0: 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 73 42 ent.getElementsB
1bb0: 79 54 61 67 4e 61 6d 65 28 22 62 6f 64 79 22 29 yTagName("body")
1bc0: 5b 30 5d 2e 6f 6e 6d 6f 75 73 65 6d 6f 76 65 3d [0].onmousemove=
1bd0: 66 75 6e 63 74 69 6f 6e 28 29 7b 0a 20 20 20 20 function(){.
1be0: 40 20 20 20 73 65 74 54 69 6d 65 6f 75 74 28 22 @ setTimeout("
1bf0: 73 65 74 41 6c 6c 48 72 65 66 73 28 29 3b 22 2c setAllHrefs();",
1c00: 25 64 28 6e 44 65 6c 61 79 29 29 3b 0a 20 20 20 %d(nDelay));.
1c10: 20 40 20 20 20 74 68 69 73 2e 6f 6e 6d 6f 75 73 @ this.onmous
1c20: 65 6d 6f 76 65 20 3d 20 6e 75 6c 6c 3b 0a 20 20 emove = null;.
1c30: 20 20 40 20 7d 0a 20 20 7d 65 6c 73 65 7b 0a 20 @ }. }else{.
1c40: 20 20 20 2f 2a 20 41 63 74 69 76 65 20 68 79 70 /* Active hyp
1c50: 65 72 6c 69 6e 6b 73 20 61 66 74 65 72 20 61 20 erlinks after a
1c60: 64 65 6c 61 79 20 2a 2f 0a 20 20 20 20 40 20 73 delay */. @ s
1c70: 65 74 54 69 6d 65 6f 75 74 28 22 73 65 74 41 6c etTimeout("setAl
1c80: 6c 48 72 65 66 73 28 29 3b 22 2c 25 64 28 6e 44 lHrefs();",%d(nD
1c90: 65 6c 61 79 29 29 3b 0a 20 20 7d 0a 20 20 40 20 elay));. }. @
1ca0: 3c 2f 73 63 72 69 70 74 3e 0a 7d 0a 0a 2f 2a 0a </script>.}../*.
1cb0: 2a 2a 20 41 64 64 20 61 20 6e 65 77 20 65 6c 65 ** Add a new ele
1cc0: 6d 65 6e 74 20 74 6f 20 74 68 65 20 73 75 62 6d ment to the subm
1cd0: 65 6e 75 0a 2a 2f 0a 76 6f 69 64 20 73 74 79 6c enu.*/.void styl
1ce0: 65 5f 73 75 62 6d 65 6e 75 5f 65 6c 65 6d 65 6e e_submenu_elemen
1cf0: 74 28 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 t(. const char
1d00: 2a 7a 4c 61 62 65 6c 2c 0a 20 20 63 6f 6e 73 74 *zLabel,. const
1d10: 20 63 68 61 72 20 2a 7a 54 69 74 6c 65 2c 0a 20 char *zTitle,.
1d20: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 7a 4c 69 const char *zLi
1d30: 6e 6b 2c 0a 20 20 2e 2e 2e 0a 29 7b 0a 20 20 76 nk,. ....){. v
1d40: 61 5f 6c 69 73 74 20 61 70 3b 0a 20 20 61 73 73 a_list ap;. ass
1d50: 65 72 74 28 20 6e 53 75 62 6d 65 6e 75 20 3c 20 ert( nSubmenu <
1d60: 73 69 7a 65 6f 66 28 61 53 75 62 6d 65 6e 75 29 sizeof(aSubmenu)
1d70: 2f 73 69 7a 65 6f 66 28 61 53 75 62 6d 65 6e 75 /sizeof(aSubmenu
1d80: 5b 30 5d 29 20 29 3b 0a 20 20 61 53 75 62 6d 65 [0]) );. aSubme
1d90: 6e 75 5b 6e 53 75 62 6d 65 6e 75 5d 2e 7a 4c 61 nu[nSubmenu].zLa
1da0: 62 65 6c 20 3d 20 7a 4c 61 62 65 6c 3b 0a 20 20 bel = zLabel;.
1db0: 61 53 75 62 6d 65 6e 75 5b 6e 53 75 62 6d 65 6e aSubmenu[nSubmen
1dc0: 75 5d 2e 7a 54 69 74 6c 65 20 3d 20 7a 54 69 74 u].zTitle = zTit
1dd0: 6c 65 20 3f 20 7a 54 69 74 6c 65 20 3a 20 7a 4c le ? zTitle : zL
1de0: 61 62 65 6c 3b 0a 20 20 76 61 5f 73 74 61 72 74 abel;. va_start
1df0: 28 61 70 2c 20 7a 4c 69 6e 6b 29 3b 0a 20 20 61 (ap, zLink);. a
1e00: 53 75 62 6d 65 6e 75 5b 6e 53 75 62 6d 65 6e 75 Submenu[nSubmenu
1e10: 5d 2e 7a 4c 69 6e 6b 20 3d 20 76 6d 70 72 69 6e ].zLink = vmprin
1e20: 74 66 28 7a 4c 69 6e 6b 2c 20 61 70 29 3b 0a 20 tf(zLink, ap);.
1e30: 20 76 61 5f 65 6e 64 28 61 70 29 3b 0a 20 20 6e va_end(ap);. n
1e40: 53 75 62 6d 65 6e 75 2b 2b 3b 0a 7d 0a 76 6f 69 Submenu++;.}.voi
1e50: 64 20 73 74 79 6c 65 5f 73 75 62 6d 65 6e 75 5f d style_submenu_
1e60: 65 6e 74 72 79 28 0a 20 20 63 6f 6e 73 74 20 63 entry(. const c
1e70: 68 61 72 20 2a 7a 4e 61 6d 65 2c 20 20 20 20 20 har *zName,
1e80: 20 20 2f 2a 20 51 75 65 72 79 20 70 61 72 61 6d /* Query param
1e90: 65 74 65 72 20 6e 61 6d 65 20 2a 2f 0a 20 20 63 eter name */. c
1ea0: 6f 6e 73 74 20 63 68 61 72 20 2a 7a 4c 61 62 65 onst char *zLabe
1eb0: 6c 2c 20 20 20 20 20 20 2f 2a 20 4c 61 62 65 6c l, /* Label
1ec0: 20 62 65 66 6f 72 65 20 74 68 65 20 65 6e 74 72 before the entr
1ed0: 79 20 62 6f 78 20 2a 2f 0a 20 20 69 6e 74 20 69 y box */. int i
1ee0: 53 69 7a 65 2c 20 20 20 20 20 20 20 20 20 20 20 Size,
1ef0: 20 20 20 20 2f 2a 20 53 69 7a 65 20 6f 66 20 74 /* Size of t
1f00: 68 65 20 65 6e 74 72 79 20 62 6f 78 20 2a 2f 0a he entry box */.
1f10: 20 20 69 6e 74 20 69 73 44 69 73 61 62 6c 65 64 int isDisabled
1f20: 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 54 72 /* Tr
1f30: 75 65 20 69 66 20 64 69 73 61 62 6c 65 64 20 2a ue if disabled *
1f40: 2f 0a 29 7b 0a 20 20 61 73 73 65 72 74 28 20 6e /.){. assert( n
1f50: 53 75 62 6d 65 6e 75 43 74 72 6c 20 3c 20 41 72 SubmenuCtrl < Ar
1f60: 72 61 79 53 69 7a 65 28 61 53 75 62 6d 65 6e 75 raySize(aSubmenu
1f70: 43 74 72 6c 29 20 29 3b 0a 20 20 61 53 75 62 6d Ctrl) );. aSubm
1f80: 65 6e 75 43 74 72 6c 5b 6e 53 75 62 6d 65 6e 75 enuCtrl[nSubmenu
1f90: 43 74 72 6c 5d 2e 7a 4e 61 6d 65 20 3d 20 7a 4e Ctrl].zName = zN
1fa0: 61 6d 65 3b 0a 20 20 61 53 75 62 6d 65 6e 75 43 ame;. aSubmenuC
1fb0: 74 72 6c 5b 6e 53 75 62 6d 65 6e 75 43 74 72 6c trl[nSubmenuCtrl
1fc0: 5d 2e 7a 4c 61 62 65 6c 20 3d 20 7a 4c 61 62 65 ].zLabel = zLabe
1fd0: 6c 3b 0a 20 20 61 53 75 62 6d 65 6e 75 43 74 72 l;. aSubmenuCtr
1fe0: 6c 5b 6e 53 75 62 6d 65 6e 75 43 74 72 6c 5d 2e l[nSubmenuCtrl].
1ff0: 69 53 69 7a 65 20 3d 20 69 53 69 7a 65 3b 0a 20 iSize = iSize;.
2000: 20 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b 6e 53 aSubmenuCtrl[nS
2010: 75 62 6d 65 6e 75 43 74 72 6c 5d 2e 69 73 44 69 ubmenuCtrl].isDi
2020: 73 61 62 6c 65 64 20 3d 20 69 73 44 69 73 61 62 sabled = isDisab
2030: 6c 65 64 3b 0a 20 20 61 53 75 62 6d 65 6e 75 43 led;. aSubmenuC
2040: 74 72 6c 5b 6e 53 75 62 6d 65 6e 75 43 74 72 6c trl[nSubmenuCtrl
2050: 5d 2e 65 54 79 70 65 20 3d 20 46 46 5f 45 4e 54 ].eType = FF_ENT
2060: 52 59 3b 0a 20 20 6e 53 75 62 6d 65 6e 75 43 74 RY;. nSubmenuCt
2070: 72 6c 2b 2b 3b 0a 7d 0a 76 6f 69 64 20 73 74 79 rl++;.}.void sty
2080: 6c 65 5f 73 75 62 6d 65 6e 75 5f 62 69 6e 61 72 le_submenu_binar
2090: 79 28 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 y(. const char
20a0: 2a 7a 4e 61 6d 65 2c 20 20 20 20 20 20 20 2f 2a *zName, /*
20b0: 20 51 75 65 72 79 20 70 61 72 61 6d 65 74 65 72 Query parameter
20c0: 20 6e 61 6d 65 20 2a 2f 0a 20 20 63 6f 6e 73 74 name */. const
20d0: 20 63 68 61 72 20 2a 7a 54 72 75 65 2c 20 20 20 char *zTrue,
20e0: 20 20 20 20 2f 2a 20 4c 61 62 65 6c 20 74 6f 20 /* Label to
20f0: 73 68 6f 77 20 77 68 65 6e 20 70 61 72 61 6d 65 show when parame
2100: 74 65 72 20 69 73 20 74 72 75 65 20 2a 2f 0a 20 ter is true */.
2110: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 7a 46 61 const char *zFa
2120: 6c 73 65 2c 20 20 20 20 20 20 2f 2a 20 4c 61 62 lse, /* Lab
2130: 65 6c 20 74 6f 20 73 68 6f 77 20 77 68 65 6e 20 el to show when
2140: 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 69 73 the parameter is
2150: 20 66 61 6c 73 65 20 2a 2f 0a 20 20 69 6e 74 20 false */. int
2160: 69 73 44 69 73 61 62 6c 65 64 20 20 20 20 20 20 isDisabled
2170: 20 20 20 20 20 2f 2a 20 54 72 75 65 20 69 66 20 /* True if
2180: 74 68 69 73 20 63 6f 6e 74 72 6f 6c 20 69 73 20 this control is
2190: 64 69 73 61 62 6c 65 64 20 2a 2f 0a 29 7b 0a 20 disabled */.){.
21a0: 20 61 73 73 65 72 74 28 20 6e 53 75 62 6d 65 6e assert( nSubmen
21b0: 75 43 74 72 6c 20 3c 20 41 72 72 61 79 53 69 7a uCtrl < ArraySiz
21c0: 65 28 61 53 75 62 6d 65 6e 75 43 74 72 6c 29 20 e(aSubmenuCtrl)
21d0: 29 3b 0a 20 20 61 53 75 62 6d 65 6e 75 43 74 72 );. aSubmenuCtr
21e0: 6c 5b 6e 53 75 62 6d 65 6e 75 43 74 72 6c 5d 2e l[nSubmenuCtrl].
21f0: 7a 4e 61 6d 65 20 3d 20 7a 4e 61 6d 65 3b 0a 20 zName = zName;.
2200: 20 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b 6e 53 aSubmenuCtrl[nS
2210: 75 62 6d 65 6e 75 43 74 72 6c 5d 2e 7a 4c 61 62 ubmenuCtrl].zLab
2220: 65 6c 20 3d 20 7a 54 72 75 65 3b 0a 20 20 61 53 el = zTrue;. aS
2230: 75 62 6d 65 6e 75 43 74 72 6c 5b 6e 53 75 62 6d ubmenuCtrl[nSubm
2240: 65 6e 75 43 74 72 6c 5d 2e 7a 46 61 6c 73 65 20 enuCtrl].zFalse
2250: 3d 20 7a 46 61 6c 73 65 3b 0a 20 20 61 53 75 62 = zFalse;. aSub
2260: 6d 65 6e 75 43 74 72 6c 5b 6e 53 75 62 6d 65 6e menuCtrl[nSubmen
2270: 75 43 74 72 6c 5d 2e 69 73 44 69 73 61 62 6c 65 uCtrl].isDisable
2280: 64 20 3d 20 69 73 44 69 73 61 62 6c 65 64 3b 0a d = isDisabled;.
2290: 20 20 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b 6e aSubmenuCtrl[n
22a0: 53 75 62 6d 65 6e 75 43 74 72 6c 5d 2e 65 54 79 SubmenuCtrl].eTy
22b0: 70 65 20 3d 20 46 46 5f 42 49 4e 41 52 59 3b 0a pe = FF_BINARY;.
22c0: 20 20 6e 53 75 62 6d 65 6e 75 43 74 72 6c 2b 2b nSubmenuCtrl++
22d0: 3b 0a 7d 0a 76 6f 69 64 20 73 74 79 6c 65 5f 73 ;.}.void style_s
22e0: 75 62 6d 65 6e 75 5f 6d 75 6c 74 69 63 68 6f 69 ubmenu_multichoi
22f0: 63 65 28 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 ce(. const char
2300: 20 2a 7a 4e 61 6d 65 2c 20 20 20 20 20 20 20 2f *zName, /
2310: 2a 20 51 75 65 72 79 20 70 61 72 61 6d 65 74 65 * Query paramete
2320: 72 20 6e 61 6d 65 20 2a 2f 0a 20 20 69 6e 74 20 r name */. int
2330: 6e 43 68 6f 69 63 65 2c 20 20 20 20 20 20 20 20 nChoice,
2340: 20 20 20 20 20 2f 2a 20 4e 75 6d 62 65 72 20 6f /* Number o
2350: 66 20 6f 70 74 69 6f 6e 73 20 2a 2f 0a 20 20 63 f options */. c
2360: 6f 6e 73 74 20 63 68 61 72 20 2a 2a 61 7a 43 68 onst char **azCh
2370: 6f 69 63 65 2c 20 20 20 2f 2a 20 76 61 6c 75 65 oice, /* value
2380: 2f 64 69 73 70 6c 61 79 20 70 61 69 72 73 2e 20 /display pairs.
2390: 20 32 2a 6e 43 68 6f 69 63 65 20 65 6e 74 72 69 2*nChoice entri
23a0: 65 73 20 2a 2f 0a 20 20 69 6e 74 20 69 73 44 69 es */. int isDi
23b0: 73 61 62 6c 65 64 20 20 20 20 20 20 20 20 20 20 sabled
23c0: 20 2f 2a 20 54 72 75 65 20 69 66 20 74 68 69 73 /* True if this
23d0: 20 63 6f 6e 74 72 6f 6c 20 69 73 20 64 69 73 61 control is disa
23e0: 62 6c 65 64 20 2a 2f 0a 29 7b 0a 20 20 61 73 73 bled */.){. ass
23f0: 65 72 74 28 20 6e 53 75 62 6d 65 6e 75 43 74 72 ert( nSubmenuCtr
2400: 6c 20 3c 20 41 72 72 61 79 53 69 7a 65 28 61 53 l < ArraySize(aS
2410: 75 62 6d 65 6e 75 43 74 72 6c 29 20 29 3b 0a 20 ubmenuCtrl) );.
2420: 20 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b 6e 53 aSubmenuCtrl[nS
2430: 75 62 6d 65 6e 75 43 74 72 6c 5d 2e 7a 4e 61 6d ubmenuCtrl].zNam
2440: 65 20 3d 20 7a 4e 61 6d 65 3b 0a 20 20 61 53 75 e = zName;. aSu
2450: 62 6d 65 6e 75 43 74 72 6c 5b 6e 53 75 62 6d 65 bmenuCtrl[nSubme
2460: 6e 75 43 74 72 6c 5d 2e 69 53 69 7a 65 20 3d 20 nuCtrl].iSize =
2470: 6e 43 68 6f 69 63 65 3b 0a 20 20 61 53 75 62 6d nChoice;. aSubm
2480: 65 6e 75 43 74 72 6c 5b 6e 53 75 62 6d 65 6e 75 enuCtrl[nSubmenu
2490: 43 74 72 6c 5d 2e 61 7a 43 68 6f 69 63 65 20 3d Ctrl].azChoice =
24a0: 20 61 7a 43 68 6f 69 63 65 3b 0a 20 20 61 53 75 azChoice;. aSu
24b0: 62 6d 65 6e 75 43 74 72 6c 5b 6e 53 75 62 6d 65 bmenuCtrl[nSubme
24c0: 6e 75 43 74 72 6c 5d 2e 69 73 44 69 73 61 62 6c nuCtrl].isDisabl
24d0: 65 64 20 3d 20 69 73 44 69 73 61 62 6c 65 64 3b ed = isDisabled;
24e0: 0a 20 20 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b . aSubmenuCtrl[
24f0: 6e 53 75 62 6d 65 6e 75 43 74 72 6c 5d 2e 65 54 nSubmenuCtrl].eT
2500: 79 70 65 20 3d 20 46 46 5f 4d 55 4c 54 49 3b 0a ype = FF_MULTI;.
2510: 20 20 6e 53 75 62 6d 65 6e 75 43 74 72 6c 2b 2b nSubmenuCtrl++
2520: 3b 0a 7d 0a 0a 0a 2f 2a 0a 2a 2a 20 43 6f 6d 70 ;.}.../*.** Comp
2530: 61 72 65 20 74 77 6f 20 73 75 62 6d 65 6e 75 20 are two submenu
2540: 69 74 65 6d 73 20 66 6f 72 20 73 6f 72 74 69 6e items for sortin
2550: 67 20 70 75 72 70 6f 73 65 73 0a 2a 2f 0a 73 74 g purposes.*/.st
2560: 61 74 69 63 20 69 6e 74 20 73 75 62 6d 65 6e 75 atic int submenu
2570: 43 6f 6d 70 61 72 65 28 63 6f 6e 73 74 20 76 6f Compare(const vo
2580: 69 64 20 2a 61 2c 20 63 6f 6e 73 74 20 76 6f 69 id *a, const voi
2590: 64 20 2a 62 29 7b 0a 20 20 63 6f 6e 73 74 20 73 d *b){. const s
25a0: 74 72 75 63 74 20 53 75 62 6d 65 6e 75 20 2a 41 truct Submenu *A
25b0: 20 3d 20 28 63 6f 6e 73 74 20 73 74 72 75 63 74 = (const struct
25c0: 20 53 75 62 6d 65 6e 75 2a 29 61 3b 0a 20 20 63 Submenu*)a;. c
25d0: 6f 6e 73 74 20 73 74 72 75 63 74 20 53 75 62 6d onst struct Subm
25e0: 65 6e 75 20 2a 42 20 3d 20 28 63 6f 6e 73 74 20 enu *B = (const
25f0: 73 74 72 75 63 74 20 53 75 62 6d 65 6e 75 2a 29 struct Submenu*)
2600: 62 3b 0a 20 20 72 65 74 75 72 6e 20 66 6f 73 73 b;. return foss
2610: 69 6c 5f 73 74 72 63 6d 70 28 41 2d 3e 7a 4c 61 il_strcmp(A->zLa
2620: 62 65 6c 2c 20 42 2d 3e 7a 4c 61 62 65 6c 29 3b bel, B->zLabel);
2630: 0a 7d 0a 0a 2f 2a 20 55 73 65 20 74 68 69 73 20 .}../* Use this
2640: 66 6f 72 20 74 68 65 20 24 63 75 72 72 65 6e 74 for the $current
2650: 5f 70 61 67 65 20 76 61 72 69 61 62 6c 65 20 69 _page variable i
2660: 66 20 69 74 20 69 73 20 6e 6f 74 20 4e 55 4c 4c f it is not NULL
2670: 2e 20 20 49 66 20 69 74 20 69 73 0a 2a 2a 20 4e . If it is.** N
2680: 55 4c 4c 20 74 68 65 6e 20 75 73 65 20 67 2e 7a ULL then use g.z
2690: 50 61 74 68 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 Path..*/.static
26a0: 63 68 61 72 20 2a 6c 6f 63 61 6c 5f 7a 43 75 72 char *local_zCur
26b0: 72 65 6e 74 50 61 67 65 20 3d 20 30 3b 0a 0a 2f rentPage = 0;../
26c0: 2a 0a 2a 2a 20 53 65 74 20 74 68 65 20 64 65 73 *.** Set the des
26d0: 69 72 65 64 20 24 63 75 72 72 65 6e 74 5f 70 61 ired $current_pa
26e0: 67 65 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20 ge to something
26f0: 6f 74 68 65 72 20 74 68 61 6e 20 67 2e 7a 50 61 other than g.zPa
2700: 74 68 0a 2a 2f 0a 76 6f 69 64 20 73 74 79 6c 65 th.*/.void style
2710: 5f 73 65 74 5f 63 75 72 72 65 6e 74 5f 70 61 67 _set_current_pag
2720: 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 7a 46 e(const char *zF
2730: 6f 72 6d 61 74 2c 20 2e 2e 2e 29 7b 0a 20 20 66 ormat, ...){. f
2740: 6f 73 73 69 6c 5f 66 72 65 65 28 6c 6f 63 61 6c ossil_free(local
2750: 5f 7a 43 75 72 72 65 6e 74 50 61 67 65 29 3b 0a _zCurrentPage);.
2760: 20 20 69 66 28 20 7a 46 6f 72 6d 61 74 3d 3d 30 if( zFormat==0
2770: 20 29 7b 0a 20 20 20 20 6c 6f 63 61 6c 5f 7a 43 ){. local_zC
2780: 75 72 72 65 6e 74 50 61 67 65 20 3d 20 30 3b 0a urrentPage = 0;.
2790: 20 20 7d 65 6c 73 65 7b 0a 20 20 20 20 76 61 5f }else{. va_
27a0: 6c 69 73 74 20 61 70 3b 0a 20 20 20 20 76 61 5f list ap;. va_
27b0: 73 74 61 72 74 28 61 70 2c 20 7a 46 6f 72 6d 61 start(ap, zForma
27c0: 74 29 3b 0a 20 20 20 20 6c 6f 63 61 6c 5f 7a 43 t);. local_zC
27d0: 75 72 72 65 6e 74 50 61 67 65 20 3d 20 76 6d 70 urrentPage = vmp
27e0: 72 69 6e 74 66 28 7a 46 6f 72 6d 61 74 2c 20 61 rintf(zFormat, a
27f0: 70 29 3b 0a 20 20 20 20 76 61 5f 65 6e 64 28 61 p);. va_end(a
2800: 70 29 3b 0a 20 20 7d 0a 7d 0a 0a 2f 2a 0a 2a 2a p);. }.}../*.**
2810: 20 43 72 65 61 74 65 20 61 20 54 48 31 20 76 61 Create a TH1 va
2820: 72 69 61 62 6c 65 20 63 6f 6e 74 61 69 6e 69 6e riable containin
2830: 67 20 74 68 65 20 55 52 4c 20 66 6f 72 20 74 68 g the URL for th
2840: 65 20 73 70 65 63 69 66 69 65 64 20 63 6f 6e 66 e specified conf
2850: 69 67 20 72 65 73 6f 75 72 63 65 2e 0a 2a 2a 20 ig resource..**
2860: 54 68 65 20 72 65 73 75 6c 74 69 6e 67 20 76 61 The resulting va
2870: 72 69 61 62 6c 65 20 6e 61 6d 65 20 77 69 6c 6c riable name will
2880: 20 62 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 be of the form
2890: 24 5b 7a 56 61 72 50 72 65 66 69 78 5d 5f 75 72 $[zVarPrefix]_ur
28a0: 6c 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 l..*/.static voi
28b0: 64 20 75 72 6c 5f 76 61 72 28 0a 20 20 63 6f 6e d url_var(. con
28c0: 73 74 20 63 68 61 72 20 2a 7a 56 61 72 50 72 65 st char *zVarPre
28d0: 66 69 78 2c 0a 20 20 63 6f 6e 73 74 20 63 68 61 fix,. const cha
28e0: 72 20 2a 7a 43 6f 6e 66 69 67 4e 61 6d 65 2c 0a r *zConfigName,.
28f0: 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 7a 50 const char *zP
2900: 61 67 65 4e 61 6d 65 0a 29 7b 0a 20 20 63 68 61 ageName.){. cha
2910: 72 20 2a 7a 4d 74 69 6d 65 20 3d 20 64 62 5f 67 r *zMtime = db_g
2920: 65 74 5f 6d 74 69 6d 65 28 7a 43 6f 6e 66 69 67 et_mtime(zConfig
2930: 4e 61 6d 65 2c 20 30 2c 20 30 29 3b 0a 20 20 63 Name, 0, 0);. c
2940: 68 61 72 20 2a 7a 55 72 6c 20 3d 20 6d 70 72 69 har *zUrl = mpri
2950: 6e 74 66 28 22 25 73 2f 25 73 2f 25 73 25 2e 35 ntf("%s/%s/%s%.5
2960: 73 22 2c 20 67 2e 7a 54 6f 70 2c 20 7a 50 61 67 s", g.zTop, zPag
2970: 65 4e 61 6d 65 2c 20 7a 4d 74 69 6d 65 2c 0a 20 eName, zMtime,.
2980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2990: 20 20 20 20 20 20 4d 41 4e 49 46 45 53 54 5f 55 MANIFEST_U
29a0: 55 49 44 29 3b 0a 20 20 63 68 61 72 20 2a 7a 56 UID);. char *zV
29b0: 61 72 4e 61 6d 65 20 3d 20 6d 70 72 69 6e 74 66 arName = mprintf
29c0: 28 22 25 73 5f 75 72 6c 22 2c 20 7a 56 61 72 50 ("%s_url", zVarP
29d0: 72 65 66 69 78 29 3b 0a 20 20 54 68 5f 53 74 6f refix);. Th_Sto
29e0: 72 65 28 7a 56 61 72 4e 61 6d 65 2c 20 7a 55 72 re(zVarName, zUr
29f0: 6c 29 3b 0a 20 20 66 72 65 65 28 7a 4d 74 69 6d l);. free(zMtim
2a00: 65 29 3b 0a 20 20 66 72 65 65 28 7a 55 72 6c 29 e);. free(zUrl)
2a10: 3b 0a 20 20 66 72 65 65 28 7a 56 61 72 4e 61 6d ;. free(zVarNam
2a20: 65 29 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 43 72 65 e);.}../*.** Cre
2a30: 61 74 65 20 61 20 54 48 31 20 76 61 72 69 61 62 ate a TH1 variab
2a40: 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 le containing th
2a50: 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 73 70 e URL for the sp
2a60: 65 63 69 66 69 65 64 20 63 6f 6e 66 69 67 20 69 ecified config i
2a70: 6d 61 67 65 2e 0a 2a 2a 20 54 68 65 20 72 65 73 mage..** The res
2a80: 75 6c 74 69 6e 67 20 76 61 72 69 61 62 6c 65 20 ulting variable
2a90: 6e 61 6d 65 20 77 69 6c 6c 20 62 65 20 6f 66 20 name will be of
2aa0: 74 68 65 20 66 6f 72 6d 20 24 5b 7a 49 6d 61 67 the form $[zImag
2ab0: 65 4e 61 6d 65 5d 5f 69 6d 61 67 65 5f 75 72 6c eName]_image_url
2ac0: 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 ..*/.static void
2ad0: 20 69 6d 61 67 65 5f 75 72 6c 5f 76 61 72 28 63 image_url_var(c
2ae0: 6f 6e 73 74 20 63 68 61 72 20 2a 7a 49 6d 61 67 onst char *zImag
2af0: 65 4e 61 6d 65 29 7b 0a 20 20 63 68 61 72 20 2a eName){. char *
2b00: 7a 56 61 72 50 72 65 66 69 78 20 3d 20 6d 70 72 zVarPrefix = mpr
2b10: 69 6e 74 66 28 22 25 73 5f 69 6d 61 67 65 22 2c intf("%s_image",
2b20: 20 7a 49 6d 61 67 65 4e 61 6d 65 29 3b 0a 20 20 zImageName);.
2b30: 63 68 61 72 20 2a 7a 43 6f 6e 66 69 67 4e 61 6d char *zConfigNam
2b40: 65 20 3d 20 6d 70 72 69 6e 74 66 28 22 25 73 2d e = mprintf("%s-
2b50: 69 6d 61 67 65 22 2c 20 7a 49 6d 61 67 65 4e 61 image", zImageNa
2b60: 6d 65 29 3b 0a 20 20 75 72 6c 5f 76 61 72 28 7a me);. url_var(z
2b70: 56 61 72 50 72 65 66 69 78 2c 20 7a 43 6f 6e 66 VarPrefix, zConf
2b80: 69 67 4e 61 6d 65 2c 20 7a 49 6d 61 67 65 4e 61 igName, zImageNa
2b90: 6d 65 29 3b 0a 20 20 66 72 65 65 28 7a 56 61 72 me);. free(zVar
2ba0: 50 72 65 66 69 78 29 3b 0a 20 20 66 72 65 65 28 Prefix);. free(
2bb0: 7a 43 6f 6e 66 69 67 4e 61 6d 65 29 3b 0a 7d 0a zConfigName);.}.
2bc0: 0a 2f 2a 0a 2a 2a 20 44 72 61 77 20 74 68 65 20 ./*.** Draw the
2bd0: 68 65 61 64 65 72 2e 0a 2a 2f 0a 76 6f 69 64 20 header..*/.void
2be0: 73 74 79 6c 65 5f 68 65 61 64 65 72 28 63 6f 6e style_header(con
2bf0: 73 74 20 63 68 61 72 20 2a 7a 54 69 74 6c 65 46 st char *zTitleF
2c00: 6f 72 6d 61 74 2c 20 2e 2e 2e 29 7b 0a 20 20 76 ormat, ...){. v
2c10: 61 5f 6c 69 73 74 20 61 70 3b 0a 20 20 63 68 61 a_list ap;. cha
2c20: 72 20 2a 7a 54 69 74 6c 65 3b 0a 20 20 63 6f 6e r *zTitle;. con
2c30: 73 74 20 63 68 61 72 20 2a 7a 48 65 61 64 65 72 st char *zHeader
2c40: 20 3d 20 73 6b 69 6e 5f 67 65 74 28 22 68 65 61 = skin_get("hea
2c50: 64 65 72 22 29 3b 0a 20 20 6c 6f 67 69 6e 5f 63 der");. login_c
2c60: 68 65 63 6b 5f 63 72 65 64 65 6e 74 69 61 6c 73 heck_credentials
2c70: 28 29 3b 0a 0a 20 20 76 61 5f 73 74 61 72 74 28 ();.. va_start(
2c80: 61 70 2c 20 7a 54 69 74 6c 65 46 6f 72 6d 61 74 ap, zTitleFormat
2c90: 29 3b 0a 20 20 7a 54 69 74 6c 65 20 3d 20 76 6d );. zTitle = vm
2ca0: 70 72 69 6e 74 66 28 7a 54 69 74 6c 65 46 6f 72 printf(zTitleFor
2cb0: 6d 61 74 2c 20 61 70 29 3b 0a 20 20 76 61 5f 65 mat, ap);. va_e
2cc0: 6e 64 28 61 70 29 3b 0a 0a 20 20 63 67 69 5f 64 nd(ap);.. cgi_d
2cd0: 65 73 74 69 6e 61 74 69 6f 6e 28 43 47 49 5f 48 estination(CGI_H
2ce0: 45 41 44 45 52 29 3b 0a 0a 20 20 40 20 3c 21 44 EADER);.. @ <!D
2cf0: 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 0a 20 20 OCTYPE html>..
2d00: 69 66 28 20 67 2e 74 68 54 72 61 63 65 20 29 20 if( g.thTrace )
2d10: 54 68 5f 54 72 61 63 65 28 22 42 45 47 49 4e 5f Th_Trace("BEGIN_
2d20: 48 45 41 44 45 52 3c 62 72 20 2f 3e 5c 6e 22 2c HEADER<br />\n",
2d30: 20 2d 31 29 3b 0a 0a 20 20 2f 2a 20 47 65 6e 65 -1);.. /* Gene
2d40: 72 61 74 65 20 74 68 65 20 68 65 61 64 65 72 20 rate the header
2d50: 75 70 20 74 68 72 6f 75 67 68 20 74 68 65 20 6d up through the m
2d60: 61 69 6e 20 6d 65 6e 75 20 2a 2f 0a 20 20 54 68 ain menu */. Th
2d70: 5f 53 74 6f 72 65 28 22 70 72 6f 6a 65 63 74 5f _Store("project_
2d80: 6e 61 6d 65 22 2c 20 64 62 5f 67 65 74 28 22 70 name", db_get("p
2d90: 72 6f 6a 65 63 74 2d 6e 61 6d 65 22 2c 22 55 6e roject-name","Un
2da0: 6e 61 6d 65 64 20 46 6f 73 73 69 6c 20 50 72 6f named Fossil Pro
2db0: 6a 65 63 74 22 29 29 3b 0a 20 20 54 68 5f 53 74 ject"));. Th_St
2dc0: 6f 72 65 28 22 74 69 74 6c 65 22 2c 20 7a 54 69 ore("title", zTi
2dd0: 74 6c 65 29 3b 0a 20 20 54 68 5f 53 74 6f 72 65 tle);. Th_Store
2de0: 28 22 62 61 73 65 75 72 6c 22 2c 20 67 2e 7a 42 ("baseurl", g.zB
2df0: 61 73 65 55 52 4c 29 3b 0a 20 20 54 68 5f 53 74 aseURL);. Th_St
2e00: 6f 72 65 28 22 73 65 63 75 72 65 75 72 6c 22 2c ore("secureurl",
2e10: 20 6c 6f 67 69 6e 5f 77 61 6e 74 73 5f 68 74 74 login_wants_htt
2e20: 70 73 5f 72 65 64 69 72 65 63 74 28 29 3f 20 67 ps_redirect()? g
2e30: 2e 7a 48 74 74 70 73 55 52 4c 3a 20 67 2e 7a 42 .zHttpsURL: g.zB
2e40: 61 73 65 55 52 4c 29 3b 0a 20 20 54 68 5f 53 74 aseURL);. Th_St
2e50: 6f 72 65 28 22 68 6f 6d 65 22 2c 20 67 2e 7a 54 ore("home", g.zT
2e60: 6f 70 29 3b 0a 20 20 54 68 5f 53 74 6f 72 65 28 op);. Th_Store(
2e70: 22 69 6e 64 65 78 5f 70 61 67 65 22 2c 20 64 62 "index_page", db
2e80: 5f 67 65 74 28 22 69 6e 64 65 78 2d 70 61 67 65 _get("index-page
2e90: 22 2c 22 2f 68 6f 6d 65 22 29 29 3b 0a 20 20 69 ","/home"));. i
2ea0: 66 28 20 6c 6f 63 61 6c 5f 7a 43 75 72 72 65 6e f( local_zCurren
2eb0: 74 50 61 67 65 3d 3d 30 20 29 20 73 74 79 6c 65 tPage==0 ) style
2ec0: 5f 73 65 74 5f 63 75 72 72 65 6e 74 5f 70 61 67 _set_current_pag
2ed0: 65 28 22 25 54 22 2c 20 67 2e 7a 50 61 74 68 29 e("%T", g.zPath)
2ee0: 3b 0a 20 20 54 68 5f 53 74 6f 72 65 28 22 63 75 ;. Th_Store("cu
2ef0: 72 72 65 6e 74 5f 70 61 67 65 22 2c 20 6c 6f 63 rrent_page", loc
2f00: 61 6c 5f 7a 43 75 72 72 65 6e 74 50 61 67 65 29 al_zCurrentPage)
2f10: 3b 0a 20 20 54 68 5f 53 74 6f 72 65 28 22 63 73 ;. Th_Store("cs
2f20: 72 66 5f 74 6f 6b 65 6e 22 2c 20 67 2e 7a 43 73 rf_token", g.zCs
2f30: 72 66 54 6f 6b 65 6e 29 3b 0a 20 20 54 68 5f 53 rfToken);. Th_S
2f40: 74 6f 72 65 28 22 72 65 6c 65 61 73 65 5f 76 65 tore("release_ve
2f50: 72 73 69 6f 6e 22 2c 20 52 45 4c 45 41 53 45 5f rsion", RELEASE_
2f60: 56 45 52 53 49 4f 4e 29 3b 0a 20 20 54 68 5f 53 VERSION);. Th_S
2f70: 74 6f 72 65 28 22 6d 61 6e 69 66 65 73 74 5f 76 tore("manifest_v
2f80: 65 72 73 69 6f 6e 22 2c 20 4d 41 4e 49 46 45 53 ersion", MANIFES
2f90: 54 5f 56 45 52 53 49 4f 4e 29 3b 0a 20 20 54 68 T_VERSION);. Th
2fa0: 5f 53 74 6f 72 65 28 22 6d 61 6e 69 66 65 73 74 _Store("manifest
2fb0: 5f 64 61 74 65 22 2c 20 4d 41 4e 49 46 45 53 54 _date", MANIFEST
2fc0: 5f 44 41 54 45 29 3b 0a 20 20 54 68 5f 53 74 6f _DATE);. Th_Sto
2fd0: 72 65 28 22 63 6f 6d 70 69 6c 65 72 5f 6e 61 6d re("compiler_nam
2fe0: 65 22 2c 20 43 4f 4d 50 49 4c 45 52 5f 4e 41 4d e", COMPILER_NAM
2ff0: 45 29 3b 0a 20 20 75 72 6c 5f 76 61 72 28 22 73 E);. url_var("s
3000: 74 79 6c 65 73 68 65 65 74 22 2c 20 22 63 73 73 tylesheet", "css
3010: 22 2c 20 22 73 74 79 6c 65 2e 63 73 73 22 29 3b ", "style.css");
3020: 0a 20 20 69 6d 61 67 65 5f 75 72 6c 5f 76 61 72 . image_url_var
3030: 28 22 6c 6f 67 6f 22 29 3b 0a 20 20 69 6d 61 67 ("logo");. imag
3040: 65 5f 75 72 6c 5f 76 61 72 28 22 62 61 63 6b 67 e_url_var("backg
3050: 72 6f 75 6e 64 22 29 3b 0a 20 20 69 66 28 20 21 round");. if( !
3060: 6c 6f 67 69 6e 5f 69 73 5f 6e 6f 62 6f 64 79 28 login_is_nobody(
3070: 29 20 29 7b 0a 20 20 20 20 54 68 5f 53 74 6f 72 ) ){. Th_Stor
3080: 65 28 22 6c 6f 67 69 6e 22 2c 20 67 2e 7a 4c 6f e("login", g.zLo
3090: 67 69 6e 29 3b 0a 20 20 7d 0a 20 20 69 66 28 20 gin);. }. if(
30a0: 67 2e 74 68 54 72 61 63 65 20 29 20 54 68 5f 54 g.thTrace ) Th_T
30b0: 72 61 63 65 28 22 42 45 47 49 4e 5f 48 45 41 44 race("BEGIN_HEAD
30c0: 45 52 5f 53 43 52 49 50 54 3c 62 72 20 2f 3e 5c ER_SCRIPT<br />\
30d0: 6e 22 2c 20 2d 31 29 3b 0a 20 20 54 68 5f 52 65 n", -1);. Th_Re
30e0: 6e 64 65 72 28 7a 48 65 61 64 65 72 29 3b 0a 20 nder(zHeader);.
30f0: 20 69 66 28 20 67 2e 74 68 54 72 61 63 65 20 29 if( g.thTrace )
3100: 20 54 68 5f 54 72 61 63 65 28 22 45 4e 44 5f 48 Th_Trace("END_H
3110: 45 41 44 45 52 3c 62 72 20 2f 3e 5c 6e 22 2c 20 EADER<br />\n",
3120: 2d 31 29 3b 0a 20 20 54 68 5f 55 6e 73 74 6f 72 -1);. Th_Unstor
3130: 65 28 22 74 69 74 6c 65 22 29 3b 20 20 20 2f 2a e("title"); /*
3140: 20 41 76 6f 69 64 20 63 6f 6c 6c 69 73 69 6f 6e Avoid collision
3150: 73 20 77 69 74 68 20 74 69 63 6b 65 74 20 66 69 s with ticket fi
3160: 65 6c 64 20 6e 61 6d 65 73 20 2a 2f 0a 20 20 63 eld names */. c
3170: 67 69 5f 64 65 73 74 69 6e 61 74 69 6f 6e 28 43 gi_destination(C
3180: 47 49 5f 42 4f 44 59 29 3b 0a 20 20 67 2e 63 67 GI_BODY);. g.cg
3190: 69 4f 75 74 70 75 74 20 3d 20 31 3b 0a 20 20 68 iOutput = 1;. h
31a0: 65 61 64 65 72 48 61 73 42 65 65 6e 47 65 6e 65 eaderHasBeenGene
31b0: 72 61 74 65 64 20 3d 20 31 3b 0a 20 20 73 69 64 rated = 1;. sid
31c0: 65 62 6f 78 55 73 65 64 20 3d 20 30 3b 0a 0a 20 eboxUsed = 0;..
31d0: 20 2f 2a 20 4d 61 6b 65 20 74 68 65 20 67 65 62 /* Make the geb
31e0: 69 28 78 29 20 66 75 6e 63 74 69 6f 6e 20 61 76 i(x) function av
31f0: 61 69 6c 61 62 6c 65 20 61 73 20 61 6e 20 61 6c ailable as an al
3200: 6d 6f 73 74 2d 61 6c 69 61 73 20 66 6f 72 0a 20 most-alias for.
3210: 20 2a 2a 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 ** document.get
3220: 45 6c 65 6d 65 6e 74 42 79 49 64 28 78 29 20 28 ElementById(x) (
3230: 65 78 63 65 70 74 20 74 68 61 74 20 69 74 20 74 except that it t
3240: 68 72 6f 77 73 20 61 6e 20 65 72 72 6f 72 0a 20 hrows an error.
3250: 20 2a 2a 20 69 66 20 74 68 65 20 65 6c 65 6d 65 ** if the eleme
3260: 6e 74 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 29 nt is not found)
3270: 2e 0a 20 20 2a 2a 0a 20 20 2a 2a 20 4d 61 69 6e .. **. ** Main
3280: 74 65 6e 61 6e 63 65 20 6e 6f 74 65 3a 20 74 68 tenance note: th
3290: 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 is function must
32a0: 20 6f 66 20 63 6f 75 72 73 65 20 62 65 20 61 76 of course be av
32b0: 61 69 6c 61 62 6c 65 0a 20 20 2a 2a 20 62 65 66 ailable. ** bef
32c0: 6f 72 65 20 69 74 20 69 73 20 63 61 6c 6c 65 64 ore it is called
32d0: 2e 20 49 74 20 22 73 68 6f 75 6c 64 22 20 67 6f . It "should" go
32e0: 20 69 6e 20 74 68 65 20 48 45 41 44 20 73 6f 20 in the HEAD so
32f0: 74 68 61 74 20 63 6c 69 65 6e 74 0a 20 20 2a 2a that client. **
3300: 20 48 45 41 44 20 63 6f 64 65 20 63 61 6e 20 6d HEAD code can m
3310: 61 6b 65 20 75 73 65 20 6f 66 20 69 74 2c 20 62 ake use of it, b
3320: 75 74 20 62 65 63 61 75 73 65 20 74 68 65 20 63 ut because the c
3330: 6c 69 65 6e 74 20 63 61 6e 20 72 65 70 6c 61 63 lient can replac
3340: 65 0a 20 20 2a 2a 20 74 68 65 20 48 45 41 44 2c e. ** the HEAD,
3350: 20 61 6e 64 20 73 6f 6d 65 20 66 6f 73 73 69 6c and some fossil
3360: 20 70 61 67 65 73 20 72 65 6c 79 20 6f 6e 20 67 pages rely on g
3370: 65 62 69 28 29 2c 20 77 65 20 70 75 74 20 69 74 ebi(), we put it
3380: 20 68 65 72 65 2e 0a 20 20 2a 2f 0a 20 20 40 20 here.. */. @
3390: 3c 73 63 72 69 70 74 3e 0a 20 20 40 20 66 75 6e <script>. @ fun
33a0: 63 74 69 6f 6e 20 67 65 62 69 28 78 29 7b 0a 20 ction gebi(x){.
33b0: 20 40 20 69 66 28 78 2e 73 75 62 73 74 72 28 30 @ if(x.substr(0
33c0: 2c 31 29 3d 3d 27 23 27 29 20 78 20 3d 20 78 2e ,1)=='#') x = x.
33d0: 73 75 62 73 74 72 28 31 29 3b 0a 20 20 40 20 76 substr(1);. @ v
33e0: 61 72 20 65 20 3d 20 64 6f 63 75 6d 65 6e 74 2e ar e = document.
33f0: 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 78 getElementById(x
3400: 29 3b 0a 20 20 40 20 69 66 28 21 65 29 20 74 68 );. @ if(!e) th
3410: 72 6f 77 20 6e 65 77 20 45 72 72 6f 72 28 27 45 row new Error('E
3420: 78 70 65 63 74 69 6e 67 20 65 6c 65 6d 65 6e 74 xpecting element
3430: 20 77 69 74 68 20 49 44 20 27 2b 78 29 3b 0a 20 with ID '+x);.
3440: 20 40 20 65 6c 73 65 20 72 65 74 75 72 6e 20 65 @ else return e
3450: 3b 7d 0a 20 20 40 20 3c 2f 73 63 72 69 70 74 3e ;}. @ </script>
3460: 0a 7d 0a 0a 23 69 66 20 49 4e 54 45 52 46 41 43 .}..#if INTERFAC
3470: 45 0a 2f 2a 20 41 6c 6c 6f 77 65 64 20 70 61 72 E./* Allowed par
3480: 61 6d 65 74 65 72 73 20 66 6f 72 20 73 74 79 6c ameters for styl
3490: 65 5f 61 64 75 6e 69 74 28 29 20 2a 2f 0a 23 64 e_adunit() */.#d
34a0: 65 66 69 6e 65 20 41 44 55 4e 49 54 5f 4f 46 46 efine ADUNIT_OFF
34b0: 20 20 20 20 20 20 20 20 30 78 30 30 30 31 20 20 0x0001
34c0: 20 20 20 20 20 2f 2a 20 44 6f 20 6e 6f 74 20 61 /* Do not a
34d0: 6c 6c 6f 77 20 61 64 73 20 6f 6e 20 74 68 69 73 llow ads on this
34e0: 20 70 61 67 65 20 2a 2f 0a 23 64 65 66 69 6e 65 page */.#define
34f0: 20 41 44 55 4e 49 54 5f 52 49 47 48 54 5f 4f 4b ADUNIT_RIGHT_OK
3500: 20 20 20 30 78 30 30 30 32 20 20 20 20 20 20 20 0x0002
3510: 2f 2a 20 52 69 67 68 74 2d 73 69 64 65 20 76 65 /* Right-side ve
3520: 72 74 69 63 61 6c 20 61 64 73 20 6f 6b 20 68 65 rtical ads ok he
3530: 72 65 20 2a 2f 0a 23 65 6e 64 69 66 0a 0a 2f 2a re */.#endif../*
3540: 0a 2a 2a 20 56 61 72 69 6f 75 73 20 70 61 67 65 .** Various page
3550: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 implementations
3560: 20 63 61 6e 20 69 6e 76 6f 6b 65 20 74 68 69 73 can invoke this
3570: 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 6c 65 interface to le
3580: 74 20 74 68 65 0a 2a 2a 20 73 74 79 6c 65 20 6d t the.** style m
3590: 61 6e 61 67 65 72 20 6b 6e 6f 77 20 77 68 61 74 anager know what
35a0: 20 6b 69 6e 64 73 20 6f 66 20 61 64 73 20 61 72 kinds of ads ar
35b0: 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 66 6f e appropriate fo
35c0: 72 20 74 68 69 73 20 70 61 67 65 2e 0a 2a 2f 0a r this page..*/.
35d0: 76 6f 69 64 20 73 74 79 6c 65 5f 61 64 75 6e 69 void style_aduni
35e0: 74 5f 63 6f 6e 66 69 67 28 75 6e 73 69 67 6e 65 t_config(unsigne
35f0: 64 20 69 6e 74 20 6d 46 6c 61 67 73 29 7b 0a 20 d int mFlags){.
3600: 20 61 64 55 6e 69 74 46 6c 61 67 73 20 3d 20 6d adUnitFlags = m
3610: 46 6c 61 67 73 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 Flags;.}../*.**
3620: 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 74 20 Return the text
3630: 6f 66 20 61 6e 20 61 64 2d 75 6e 69 74 2c 20 69 of an ad-unit, i
3640: 66 20 6f 6e 65 20 73 68 6f 75 6c 64 20 62 65 20 f one should be
3650: 72 65 6e 64 65 72 65 64 2e 20 20 52 65 74 75 72 rendered. Retur
3660: 6e 0a 2a 2a 20 4e 55 4c 4c 20 69 66 20 6e 6f 20 n.** NULL if no
3670: 61 64 2d 75 6e 69 74 20 69 73 20 64 65 73 69 72 ad-unit is desir
3680: 65 64 2e 0a 2a 2a 0a 2a 2a 20 54 68 65 20 2a 70 ed..**.** The *p
3690: 41 64 46 6c 61 67 20 76 61 6c 75 65 20 6d 69 67 AdFlag value mig
36a0: 68 74 20 62 65 20 73 65 74 20 74 6f 20 41 44 55 ht be set to ADU
36b0: 4e 49 54 5f 52 49 47 48 54 5f 4f 4b 20 69 66 20 NIT_RIGHT_OK if
36c0: 74 68 69 73 20 69 73 0a 2a 2a 20 61 20 72 69 67 this is.** a rig
36d0: 68 74 2d 68 61 6e 64 20 76 65 72 74 69 63 61 6c ht-hand vertical
36e0: 20 61 64 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 63 ad..*/.static c
36f0: 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 79 6c 65 onst char *style
3700: 5f 61 64 75 6e 69 74 5f 74 65 78 74 28 75 6e 73 _adunit_text(uns
3710: 69 67 6e 65 64 20 69 6e 74 20 2a 70 41 64 46 6c igned int *pAdFl
3720: 61 67 29 7b 0a 20 20 63 6f 6e 73 74 20 63 68 61 ag){. const cha
3730: 72 20 2a 7a 41 64 20 3d 20 30 3b 0a 20 20 2a 70 r *zAd = 0;. *p
3740: 41 64 46 6c 61 67 20 3d 20 30 3b 0a 20 20 69 66 AdFlag = 0;. if
3750: 28 20 61 64 55 6e 69 74 46 6c 61 67 73 20 26 20 ( adUnitFlags &
3760: 41 44 55 4e 49 54 5f 4f 46 46 20 29 20 72 65 74 ADUNIT_OFF ) ret
3770: 75 72 6e 20 30 3b 20 20 2f 2a 20 44 69 73 61 6c urn 0; /* Disal
3780: 6c 6f 77 20 61 64 73 20 6f 6e 20 74 68 69 73 20 low ads on this
3790: 70 61 67 65 20 2a 2f 0a 20 20 69 66 28 20 67 2e page */. if( g.
37a0: 70 65 72 6d 2e 41 64 6d 69 6e 20 26 26 20 64 62 perm.Admin && db
37b0: 5f 67 65 74 5f 62 6f 6f 6c 65 61 6e 28 22 61 64 _get_boolean("ad
37c0: 75 6e 69 74 2d 6f 6d 69 74 2d 69 66 2d 61 64 6d unit-omit-if-adm
37d0: 69 6e 22 2c 30 29 20 29 7b 0a 20 20 20 20 72 65 in",0) ){. re
37e0: 74 75 72 6e 20 30 3b 0a 20 20 7d 0a 20 20 69 66 turn 0;. }. if
37f0: 28 20 21 6c 6f 67 69 6e 5f 69 73 5f 6e 6f 62 6f ( !login_is_nobo
3800: 64 79 28 29 0a 20 20 20 26 26 20 66 6f 73 73 69 dy(). && fossi
3810: 6c 5f 73 74 72 63 6d 70 28 67 2e 7a 4c 6f 67 69 l_strcmp(g.zLogi
3820: 6e 2c 22 61 6e 6f 6e 79 6d 6f 75 73 22 29 21 3d n,"anonymous")!=
3830: 30 0a 20 20 20 26 26 20 64 62 5f 67 65 74 5f 62 0. && db_get_b
3840: 6f 6f 6c 65 61 6e 28 22 61 64 75 6e 69 74 2d 6f oolean("adunit-o
3850: 6d 69 74 2d 69 66 2d 75 73 65 72 22 2c 30 29 0a mit-if-user",0).
3860: 20 20 29 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 ){. return
3870: 30 3b 0a 20 20 7d 0a 20 20 69 66 28 20 28 61 64 0;. }. if( (ad
3880: 55 6e 69 74 46 6c 61 67 73 20 26 20 41 44 55 4e UnitFlags & ADUN
3890: 49 54 5f 52 49 47 48 54 5f 4f 4b 29 21 3d 30 0a IT_RIGHT_OK)!=0.
38a0: 20 20 20 26 26 20 21 66 6f 73 73 69 6c 5f 61 6c && !fossil_al
38b0: 6c 5f 77 68 69 74 65 73 70 61 63 65 28 7a 41 64 l_whitespace(zAd
38c0: 20 3d 20 64 62 5f 67 65 74 28 22 61 64 75 6e 69 = db_get("aduni
38d0: 74 2d 72 69 67 68 74 22 2c 20 30 29 29 0a 20 20 t-right", 0)).
38e0: 20 26 26 20 21 63 67 69 5f 62 6f 64 79 5f 63 6f && !cgi_body_co
38f0: 6e 74 61 69 6e 73 28 22 3c 74 61 62 6c 65 22 29 ntains("<table")
3900: 0a 20 20 29 7b 0a 20 20 20 20 2a 70 41 64 46 6c . ){. *pAdFl
3910: 61 67 20 3d 20 41 44 55 4e 49 54 5f 52 49 47 48 ag = ADUNIT_RIGH
3920: 54 5f 4f 4b 3b 0a 20 20 20 20 72 65 74 75 72 6e T_OK;. return
3930: 20 7a 41 64 3b 0a 20 20 7d 65 6c 73 65 20 69 66 zAd;. }else if
3940: 28 20 21 66 6f 73 73 69 6c 5f 61 6c 6c 5f 77 68 ( !fossil_all_wh
3950: 69 74 65 73 70 61 63 65 28 7a 41 64 20 3d 20 64 itespace(zAd = d
3960: 62 5f 67 65 74 28 22 61 64 75 6e 69 74 22 2c 30 b_get("adunit",0
3970: 29 29 20 29 7b 0a 20 20 20 20 72 65 74 75 72 6e )) ){. return
3980: 20 7a 41 64 3b 0a 20 20 7d 0a 20 20 72 65 74 75 zAd;. }. retu
3990: 72 6e 20 30 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 44 rn 0;.}../*.** D
39a0: 72 61 77 20 74 68 65 20 66 6f 6f 74 65 72 20 61 raw the footer a
39b0: 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 t the bottom of
39c0: 74 68 65 20 70 61 67 65 2e 0a 2a 2f 0a 76 6f 69 the page..*/.voi
39d0: 64 20 73 74 79 6c 65 5f 66 6f 6f 74 65 72 28 76 d style_footer(v
39e0: 6f 69 64 29 7b 0a 20 20 63 6f 6e 73 74 20 63 68 oid){. const ch
39f0: 61 72 20 2a 7a 46 6f 6f 74 65 72 3b 0a 20 20 63 ar *zFooter;. c
3a00: 6f 6e 73 74 20 63 68 61 72 20 2a 7a 41 64 20 3d onst char *zAd =
3a10: 20 30 3b 0a 20 20 75 6e 73 69 67 6e 65 64 20 69 0;. unsigned i
3a20: 6e 74 20 6d 41 64 46 6c 61 67 73 20 3d 20 30 3b nt mAdFlags = 0;
3a30: 0a 0a 20 20 69 66 28 20 21 68 65 61 64 65 72 48 .. if( !headerH
3a40: 61 73 42 65 65 6e 47 65 6e 65 72 61 74 65 64 20 asBeenGenerated
3a50: 29 20 72 65 74 75 72 6e 3b 0a 0a 20 20 2f 2a 20 ) return;.. /*
3a60: 47 6f 20 62 61 63 6b 20 61 6e 64 20 70 75 74 20 Go back and put
3a70: 74 68 65 20 73 75 62 6d 65 6e 75 20 61 74 20 74 the submenu at t
3a80: 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 70 61 he top of the pa
3a90: 67 65 2e 20 20 57 65 20 64 65 6c 61 79 20 74 68 ge. We delay th
3aa0: 65 0a 20 20 2a 2a 20 63 72 65 61 74 69 6f 6e 20 e. ** creation
3ab0: 6f 66 20 74 68 65 20 73 75 62 6d 65 6e 75 20 75 of the submenu u
3ac0: 6e 74 69 6c 20 74 68 65 20 65 6e 64 20 73 6f 20 ntil the end so
3ad0: 74 68 61 74 20 77 65 20 63 61 6e 20 61 64 64 20 that we can add
3ae0: 65 6c 65 6d 65 6e 74 73 0a 20 20 2a 2a 20 74 6f elements. ** to
3af0: 20 74 68 65 20 73 75 62 6d 65 6e 75 20 77 68 69 the submenu whi
3b00: 6c 65 20 67 65 6e 65 72 61 74 69 6e 67 20 70 61 le generating pa
3b10: 67 65 20 74 65 78 74 2e 0a 20 20 2a 2f 0a 20 20 ge text.. */.
3b20: 63 67 69 5f 64 65 73 74 69 6e 61 74 69 6f 6e 28 cgi_destination(
3b30: 43 47 49 5f 48 45 41 44 45 52 29 3b 0a 20 20 69 CGI_HEADER);. i
3b40: 66 28 20 6e 53 75 62 6d 65 6e 75 2b 6e 53 75 62 f( nSubmenu+nSub
3b50: 6d 65 6e 75 43 74 72 6c 3e 30 20 29 7b 0a 20 20 menuCtrl>0 ){.
3b60: 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 66 28 int i;. if(
3b70: 20 6e 53 75 62 6d 65 6e 75 43 74 72 6c 20 29 7b nSubmenuCtrl ){
3b80: 0a 20 20 20 20 20 20 63 67 69 5f 70 72 69 6e 74 . cgi_print
3b90: 66 28 22 3c 66 6f 72 6d 20 69 64 3d 27 66 30 31 f("<form id='f01
3ba0: 27 20 6d 65 74 68 6f 64 3d 27 47 45 54 27 20 61 ' method='GET' a
3bb0: 63 74 69 6f 6e 3d 27 25 52 2f 25 73 27 3e 22 2c ction='%R/%s'>",
3bc0: 20 67 2e 7a 50 61 74 68 29 3b 0a 20 20 20 20 7d g.zPath);. }
3bd0: 0a 20 20 20 20 40 20 3c 64 69 76 20 63 6c 61 73 . @ <div clas
3be0: 73 3d 22 73 75 62 6d 65 6e 75 22 3e 0a 20 20 20 s="submenu">.
3bf0: 20 69 66 28 20 6e 53 75 62 6d 65 6e 75 3e 30 20 if( nSubmenu>0
3c00: 29 7b 0a 20 20 20 20 20 20 71 73 6f 72 74 28 61 ){. qsort(a
3c10: 53 75 62 6d 65 6e 75 2c 20 6e 53 75 62 6d 65 6e Submenu, nSubmen
3c20: 75 2c 20 73 69 7a 65 6f 66 28 61 53 75 62 6d 65 u, sizeof(aSubme
3c30: 6e 75 5b 30 5d 29 2c 20 73 75 62 6d 65 6e 75 43 nu[0]), submenuC
3c40: 6f 6d 70 61 72 65 29 3b 0a 20 20 20 20 20 20 66 ompare);. f
3c50: 6f 72 28 69 3d 30 3b 20 69 3c 6e 53 75 62 6d 65 or(i=0; i<nSubme
3c60: 6e 75 3b 20 69 2b 2b 29 7b 0a 20 20 20 20 20 20 nu; i++){.
3c70: 20 20 73 74 72 75 63 74 20 53 75 62 6d 65 6e 75 struct Submenu
3c80: 20 2a 70 20 3d 20 26 61 53 75 62 6d 65 6e 75 5b *p = &aSubmenu[
3c90: 69 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 28 20 i];. if(
3ca0: 70 2d 3e 7a 4c 69 6e 6b 3d 3d 30 20 29 7b 0a 20 p->zLink==0 ){.
3cb0: 20 20 20 20 20 20 20 20 20 40 20 3c 73 70 61 6e @ <span
3cc0: 20 63 6c 61 73 73 3d 22 6c 61 62 65 6c 22 3e 25 class="label">%
3cd0: 68 28 70 2d 3e 7a 4c 61 62 65 6c 29 3c 2f 73 70 h(p->zLabel)</sp
3ce0: 61 6e 3e 0a 20 20 20 20 20 20 20 20 7d 65 6c 73 an>. }els
3cf0: 65 7b 0a 20 20 20 20 20 20 20 20 20 20 40 20 3c e{. @ <
3d00: 61 20 63 6c 61 73 73 3d 22 6c 61 62 65 6c 22 20 a class="label"
3d10: 68 72 65 66 3d 22 25 68 28 70 2d 3e 7a 4c 69 6e href="%h(p->zLin
3d20: 6b 29 22 3e 25 68 28 70 2d 3e 7a 4c 61 62 65 6c k)">%h(p->zLabel
3d30: 29 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 7d 0a )</a>. }.
3d40: 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 }. }.
3d50: 20 20 69 66 28 20 6e 53 75 62 6d 65 6e 75 43 74 if( nSubmenuCt
3d60: 72 6c 3e 30 20 29 7b 0a 20 20 20 20 20 20 66 6f rl>0 ){. fo
3d70: 72 28 69 3d 30 3b 20 69 3c 6e 53 75 62 6d 65 6e r(i=0; i<nSubmen
3d80: 75 43 74 72 6c 3b 20 69 2b 2b 29 7b 0a 20 20 20 uCtrl; i++){.
3d90: 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 const char
3da0: 2a 7a 51 50 4e 20 3d 20 61 53 75 62 6d 65 6e 75 *zQPN = aSubmenu
3db0: 43 74 72 6c 5b 69 5d 2e 7a 4e 61 6d 65 3b 0a 20 Ctrl[i].zName;.
3dc0: 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 const cha
3dd0: 72 20 2a 7a 44 69 73 61 62 6c 65 64 20 3d 20 22 r *zDisabled = "
3de0: 20 64 69 73 61 62 6c 65 64 22 3b 0a 20 20 20 20 disabled";.
3df0: 20 20 20 20 69 66 28 20 21 61 53 75 62 6d 65 6e if( !aSubmen
3e00: 75 43 74 72 6c 5b 69 5d 2e 69 73 44 69 73 61 62 uCtrl[i].isDisab
3e10: 6c 65 64 20 29 7b 0a 20 20 20 20 20 20 20 20 20 led ){.
3e20: 20 7a 44 69 73 61 62 6c 65 64 20 3d 20 22 22 3b zDisabled = "";
3e30: 0a 20 20 20 20 20 20 20 20 20 20 63 67 69 5f 74 . cgi_t
3e40: 61 67 5f 71 75 65 72 79 5f 70 61 72 61 6d 65 74 ag_query_paramet
3e50: 65 72 28 7a 51 50 4e 29 3b 0a 20 20 20 20 20 20 er(zQPN);.
3e60: 20 20 7d 0a 20 20 20 20 20 20 20 20 73 77 69 74 }. swit
3e70: 63 68 28 20 61 53 75 62 6d 65 6e 75 43 74 72 6c ch( aSubmenuCtrl
3e80: 5b 69 5d 2e 65 54 79 70 65 20 29 7b 0a 20 20 20 [i].eType ){.
3e90: 20 20 20 20 20 20 20 63 61 73 65 20 46 46 5f 45 case FF_E
3ea0: 4e 54 52 59 3a 20 7b 0a 20 20 20 20 20 20 20 20 NTRY: {.
3eb0: 20 20 20 20 63 67 69 5f 70 72 69 6e 74 66 28 0a cgi_printf(.
3ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 "
3ed0: 3c 73 70 61 6e 20 63 6c 61 73 73 3d 27 73 75 62 <span class='sub
3ee0: 6d 65 6e 75 63 74 72 6c 27 3e 22 0a 20 20 20 20 menuctrl'>".
3ef0: 20 20 20 20 20 20 20 20 20 20 20 22 26 6e 62 73 "&nbs
3f00: 70 3b 25 68 3c 69 6e 70 75 74 20 74 79 70 65 3d p;%h<input type=
3f10: 27 74 65 78 74 27 20 6e 61 6d 65 3d 27 25 73 27 'text' name='%s'
3f20: 20 73 69 7a 65 3d 27 25 64 27 20 6d 61 78 6c 65 size='%d' maxle
3f30: 6e 67 74 68 3d 27 25 64 27 22 0a 20 20 20 20 20 ngth='%d'".
3f40: 20 20 20 20 20 20 20 20 20 20 22 20 76 61 6c 75 " valu
3f50: 65 3d 27 25 68 27 25 73 3e 3c 2f 73 70 61 6e 3e e='%h'%s></span>
3f60: 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 \n",.
3f70: 20 20 20 20 61 53 75 62 6d 65 6e 75 43 74 72 6c aSubmenuCtrl
3f80: 5b 69 5d 2e 7a 4c 61 62 65 6c 2c 0a 20 20 20 20 [i].zLabel,.
3f90: 20 20 20 20 20 20 20 20 20 20 20 7a 51 50 4e 2c zQPN,
3fa0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3fb0: 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b 69 5d 2e aSubmenuCtrl[i].
3fc0: 69 53 69 7a 65 2c 20 61 53 75 62 6d 65 6e 75 43 iSize, aSubmenuC
3fd0: 74 72 6c 5b 69 5d 2e 69 53 69 7a 65 2c 0a 20 20 trl[i].iSize,.
3fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 50 44 28 PD(
3ff0: 7a 51 50 4e 2c 22 22 29 2c 0a 20 20 20 20 20 20 zQPN,""),.
4000: 20 20 20 20 20 20 20 20 20 7a 44 69 73 61 62 6c zDisabl
4010: 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 ed. )
4020: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 ;. br
4030: 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 7d eak;. }
4040: 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 . case
4050: 46 46 5f 4d 55 4c 54 49 3a 20 7b 0a 20 20 20 20 FF_MULTI: {.
4060: 20 20 20 20 20 20 20 20 69 6e 74 20 6a 3b 0a 20 int j;.
4070: 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 const
4080: 20 63 68 61 72 20 2a 7a 56 61 6c 20 3d 20 50 28 char *zVal = P(
4090: 7a 51 50 4e 29 3b 0a 20 20 20 20 20 20 20 20 20 zQPN);.
40a0: 20 20 20 63 67 69 5f 70 72 69 6e 74 66 28 0a 20 cgi_printf(.
40b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3c "<
40c0: 73 65 6c 65 63 74 20 63 6c 61 73 73 3d 27 73 75 select class='su
40d0: 62 6d 65 6e 75 63 74 72 6c 27 20 73 69 7a 65 3d bmenuctrl' size=
40e0: 27 31 27 20 6e 61 6d 65 3d 27 25 73 27 25 73 20 '1' name='%s'%s
40f0: 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ".
4100: 20 22 6f 6e 63 68 61 6e 67 65 3d 27 67 65 62 69 "onchange='gebi
4110: 28 5c 22 66 30 31 5c 22 29 2e 73 75 62 6d 69 74 (\"f01\").submit
4120: 28 29 3b 27 3e 5c 6e 22 2c 0a 20 20 20 20 20 20 ();'>\n",.
4130: 20 20 20 20 20 20 20 20 20 7a 51 50 4e 2c 20 7a zQPN, z
4140: 44 69 73 61 62 6c 65 64 0a 20 20 20 20 20 20 20 Disabled.
4150: 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 );.
4160: 20 20 20 20 66 6f 72 28 6a 3d 30 3b 20 6a 3c 61 for(j=0; j<a
4170: 53 75 62 6d 65 6e 75 43 74 72 6c 5b 69 5d 2e 69 SubmenuCtrl[i].i
4180: 53 69 7a 65 2a 32 3b 20 6a 2b 3d 32 29 7b 0a 20 Size*2; j+=2){.
4190: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e con
41a0: 73 74 20 63 68 61 72 20 2a 7a 51 50 56 20 3d 20 st char *zQPV =
41b0: 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b 69 5d 2e aSubmenuCtrl[i].
41c0: 61 7a 43 68 6f 69 63 65 5b 6a 5d 3b 0a 20 20 20 azChoice[j];.
41d0: 20 20 20 20 20 20 20 20 20 20 20 63 67 69 5f 70 cgi_p
41e0: 72 69 6e 74 66 28 0a 20 20 20 20 20 20 20 20 20 rintf(.
41f0: 20 20 20 20 20 20 20 22 3c 6f 70 74 69 6f 6e 20 "<option
4200: 76 61 6c 75 65 3d 27 25 68 27 25 73 3e 25 68 3c value='%h'%s>%h<
4210: 2f 6f 70 74 69 6f 6e 3e 5c 6e 22 2c 0a 20 20 20 /option>\n",.
4220: 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 51 50 zQP
4230: 56 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 V,.
4240: 20 20 20 66 6f 73 73 69 6c 5f 73 74 72 63 6d 70 fossil_strcmp
4250: 28 7a 56 61 6c 2c 7a 51 50 56 29 3d 3d 30 20 3f (zVal,zQPV)==0 ?
4260: 20 22 20 73 65 6c 65 63 74 65 64 22 20 3a 20 22 " selected" : "
4270: 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ",.
4280: 20 20 20 61 53 75 62 6d 65 6e 75 43 74 72 6c 5b aSubmenuCtrl[
4290: 69 5d 2e 61 7a 43 68 6f 69 63 65 5b 6a 2b 31 5d i].azChoice[j+1]
42a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 . )
42b0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ;. }.
42c0: 20 20 20 20 20 20 20 20 20 20 20 20 40 20 3c 2f @ </
42d0: 73 65 6c 65 63 74 3e 0a 20 20 20 20 20 20 20 20 select>.
42e0: 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 break;.
42f0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 }.
4300: 20 63 61 73 65 20 46 46 5f 42 49 4e 41 52 59 3a case FF_BINARY:
4310: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 {. i
4320: 6e 74 20 69 73 54 72 75 65 20 3d 20 50 42 28 7a nt isTrue = PB(z
4330: 51 50 4e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 QPN);.
4340: 20 20 63 67 69 5f 70 72 69 6e 74 66 28 0a 20 20 cgi_printf(.
4350: 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3c 73 "<s
4360: 65 6c 65 63 74 20 63 6c 61 73 73 3d 27 73 75 62 elect class='sub
4370: 6d 65 6e 75 63 74 72 6c 27 20 73 69 7a 65 3d 27 menuctrl' size='
4380: 31 27 20 6e 61 6d 65 3d 27 25 73 27 25 73 20 22 1' name='%s'%s "
4390: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
43a0: 22 6f 6e 63 68 61 6e 67 65 3d 27 67 65 62 69 28 "onchange='gebi(
43b0: 5c 22 66 30 31 5c 22 29 2e 73 75 62 6d 69 74 28 \"f01\").submit(
43c0: 29 3b 27 3e 5c 6e 22 2c 0a 20 20 20 20 20 20 20 );'>\n",.
43d0: 20 20 20 20 20 20 20 20 7a 51 50 4e 2c 20 7a 44 zQPN, zD
43e0: 69 73 61 62 6c 65 64 0a 20 20 20 20 20 20 20 20 isabled.
43f0: 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 );.
4400: 20 20 20 63 67 69 5f 70 72 69 6e 74 66 28 0a 20 cgi_printf(.
4410: 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3c 6f "<o
4420: 70 74 69 6f 6e 20 76 61 6c 75 65 3d 27 31 27 25 ption value='1'%
4430: 73 3e 25 68 3c 2f 6f 70 74 69 6f 6e 3e 5c 6e 22 s>%h</option>\n"
4440: 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.
4450: 69 73 54 72 75 65 20 3f 20 22 20 73 65 6c 65 63 isTrue ? " selec
4460: 74 65 64 22 3a 22 22 2c 20 61 53 75 62 6d 65 6e ted":"", aSubmen
4470: 75 43 74 72 6c 5b 69 5d 2e 7a 4c 61 62 65 6c 0a uCtrl[i].zLabel.
4480: 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 );.
4490: 20 20 20 20 20 20 20 20 20 20 20 63 67 69 5f 70 cgi_p
44a0: 72 69 6e 74 66 28 0a 20 20 20 20 20 20 20 20 20 rintf(.
44b0: 20 20 20 20 20 22 3c 6f 70 74 69 6f 6e 20 76 61 "<option va
44c0: 6c 75 65 3d 27 30 27 25 73 3e 25 68 3c 2f 6f 70 lue='0'%s>%h</op
44d0: 74 69 6f 6e 3e 5c 6e 22 2c 0a 20 20 20 20 20 20 tion>\n",.
44e0: 20 20 20 20 20 20 20 20 28 21 69 73 54 72 75 65 (!isTrue
44f0: 29 20 3f 20 22 20 73 65 6c 65 63 74 65 64 22 3a ) ? " selected":
4500: 22 22 2c 20 61 53 75 62 6d 65 6e 75 43 74 72 6c "", aSubmenuCtrl
4510: 5b 69 5d 2e 7a 46 61 6c 73 65 0a 20 20 20 20 20 [i].zFalse.
4520: 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 );.
4530: 20 20 20 20 20 20 40 20 3c 2f 73 65 6c 65 63 74 @ </select
4540: 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 >. br
4550: 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 7d eak;. }
4560: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 . }.
4570: 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 40 20 3c }. }. @ <
4580: 2f 64 69 76 3e 0a 20 20 20 20 69 66 28 20 6e 53 /div>. if( nS
4590: 75 62 6d 65 6e 75 43 74 72 6c 20 29 7b 0a 20 20 ubmenuCtrl ){.
45a0: 20 20 20 20 63 67 69 5f 71 75 65 72 79 5f 70 61 cgi_query_pa
45b0: 72 61 6d 65 74 65 72 73 5f 74 6f 5f 68 69 64 64 rameters_to_hidd
45c0: 65 6e 28 29 3b 0a 20 20 20 20 20 20 63 67 69 5f en();. cgi_
45d0: 74 61 67 5f 71 75 65 72 79 5f 70 61 72 61 6d 65 tag_query_parame
45e0: 74 65 72 28 30 29 3b 0a 20 20 20 20 20 20 40 20 ter(0);. @
45f0: 3c 2f 66 6f 72 6d 3e 0a 20 20 20 20 7d 0a 20 20 </form>. }.
4600: 7d 0a 0a 20 20 7a 41 64 20 3d 20 73 74 79 6c 65 }.. zAd = style
4610: 5f 61 64 75 6e 69 74 5f 74 65 78 74 28 26 6d 41 _adunit_text(&mA
4620: 64 46 6c 61 67 73 29 3b 0a 20 20 69 66 28 20 28 dFlags);. if( (
4630: 6d 41 64 46 6c 61 67 73 20 26 20 41 44 55 4e 49 mAdFlags & ADUNI
4640: 54 5f 52 49 47 48 54 5f 4f 4b 29 21 3d 30 20 20 T_RIGHT_OK)!=0
4650: 29 7b 0a 20 20 20 20 40 20 3c 64 69 76 20 63 6c ){. @ <div cl
4660: 61 73 73 3d 22 63 6f 6e 74 65 6e 74 20 61 64 75 ass="content adu
4670: 6e 69 74 5f 72 69 67 68 74 5f 63 6f 6e 74 61 69 nit_right_contai
4680: 6e 65 72 22 3e 0a 20 20 20 20 40 20 3c 64 69 76 ner">. @ <div
4690: 20 63 6c 61 73 73 3d 22 61 64 75 6e 69 74 5f 72 class="adunit_r
46a0: 69 67 68 74 22 3e 0a 20 20 20 20 63 67 69 5f 61 ight">. cgi_a
46b0: 70 70 65 6e 64 5f 63 6f 6e 74 65 6e 74 28 7a 41 ppend_content(zA
46c0: 64 2c 20 2d 31 29 3b 0a 20 20 20 20 40 20 3c 2f d, -1);. @ </
46d0: 64 69 76 3e 0a 20 20 7d 65 6c 73 65 7b 0a 20 20 div>. }else{.
46e0: 20 20 69 66 28 20 7a 41 64 20 29 7b 0a 20 20 20 if( zAd ){.
46f0: 20 20 20 40 20 3c 64 69 76 20 63 6c 61 73 73 3d @ <div class=
4700: 22 61 64 75 6e 69 74 5f 62 61 6e 6e 65 72 22 3e "adunit_banner">
4710: 0a 20 20 20 20 20 20 63 67 69 5f 61 70 70 65 6e . cgi_appen
4720: 64 5f 63 6f 6e 74 65 6e 74 28 7a 41 64 2c 20 2d d_content(zAd, -
4730: 31 29 3b 0a 20 20 20 20 20 20 40 20 3c 2f 64 69 1);. @ </di
4740: 76 3e 0a 20 20 20 20 7d 0a 20 20 20 20 40 20 3c v>. }. @ <
4750: 64 69 76 20 63 6c 61 73 73 3d 22 63 6f 6e 74 65 div class="conte
4760: 6e 74 22 3e 0a 20 20 7d 0a 20 20 63 67 69 5f 64 nt">. }. cgi_d
4770: 65 73 74 69 6e 61 74 69 6f 6e 28 43 47 49 5f 42 estination(CGI_B
4780: 4f 44 59 29 3b 0a 0a 20 20 69 66 28 20 73 69 64 ODY);.. if( sid
4790: 65 62 6f 78 55 73 65 64 20 29 7b 0a 20 20 20 20 eboxUsed ){.
47a0: 2f 2a 20 50 75 74 20 74 68 65 20 66 6f 6f 74 65 /* Put the foote
47b0: 72 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 r at the bottom
47c0: 6f 66 20 74 68 65 20 70 61 67 65 2e 0a 20 20 20 of the page..
47d0: 20 2a 2a 20 74 68 65 20 61 64 64 69 74 69 6f 6e ** the addition
47e0: 61 6c 20 63 6c 65 61 72 2f 62 6f 74 68 20 69 73 al clear/both is
47f0: 20 6e 65 65 64 65 64 20 74 6f 20 65 78 74 65 6e needed to exten
4800: 64 20 74 68 65 20 63 6f 6e 74 65 6e 74 0a 20 20 d the content.
4810: 20 20 2a 2a 20 70 61 72 74 20 74 6f 20 74 68 65 ** part to the
4820: 20 65 6e 64 20 6f 66 20 61 6e 20 6f 70 74 69 6f end of an optio
4830: 6e 61 6c 20 73 69 64 65 62 6f 78 2e 0a 20 20 20 nal sidebox..
4840: 20 2a 2f 0a 20 20 20 20 40 20 3c 64 69 76 20 63 */. @ <div c
4850: 6c 61 73 73 3d 22 65 6e 64 43 6f 6e 74 65 6e 74 lass="endContent
4860: 22 3e 3c 2f 64 69 76 3e 0a 20 20 7d 0a 20 20 40 "></div>. }. @
4870: 20 3c 2f 64 69 76 3e 0a 0a 20 20 2f 2a 20 53 65 </div>.. /* Se
4880: 74 20 74 68 65 20 68 72 65 66 3d 20 66 69 65 6c t the href= fiel
4890: 64 20 6f 6e 20 68 79 70 65 72 6c 69 6e 6b 73 2e d on hyperlinks.
48a0: 20 20 44 6f 20 74 68 69 73 20 62 65 66 6f 72 65 Do this before
48b0: 20 74 68 65 20 66 6f 6f 74 65 72 20 73 69 6e 63 the footer sinc
48c0: 65 0a 20 20 2a 2a 20 74 68 65 20 66 6f 6f 74 65 e. ** the foote
48d0: 72 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 r will be genera
48e0: 74 69 6e 67 20 3c 2f 68 74 6d 6c 3e 20 2a 2f 0a ting </html> */.
48f0: 20 20 73 74 79 6c 65 5f 72 65 73 6f 6c 76 65 5f style_resolve_
4900: 68 72 65 66 28 29 3b 0a 0a 20 20 7a 46 6f 6f 74 href();.. zFoot
4910: 65 72 20 3d 20 73 6b 69 6e 5f 67 65 74 28 22 66 er = skin_get("f
4920: 6f 6f 74 65 72 22 29 3b 0a 20 20 69 66 28 20 67 ooter");. if( g
4930: 2e 74 68 54 72 61 63 65 20 29 20 54 68 5f 54 72 .thTrace ) Th_Tr
4940: 61 63 65 28 22 42 45 47 49 4e 5f 46 4f 4f 54 45 ace("BEGIN_FOOTE
4950: 52 3c 62 72 20 2f 3e 5c 6e 22 2c 20 2d 31 29 3b R<br />\n", -1);
4960: 0a 20 20 54 68 5f 52 65 6e 64 65 72 28 7a 46 6f . Th_Render(zFo
4970: 6f 74 65 72 29 3b 0a 20 20 69 66 28 20 67 2e 74 oter);. if( g.t
4980: 68 54 72 61 63 65 20 29 20 54 68 5f 54 72 61 63 hTrace ) Th_Trac
4990: 65 28 22 45 4e 44 5f 46 4f 4f 54 45 52 3c 62 72 e("END_FOOTER<br
49a0: 20 2f 3e 5c 6e 22 2c 20 2d 31 29 3b 0a 0a 20 20 />\n", -1);..
49b0: 2f 2a 20 52 65 6e 64 65 72 20 74 72 61 63 65 20 /* Render trace
49c0: 6c 6f 67 20 69 66 20 54 48 31 20 74 72 61 63 69 log if TH1 traci
49d0: 6e 67 20 69 73 20 65 6e 61 62 6c 65 64 2e 20 2a ng is enabled. *
49e0: 2f 0a 20 20 69 66 28 20 67 2e 74 68 54 72 61 63 /. if( g.thTrac
49f0: 65 20 29 7b 0a 20 20 20 20 63 67 69 5f 61 70 70 e ){. cgi_app
4a00: 65 6e 64 5f 63 6f 6e 74 65 6e 74 28 22 3c 73 70 end_content("<sp
4a10: 61 6e 20 63 6c 61 73 73 3d 5c 22 74 68 54 72 61 an class=\"thTra
4a20: 63 65 5c 22 3e 3c 68 72 20 2f 3e 5c 6e 22 2c 20 ce\"><hr />\n",
4a30: 2d 31 29 3b 0a 20 20 20 20 63 67 69 5f 61 70 70 -1);. cgi_app
4a40: 65 6e 64 5f 63 6f 6e 74 65 6e 74 28 62 6c 6f 62 end_content(blob
4a50: 5f 73 74 72 28 26 67 2e 74 68 4c 6f 67 29 2c 20 _str(&g.thLog),
4a60: 62 6c 6f 62 5f 73 69 7a 65 28 26 67 2e 74 68 4c blob_size(&g.thL
4a70: 6f 67 29 29 3b 0a 20 20 20 20 63 67 69 5f 61 70 og));. cgi_ap
4a80: 70 65 6e 64 5f 63 6f 6e 74 65 6e 74 28 22 3c 2f pend_content("</
4a90: 73 70 61 6e 3e 5c 6e 22 2c 20 2d 31 29 3b 0a 20 span>\n", -1);.
4aa0: 20 7d 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 42 65 67 69 }.}../*.** Begi
4ab0: 6e 20 61 20 73 69 64 65 2d 62 6f 78 20 6f 6e 20 n a side-box on
4ac0: 74 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 73 the right-hand s
4ad0: 69 64 65 20 6f 66 20 61 20 70 61 67 65 2e 20 20 ide of a page.
4ae0: 54 68 65 20 74 69 74 6c 65 20 61 6e 64 0a 2a 2a The title and.**
4af0: 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 the width of th
4b00: 65 20 62 6f 78 20 61 72 65 20 67 69 76 65 6e 20 e box are given
4b10: 61 73 20 61 72 67 75 6d 65 6e 74 73 2e 20 20 54 as arguments. T
4b20: 68 65 20 77 69 64 74 68 20 69 73 20 75 73 75 61 he width is usua
4b30: 6c 6c 79 0a 2a 2a 20 61 20 70 65 72 63 65 6e 74 lly.** a percent
4b40: 61 67 65 20 6f 66 20 74 6f 74 61 6c 20 73 63 72 age of total scr
4b50: 65 65 6e 20 77 69 64 74 68 2e 0a 2a 2f 0a 76 6f een width..*/.vo
4b60: 69 64 20 73 74 79 6c 65 5f 73 69 64 65 62 6f 78 id style_sidebox
4b70: 5f 62 65 67 69 6e 28 63 6f 6e 73 74 20 63 68 61 _begin(const cha
4b80: 72 20 2a 7a 54 69 74 6c 65 2c 20 63 6f 6e 73 74 r *zTitle, const
4b90: 20 63 68 61 72 20 2a 7a 57 69 64 74 68 29 7b 0a char *zWidth){.
4ba0: 20 20 73 69 64 65 62 6f 78 55 73 65 64 20 3d 20 sideboxUsed =
4bb0: 31 3b 0a 20 20 40 20 3c 64 69 76 20 63 6c 61 73 1;. @ <div clas
4bc0: 73 3d 22 73 69 64 65 62 6f 78 22 20 73 74 79 6c s="sidebox" styl
4bd0: 65 3d 22 77 69 64 74 68 3a 25 73 28 7a 57 69 64 e="width:%s(zWid
4be0: 74 68 29 22 3e 0a 20 20 40 20 3c 64 69 76 20 63 th)">. @ <div c
4bf0: 6c 61 73 73 3d 22 73 69 64 65 62 6f 78 54 69 74 lass="sideboxTit
4c00: 6c 65 22 3e 25 68 28 7a 54 69 74 6c 65 29 3c 2f le">%h(zTitle)</
4c10: 64 69 76 3e 0a 7d 0a 0a 2f 2a 20 45 6e 64 20 74 div>.}../* End t
4c20: 68 65 20 73 69 64 65 2d 62 6f 78 0a 2a 2f 0a 76 he side-box.*/.v
4c30: 6f 69 64 20 73 74 79 6c 65 5f 73 69 64 65 62 6f oid style_sidebo
4c40: 78 5f 65 6e 64 28 76 6f 69 64 29 7b 0a 20 20 40 x_end(void){. @
4c50: 20 3c 2f 64 69 76 3e 0a 7d 0a 0a 0a 2f 2a 20 54 </div>.}.../* T
4c60: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 he following tab
4c70: 6c 65 20 63 6f 6e 74 61 69 6e 73 20 62 69 74 73 le contains bits
4c80: 20 6f 66 20 64 65 66 61 75 6c 74 20 43 53 53 20 of default CSS
4c90: 74 68 61 74 20 6d 75 73 74 0a 2a 2a 20 62 65 20 that must.** be
4ca0: 69 6e 63 6c 75 64 65 64 20 69 66 20 74 68 65 79 included if they
4cb0: 20 61 72 65 20 6e 6f 74 20 66 6f 75 6e 64 20 69 are not found i
4cc0: 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f n the applicatio
4cd0: 6e 2d 64 65 66 69 6e 65 64 0a 2a 2a 20 43 53 53 n-defined.** CSS
4ce0: 2e 0a 2a 2f 0a 63 6f 6e 73 74 20 73 74 72 75 63 ..*/.const struc
4cf0: 74 20 73 74 72 63 74 43 73 73 44 65 66 61 75 6c t strctCssDefaul
4d00: 74 73 20 7b 0a 20 20 63 6f 6e 73 74 20 63 68 61 ts {. const cha
4d10: 72 20 2a 65 6c 65 6d 65 6e 74 43 6c 61 73 73 3b r *elementClass;
4d20: 20 20 2f 2a 20 4e 61 6d 65 20 6f 66 20 65 6c 65 /* Name of ele
4d30: 6d 65 6e 74 20 6e 65 65 64 65 64 20 2a 2f 0a 20 ment needed */.
4d40: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 63 6f 6d const char *com
4d50: 6d 65 6e 74 3b 20 20 20 20 20 20 20 2f 2a 20 43 ment; /* C
4d60: 6f 6d 6d 65 6e 74 20 74 65 78 74 20 2a 2f 0a 20 omment text */.
4d70: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 76 61 6c const char *val
4d80: 75 65 3b 20 20 20 20 20 20 20 20 20 2f 2a 20 43 ue; /* C
4d90: 53 53 20 74 65 78 74 20 2a 2f 0a 7d 20 63 73 73 SS text */.} css
4da0: 44 65 66 61 75 6c 74 4c 69 73 74 5b 5d 20 3d 20 DefaultList[] =
4db0: 7b 0a 20 20 7b 20 22 64 69 76 2e 73 69 64 65 62 {. { "div.sideb
4dc0: 6f 78 22 2c 0a 20 20 20 20 22 54 68 65 20 6e 6f ox",. "The no
4dd0: 6d 65 6e 63 6c 61 74 75 72 65 20 73 69 64 65 62 menclature sideb
4de0: 6f 78 20 66 6f 72 20 62 72 61 6e 63 68 65 73 2c ox for branches,
4df0: 2e 2e 22 2c 0a 20 20 20 20 40 20 20 20 66 6c 6f ..",. @ flo
4e00: 61 74 3a 20 72 69 67 68 74 3b 0a 20 20 20 20 40 at: right;. @
4e10: 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f background-co
4e20: 6c 6f 72 3a 20 77 68 69 74 65 3b 0a 20 20 20 20 lor: white;.
4e30: 40 20 20 20 62 6f 72 64 65 72 2d 77 69 64 74 68 @ border-width
4e40: 3a 20 6d 65 64 69 75 6d 3b 0a 20 20 20 20 40 20 : medium;. @
4e50: 20 20 62 6f 72 64 65 72 2d 73 74 79 6c 65 3a 20 border-style:
4e60: 64 6f 75 62 6c 65 3b 0a 20 20 20 20 40 20 20 20 double;. @
4e70: 6d 61 72 67 69 6e 3a 20 31 30 70 78 3b 0a 20 20 margin: 10px;.
4e80: 7d 2c 0a 20 20 7b 20 22 64 69 76 2e 73 69 64 65 },. { "div.side
4e90: 62 6f 78 54 69 74 6c 65 22 2c 0a 20 20 20 20 22 boxTitle",. "
4ea0: 54 68 65 20 6e 6f 6d 65 6e 63 6c 61 74 75 72 65 The nomenclature
4eb0: 20 74 69 74 6c 65 20 69 6e 20 73 69 64 65 62 6f title in sidebo
4ec0: 78 65 73 20 66 6f 72 20 62 72 61 6e 63 68 65 73 xes for branches
4ed0: 2c 2e 2e 22 2c 0a 20 20 20 20 40 20 20 20 64 69 ,..",. @ di
4ee0: 73 70 6c 61 79 3a 20 69 6e 6c 69 6e 65 3b 0a 20 splay: inline;.
4ef0: 20 20 20 40 20 20 20 66 6f 6e 74 2d 77 65 69 67 @ font-weig
4f00: 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 ht: bold;. },.
4f10: 20 7b 20 22 64 69 76 2e 73 69 64 65 62 6f 78 44 { "div.sideboxD
4f20: 65 73 63 72 69 62 65 64 22 2c 0a 20 20 20 20 22 escribed",. "
4f30: 54 68 65 20 64 65 66 69 6e 65 64 20 65 6c 65 6d The defined elem
4f40: 65 6e 74 20 69 6e 20 73 69 64 65 62 6f 78 65 73 ent in sideboxes
4f50: 20 66 6f 72 20 62 72 61 6e 63 68 65 73 2c 2e 2e for branches,..
4f60: 22 2c 0a 20 20 20 20 40 20 20 20 64 69 73 70 6c ",. @ displ
4f70: 61 79 3a 20 69 6e 6c 69 6e 65 3b 0a 20 20 20 20 ay: inline;.
4f80: 40 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a @ font-weight:
4f90: 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 bold;. },. {
4fa0: 22 73 70 61 6e 2e 64 69 73 61 62 6c 65 64 22 2c "span.disabled",
4fb0: 0a 20 20 20 20 22 54 68 65 20 64 65 66 69 6e 65 . "The define
4fc0: 64 20 65 6c 65 6d 65 6e 74 20 69 6e 20 73 69 64 d element in sid
4fd0: 65 62 6f 78 65 73 20 66 6f 72 20 62 72 61 6e 63 eboxes for branc
4fe0: 68 65 73 2c 2e 2e 22 2c 0a 20 20 20 20 40 20 20 hes,..",. @
4ff0: 20 63 6f 6c 6f 72 3a 20 72 65 64 3b 0a 20 20 7d color: red;. }
5000: 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 74 69 6d 65 ,. { "span.time
5010: 6c 69 6e 65 44 69 73 61 62 6c 65 64 22 2c 0a 20 lineDisabled",.
5020: 20 20 20 22 54 68 65 20 73 75 70 70 72 65 73 73 "The suppress
5030: 65 64 20 64 75 70 6c 69 63 61 74 65 73 20 6c 69 ed duplicates li
5040: 6e 65 73 20 69 6e 20 74 69 6d 65 6c 69 6e 65 2c nes in timeline,
5050: 20 2e 2e 22 2c 0a 20 20 20 20 40 20 20 20 66 6f ..",. @ fo
5060: 6e 74 2d 73 74 79 6c 65 3a 20 69 74 61 6c 69 63 nt-style: italic
5070: 3b 0a 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 73 ;. @ font-s
5080: 69 7a 65 3a 20 73 6d 61 6c 6c 3b 0a 20 20 7d 2c ize: small;. },
5090: 0a 20 20 7b 20 22 74 61 62 6c 65 2e 74 69 6d 65 . { "table.time
50a0: 6c 69 6e 65 54 61 62 6c 65 22 2c 0a 20 20 20 20 lineTable",.
50b0: 22 74 68 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 "the format for
50c0: 74 68 65 20 74 69 6d 65 6c 69 6e 65 20 64 61 74 the timeline dat
50d0: 61 20 74 61 62 6c 65 22 2c 0a 20 20 20 20 40 20 a table",. @
50e0: 20 20 62 6f 72 64 65 72 3a 20 30 3b 0a 20 20 20 border: 0;.
50f0: 20 40 20 20 20 62 6f 72 64 65 72 2d 63 6f 6c 6c @ border-coll
5100: 61 70 73 65 3a 20 63 6f 6c 6c 61 70 73 65 3b 0a apse: collapse;.
5110: 20 20 7d 2c 0a 20 20 7b 20 22 74 64 2e 74 69 6d },. { "td.tim
5120: 65 6c 69 6e 65 54 61 62 6c 65 43 65 6c 6c 22 2c elineTableCell",
5130: 0a 20 20 20 20 22 74 68 65 20 66 6f 72 6d 61 74 . "the format
5140: 20 66 6f 72 20 74 68 65 20 74 69 6d 65 6c 69 6e for the timelin
5150: 65 20 64 61 74 61 20 63 65 6c 6c 73 22 2c 0a 20 e data cells",.
5160: 20 20 20 40 20 20 20 76 65 72 74 69 63 61 6c 2d @ vertical-
5170: 61 6c 69 67 6e 3a 20 74 6f 70 3b 0a 20 20 20 20 align: top;.
5180: 40 20 20 20 74 65 78 74 2d 61 6c 69 67 6e 3a 20 @ text-align:
5190: 6c 65 66 74 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 left;. },. { "
51a0: 74 72 2e 74 69 6d 65 6c 69 6e 65 43 75 72 72 65 tr.timelineCurre
51b0: 6e 74 20 74 64 2e 74 69 6d 65 6c 69 6e 65 54 61 nt td.timelineTa
51c0: 62 6c 65 43 65 6c 6c 22 2c 0a 20 20 20 20 22 74 bleCell",. "t
51d0: 68 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 74 68 he format for th
51e0: 65 20 74 69 6d 65 6c 69 6e 65 20 64 61 74 61 20 e timeline data
51f0: 63 65 6c 6c 20 6f 66 20 74 68 65 20 63 75 72 72 cell of the curr
5200: 65 6e 74 20 63 68 65 63 6b 6f 75 74 22 2c 0a 20 ent checkout",.
5210: 20 20 20 40 20 20 20 70 61 64 64 69 6e 67 3a 20 @ padding:
5220: 2e 31 65 6d 20 2e 32 65 6d 3b 0a 20 20 20 20 40 .1em .2em;. @
5230: 20 20 20 62 6f 72 64 65 72 3a 20 31 70 78 20 64 border: 1px d
5240: 61 73 68 65 64 20 23 34 34 36 39 37 39 3b 0a 20 ashed #446979;.
5250: 20 7d 2c 0a 20 20 7b 20 22 74 72 2e 74 69 6d 65 },. { "tr.time
5260: 6c 69 6e 65 53 65 6c 65 63 74 65 64 22 2c 0a 20 lineSelected",.
5270: 20 20 20 22 54 68 65 20 72 6f 77 20 69 6e 20 74 "The row in t
5280: 68 65 20 74 69 6d 65 6c 69 6e 65 20 74 61 62 6c he timeline tabl
5290: 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 e that contains
52a0: 74 68 65 20 65 6e 74 72 79 20 6f 66 20 69 6e 74 the entry of int
52b0: 65 72 65 73 74 22 2c 0a 20 20 20 20 40 20 20 20 erest",. @
52c0: 70 61 64 64 69 6e 67 3a 20 2e 31 65 6d 20 2e 32 padding: .1em .2
52d0: 65 6d 3b 0a 20 20 20 20 40 20 20 20 62 6f 72 64 em;. @ bord
52e0: 65 72 3a 20 32 70 78 20 73 6f 6c 69 64 20 6c 69 er: 2px solid li
52f0: 67 68 74 67 72 61 79 3b 0a 20 20 20 20 40 20 20 ghtgray;. @
5300: 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f background-colo
5310: 72 3a 20 23 66 66 63 3b 0a 20 20 20 20 40 20 20 r: #ffc;. @
5320: 20 62 6f 78 2d 73 68 61 64 6f 77 3a 20 34 70 78 box-shadow: 4px
5330: 20 34 70 78 20 32 70 78 20 23 38 38 38 3b 0a 20 4px 2px #888;.
5340: 20 7d 2c 0a 20 20 7b 20 22 74 72 2e 74 69 6d 65 },. { "tr.time
5350: 6c 69 6e 65 53 70 61 63 65 72 22 2c 0a 20 20 20 lineSpacer",.
5360: 20 22 41 6e 20 65 78 74 72 61 20 72 6f 77 20 69 "An extra row i
5370: 6e 73 65 72 74 65 64 20 74 6f 20 67 69 76 65 20 nserted to give
5380: 76 65 72 74 69 63 61 6c 20 73 70 61 63 65 20 62 vertical space b
5390: 65 74 77 65 65 6e 20 74 77 6f 20 72 6f 77 73 22 etween two rows"
53a0: 2c 0a 20 20 20 20 40 20 20 20 68 65 69 67 68 74 ,. @ height
53b0: 3a 20 31 65 78 3b 0a 20 20 7d 2c 0a 20 20 7b 20 : 1ex;. },. {
53c0: 22 73 70 61 6e 2e 74 69 6d 65 6c 69 6e 65 4c 65 "span.timelineLe
53d0: 61 66 22 2c 0a 20 20 20 20 22 74 68 65 20 66 6f af",. "the fo
53e0: 72 6d 61 74 20 66 6f 72 20 74 68 65 20 74 69 6d rmat for the tim
53f0: 65 6c 69 6e 65 20 6c 65 61 66 20 6d 61 72 6b 73 eline leaf marks
5400: 22 2c 0a 20 20 20 20 40 20 20 20 66 6f 6e 74 2d ",. @ font-
5410: 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 weight: bold;.
5420: 7d 2c 0a 20 20 7b 20 22 61 2e 74 69 6d 65 6c 69 },. { "a.timeli
5430: 6e 65 48 69 73 74 4c 69 6e 6b 22 2c 0a 20 20 20 neHistLink",.
5440: 20 22 74 68 65 20 66 6f 72 6d 61 74 20 66 6f 72 "the format for
5450: 20 74 68 65 20 74 69 6d 65 6c 69 6e 65 20 76 65 the timeline ve
5460: 72 73 69 6f 6e 20 6c 69 6e 6b 73 22 2c 0a 20 20 rsion links",.
5470: 20 20 40 0a 20 20 7d 2c 0a 20 20 7b 20 22 73 70 @. },. { "sp
5480: 61 6e 2e 74 69 6d 65 6c 69 6e 65 48 69 73 74 44 an.timelineHistD
5490: 73 70 22 2c 0a 20 20 20 20 22 74 68 65 20 66 6f sp",. "the fo
54a0: 72 6d 61 74 20 66 6f 72 20 74 68 65 20 74 69 6d rmat for the tim
54b0: 65 6c 69 6e 65 20 76 65 72 73 69 6f 6e 20 64 69 eline version di
54c0: 73 70 6c 61 79 28 6e 6f 20 68 69 73 74 6f 72 79 splay(no history
54d0: 20 70 65 72 6d 69 73 73 69 6f 6e 21 29 22 2c 0a permission!)",.
54e0: 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 77 65 69 @ font-wei
54f0: 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a ght: bold;. },.
5500: 20 20 7b 20 22 74 64 2e 74 69 6d 65 6c 69 6e 65 { "td.timeline
5510: 54 69 6d 65 22 2c 0a 20 20 20 20 22 74 68 65 20 Time",. "the
5520: 66 6f 72 6d 61 74 20 66 6f 72 20 74 68 65 20 74 format for the t
5530: 69 6d 65 6c 69 6e 65 20 74 69 6d 65 20 64 69 73 imeline time dis
5540: 70 6c 61 79 22 2c 0a 20 20 20 20 40 20 20 20 76 play",. @ v
5550: 65 72 74 69 63 61 6c 2d 61 6c 69 67 6e 3a 20 74 ertical-align: t
5560: 6f 70 3b 0a 20 20 20 20 40 20 20 20 74 65 78 74 op;. @ text
5570: 2d 61 6c 69 67 6e 3a 20 72 69 67 68 74 3b 0a 20 -align: right;.
5580: 20 20 20 40 20 20 20 77 68 69 74 65 2d 73 70 61 @ white-spa
5590: 63 65 3a 20 6e 6f 77 72 61 70 3b 0a 20 20 7d 2c ce: nowrap;. },
55a0: 0a 20 20 7b 20 22 74 64 2e 74 69 6d 65 6c 69 6e . { "td.timelin
55b0: 65 47 72 61 70 68 22 2c 0a 20 20 20 20 22 74 68 eGraph",. "th
55c0: 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 74 68 65 e format for the
55d0: 20 67 72 61 70 20 70 6c 61 63 65 68 6f 6c 64 65 grap placeholde
55e0: 72 20 63 65 6c 6c 73 20 69 6e 20 74 69 6d 65 6c r cells in timel
55f0: 69 6e 65 73 22 2c 0a 20 20 20 20 40 20 77 69 64 ines",. @ wid
5600: 74 68 3a 20 32 30 70 78 3b 0a 20 20 20 20 40 20 th: 20px;. @
5610: 74 65 78 74 2d 61 6c 69 67 6e 3a 20 6c 65 66 74 text-align: left
5620: 3b 0a 20 20 20 20 40 20 76 65 72 74 69 63 61 6c ;. @ vertical
5630: 2d 61 6c 69 67 6e 3a 20 74 6f 70 3b 0a 20 20 7d -align: top;. }
5640: 2c 0a 20 20 7b 20 22 61 2e 74 61 67 4c 69 6e 6b ,. { "a.tagLink
5650: 22 2c 0a 20 20 20 20 22 74 68 65 20 66 6f 72 6d ",. "the form
5660: 61 74 20 66 6f 72 20 74 68 65 20 74 61 67 20 6c at for the tag l
5670: 69 6e 6b 73 22 2c 0a 20 20 20 20 40 0a 20 20 7d inks",. @. }
5680: 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 74 61 67 44 ,. { "span.tagD
5690: 73 70 22 2c 0a 20 20 20 20 22 74 68 65 20 66 6f sp",. "the fo
56a0: 72 6d 61 74 20 66 6f 72 20 74 68 65 20 74 61 67 rmat for the tag
56b0: 20 64 69 73 70 6c 61 79 28 6e 6f 20 68 69 73 74 display(no hist
56c0: 6f 72 79 20 70 65 72 6d 69 73 73 69 6f 6e 21 29 ory permission!)
56d0: 22 2c 0a 20 20 20 20 40 20 20 20 66 6f 6e 74 2d ",. @ font-
56e0: 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 weight: bold;.
56f0: 7d 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 77 69 6b },. { "span.wik
5700: 69 45 72 72 6f 72 22 2c 0a 20 20 20 20 22 74 68 iError",. "th
5710: 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 77 69 6b e format for wik
5720: 69 20 65 72 72 6f 72 73 22 2c 0a 20 20 20 20 40 i errors",. @
5730: 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 font-weight:
5740: 62 6f 6c 64 3b 0a 20 20 20 20 40 20 20 20 63 6f bold;. @ co
5750: 6c 6f 72 3a 20 72 65 64 3b 0a 20 20 7d 2c 0a 20 lor: red;. },.
5760: 20 7b 20 22 73 70 61 6e 2e 69 6e 66 6f 54 61 67 { "span.infoTag
5770: 43 61 6e 63 65 6c 6c 65 64 22 2c 0a 20 20 20 20 Cancelled",.
5780: 22 74 68 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 "the format for
5790: 66 69 78 65 64 2f 63 61 6e 63 65 6c 65 64 20 74 fixed/canceled t
57a0: 61 67 73 2c 2e 2e 22 2c 0a 20 20 20 20 40 20 20 ags,..",. @
57b0: 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f font-weight: bo
57c0: 6c 64 3b 0a 20 20 20 20 40 20 20 20 74 65 78 74 ld;. @ text
57d0: 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 20 6c 69 6e -decoration: lin
57e0: 65 2d 74 68 72 6f 75 67 68 3b 0a 20 20 7d 2c 0a e-through;. },.
57f0: 20 20 7b 20 22 73 70 61 6e 2e 69 6e 66 6f 54 61 { "span.infoTa
5800: 67 22 2c 0a 20 20 20 20 22 74 68 65 20 66 6f 72 g",. "the for
5810: 6d 61 74 20 66 6f 72 20 74 61 67 73 2c 2e 2e 22 mat for tags,.."
5820: 2c 0a 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 77 ,. @ font-w
5830: 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 7d eight: bold;. }
5840: 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 77 69 6b 69 ,. { "span.wiki
5850: 54 61 67 43 61 6e 63 65 6c 6c 65 64 22 2c 0a 20 TagCancelled",.
5860: 20 20 20 22 74 68 65 20 66 6f 72 6d 61 74 20 66 "the format f
5870: 6f 72 20 66 69 78 65 64 2f 63 61 6e 63 65 6c 6c or fixed/cancell
5880: 65 64 20 74 61 67 73 2c 2e 2e 20 6f 6e 20 77 69 ed tags,.. on wi
5890: 6b 69 20 70 61 67 65 73 22 2c 0a 20 20 20 20 40 ki pages",. @
58a0: 20 20 20 74 65 78 74 2d 64 65 63 6f 72 61 74 69 text-decorati
58b0: 6f 6e 3a 20 6c 69 6e 65 2d 74 68 72 6f 75 67 68 on: line-through
58c0: 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 61 62 6c ;. },. { "tabl
58d0: 65 2e 62 72 6f 77 73 65 72 22 2c 0a 20 20 20 20 e.browser",.
58e0: 22 66 6f 72 6d 61 74 20 66 6f 72 20 74 68 65 20 "format for the
58f0: 66 69 6c 65 20 64 69 73 70 6c 61 79 20 74 61 62 file display tab
5900: 6c 65 22 2c 0a 20 20 20 20 40 20 2f 2a 20 74 68 le",. @ /* th
5910: 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 77 69 6b e format for wik
5920: 69 20 65 72 72 6f 72 73 20 2a 2f 0a 20 20 20 20 i errors */.
5930: 40 20 20 20 77 69 64 74 68 3a 20 31 30 30 25 3b @ width: 100%;
5940: 0a 20 20 20 20 40 20 20 20 62 6f 72 64 65 72 3a . @ border:
5950: 20 30 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 64 0;. },. { "td
5960: 2e 62 72 6f 77 73 65 72 22 2c 0a 20 20 20 20 22 .browser",. "
5970: 66 6f 72 6d 61 74 20 66 6f 72 20 63 65 6c 6c 73 format for cells
5980: 20 69 6e 20 74 68 65 20 66 69 6c 65 20 62 72 6f in the file bro
5990: 77 73 65 72 22 2c 0a 20 20 20 20 40 20 20 20 77 wser",. @ w
59a0: 69 64 74 68 3a 20 32 34 25 3b 0a 20 20 20 20 40 idth: 24%;. @
59b0: 20 20 20 76 65 72 74 69 63 61 6c 2d 61 6c 69 67 vertical-alig
59c0: 6e 3a 20 74 6f 70 3b 0a 20 20 7d 2c 0a 20 20 7b n: top;. },. {
59d0: 20 22 2e 66 69 6c 65 74 72 65 65 22 2c 0a 20 20 ".filetree",.
59e0: 20 20 22 74 72 65 65 2d 76 69 65 77 20 66 69 6c "tree-view fil
59f0: 65 20 62 72 6f 77 73 65 72 22 2c 0a 20 20 20 20 e browser",.
5a00: 40 20 20 20 6d 61 72 67 69 6e 3a 20 31 65 6d 20 @ margin: 1em
5a10: 30 3b 0a 20 20 20 20 40 20 20 20 6c 69 6e 65 2d 0;. @ line-
5a20: 68 65 69 67 68 74 3a 20 31 2e 35 3b 0a 20 20 7d height: 1.5;. }
5a30: 2c 0a 20 20 7b 0a 20 20 20 20 22 2e 66 69 6c 65 ,. {. ".file
5a40: 74 72 65 65 20 3e 20 75 6c 22 2c 0a 20 20 20 20 tree > ul",.
5a50: 22 74 72 65 65 2d 76 69 65 77 20 74 6f 70 2d 6c "tree-view top-l
5a60: 65 76 65 6c 20 6c 69 73 74 22 2c 0a 20 20 20 20 evel list",.
5a70: 40 20 20 20 64 69 73 70 6c 61 79 3a 20 69 6e 6c @ display: inl
5a80: 69 6e 65 2d 62 6c 6f 63 6b 3b 0a 20 20 7d 2c 0a ine-block;. },.
5a90: 20 20 7b 20 22 2e 66 69 6c 65 74 72 65 65 20 75 { ".filetree u
5aa0: 6c 22 2c 0a 20 20 20 20 22 74 72 65 65 2d 76 69 l",. "tree-vi
5ab0: 65 77 20 6c 69 73 74 73 22 2c 0a 20 20 20 20 40 ew lists",. @
5ac0: 20 20 20 6d 61 72 67 69 6e 3a 20 30 3b 0a 20 20 margin: 0;.
5ad0: 20 20 40 20 20 20 70 61 64 64 69 6e 67 3a 20 30 @ padding: 0
5ae0: 3b 0a 20 20 20 20 40 20 20 20 6c 69 73 74 2d 73 ;. @ list-s
5af0: 74 79 6c 65 3a 20 6e 6f 6e 65 3b 0a 20 20 7d 2c tyle: none;. },
5b00: 0a 20 20 7b 20 22 2e 66 69 6c 65 74 72 65 65 20 . { ".filetree
5b10: 75 6c 2e 63 6f 6c 6c 61 70 73 65 64 22 2c 0a 20 ul.collapsed",.
5b20: 20 20 20 22 74 72 65 65 2d 76 69 65 77 20 63 6f "tree-view co
5b30: 6c 6c 61 70 73 65 64 20 6c 69 73 74 22 2c 0a 20 llapsed list",.
5b40: 20 20 20 40 20 20 20 64 69 73 70 6c 61 79 3a 20 @ display:
5b50: 6e 6f 6e 65 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 none;. },. { "
5b60: 2e 66 69 6c 65 74 72 65 65 20 75 6c 20 75 6c 22 .filetree ul ul"
5b70: 2c 0a 20 20 20 20 22 74 72 65 65 2d 76 69 65 77 ,. "tree-view
5b80: 20 6c 69 73 74 73 20 62 65 6c 6f 77 20 74 68 65 lists below the
5b90: 20 72 6f 6f 74 22 2c 0a 20 20 20 20 40 20 20 20 root",. @
5ba0: 70 6f 73 69 74 69 6f 6e 3a 20 72 65 6c 61 74 69 position: relati
5bb0: 76 65 3b 0a 20 20 20 20 40 20 20 20 6d 61 72 67 ve;. @ marg
5bc0: 69 6e 3a 20 30 20 30 20 30 20 32 31 70 78 3b 0a in: 0 0 0 21px;.
5bd0: 20 20 7d 2c 0a 20 20 7b 20 22 2e 66 69 6c 65 74 },. { ".filet
5be0: 72 65 65 20 6c 69 22 2c 0a 20 20 20 20 22 74 72 ree li",. "tr
5bf0: 65 65 2d 76 69 65 77 20 6c 69 73 74 73 20 69 74 ee-view lists it
5c00: 65 6d 73 22 2c 0a 20 20 20 20 40 20 20 20 70 6f ems",. @ po
5c10: 73 69 74 69 6f 6e 3a 20 72 65 6c 61 74 69 76 65 sition: relative
5c20: 3b 0a 20 20 20 20 40 20 20 20 6d 61 72 67 69 6e ;. @ margin
5c30: 3a 20 30 3b 0a 20 20 20 20 40 20 20 20 70 61 64 : 0;. @ pad
5c40: 64 69 6e 67 3a 20 30 3b 0a 20 20 7d 2c 0a 20 20 ding: 0;. },.
5c50: 7b 20 22 2e 66 69 6c 65 74 72 65 65 20 6c 69 20 { ".filetree li
5c60: 6c 69 3a 62 65 66 6f 72 65 22 2c 0a 20 20 20 20 li:before",.
5c70: 22 74 72 65 65 2d 76 69 65 77 20 6e 6f 64 65 20 "tree-view node
5c80: 6c 69 6e 65 73 22 2c 0a 20 20 20 20 40 20 20 20 lines",. @
5c90: 63 6f 6e 74 65 6e 74 3a 20 27 27 3b 0a 20 20 20 content: '';.
5ca0: 20 40 20 20 20 70 6f 73 69 74 69 6f 6e 3a 20 61 @ position: a
5cb0: 62 73 6f 6c 75 74 65 3b 0a 20 20 20 20 40 20 20 bsolute;. @
5cc0: 20 74 6f 70 3a 20 2d 2e 38 65 6d 3b 0a 20 20 20 top: -.8em;.
5cd0: 20 40 20 20 20 6c 65 66 74 3a 20 2d 31 34 70 78 @ left: -14px
5ce0: 3b 0a 20 20 20 20 40 20 20 20 77 69 64 74 68 3a ;. @ width:
5cf0: 20 31 34 70 78 3b 0a 20 20 20 20 40 20 20 20 68 14px;. @ h
5d00: 65 69 67 68 74 3a 20 31 2e 35 65 6d 3b 0a 20 20 eight: 1.5em;.
5d10: 20 20 40 20 20 20 62 6f 72 64 65 72 2d 6c 65 66 @ border-lef
5d20: 74 3a 20 32 70 78 20 73 6f 6c 69 64 20 23 61 61 t: 2px solid #aa
5d30: 61 3b 0a 20 20 20 20 40 20 20 20 62 6f 72 64 65 a;. @ borde
5d40: 72 2d 62 6f 74 74 6f 6d 3a 20 32 70 78 20 73 6f r-bottom: 2px so
5d50: 6c 69 64 20 23 61 61 61 3b 0a 20 20 7d 2c 0a 20 lid #aaa;. },.
5d60: 20 7b 20 22 2e 66 69 6c 65 74 72 65 65 20 6c 69 { ".filetree li
5d70: 20 3e 20 75 6c 3a 62 65 66 6f 72 65 22 2c 0a 20 > ul:before",.
5d80: 20 20 20 22 74 72 65 65 2d 76 69 65 77 20 64 69 "tree-view di
5d90: 72 65 63 74 6f 72 79 20 6c 69 6e 65 73 22 2c 0a rectory lines",.
5da0: 20 20 20 20 40 20 20 20 63 6f 6e 74 65 6e 74 3a @ content:
5db0: 20 27 27 3b 0a 20 20 20 20 40 20 20 20 70 6f 73 '';. @ pos
5dc0: 69 74 69 6f 6e 3a 20 61 62 73 6f 6c 75 74 65 3b ition: absolute;
5dd0: 0a 20 20 20 20 40 20 20 20 74 6f 70 3a 20 2d 31 . @ top: -1
5de0: 2e 35 65 6d 3b 0a 20 20 20 20 40 20 20 20 62 6f .5em;. @ bo
5df0: 74 74 6f 6d 3a 20 30 3b 0a 20 20 20 20 40 20 20 ttom: 0;. @
5e00: 20 6c 65 66 74 3a 20 2d 33 35 70 78 3b 0a 20 20 left: -35px;.
5e10: 20 20 40 20 20 20 62 6f 72 64 65 72 2d 6c 65 66 @ border-lef
5e20: 74 3a 20 32 70 78 20 73 6f 6c 69 64 20 23 61 61 t: 2px solid #aa
5e30: 61 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e 66 69 a;. },. { ".fi
5e40: 6c 65 74 72 65 65 20 6c 69 2e 6c 61 73 74 20 3e letree li.last >
5e50: 20 75 6c 3a 62 65 66 6f 72 65 22 2c 0a 20 20 20 ul:before",.
5e60: 20 22 68 69 64 65 20 6c 69 6e 65 73 20 66 6f 72 "hide lines for
5e70: 20 6c 61 73 74 2d 63 68 69 6c 64 20 64 69 72 65 last-child dire
5e80: 63 74 6f 72 69 65 73 22 2c 0a 20 20 20 20 40 20 ctories",. @
5e90: 20 20 64 69 73 70 6c 61 79 3a 20 6e 6f 6e 65 3b display: none;
5ea0: 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e 66 69 6c 65 . },. { ".file
5eb0: 74 72 65 65 20 61 22 2c 0a 20 20 20 20 22 74 72 tree a",. "tr
5ec0: 65 65 2d 76 69 65 77 20 6c 69 6e 6b 73 22 2c 0a ee-view links",.
5ed0: 20 20 20 20 22 20 20 70 6f 73 69 74 69 6f 6e 3a " position:
5ee0: 20 72 65 6c 61 74 69 76 65 3b 5c 6e 22 0a 20 20 relative;\n".
5ef0: 20 20 22 20 20 7a 2d 69 6e 64 65 78 3a 20 31 3b " z-index: 1;
5f00: 5c 6e 22 0a 20 20 20 20 22 20 20 64 69 73 70 6c \n". " displ
5f10: 61 79 3a 20 74 61 62 6c 65 2d 63 65 6c 6c 3b 5c ay: table-cell;\
5f20: 6e 22 0a 20 20 20 20 22 20 20 6d 69 6e 2d 68 65 n". " min-he
5f30: 69 67 68 74 3a 20 31 36 70 78 3b 5c 6e 22 0a 20 ight: 16px;\n".
5f40: 20 20 20 22 20 20 70 61 64 64 69 6e 67 2d 6c 65 " padding-le
5f50: 66 74 3a 20 32 31 70 78 3b 5c 6e 22 0a 20 20 20 ft: 21px;\n".
5f60: 20 22 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 69 " background-i
5f70: 6d 61 67 65 3a 20 75 72 6c 28 64 61 74 61 3a 69 mage: url(data:i
5f80: 6d 61 67 65 2f 67 69 66 3b 62 61 73 65 36 34 2c mage/gif;base64,
5f90: 52 30 6c 47 4f 44 6c 68 45 41 41 51 41 4a 45 41 R0lGODlhEAAQAJEA
5fa0: 41 50 22 0a 20 20 20 20 22 5c 5c 2f 5c 5c 2f 5c AP". "\\/\\/\
5fb0: 5c 2f 79 45 68 49 66 5c 5c 2f 5c 5c 2f 5c 5c 2f \/yEhIf\\/\\/\\/
5fc0: 77 41 41 41 43 48 35 42 41 45 48 41 41 49 41 4c wAAACH5BAEHAAIAL
5fd0: 41 41 41 41 41 41 51 41 42 41 41 41 41 49 76 6c AAAAAAQABAAAAIvl
5fe0: 49 4b 70 78 71 63 66 6d 67 22 0a 20 20 20 20 22 IKpxqcfmg". "
5ff0: 4f 55 76 6f 61 71 44 53 43 78 72 45 45 66 46 31 OUvoaqDSCxrEEfF1
6000: 34 47 71 46 58 49 6d 4a 5a 73 75 37 33 77 65 70 4GqFXImJZsu73wep
6010: 4a 7a 56 4d 4e 78 72 74 4e 54 6a 33 4e 41 54 4d JzVMNxrtNTj3NATM
6020: 4b 68 70 77 41 41 4f 77 3d 3d 29 3b 5c 6e 22 0a KhpwAAOw==);\n".
6030: 20 20 20 20 22 20 20 62 61 63 6b 67 72 6f 75 6e " backgroun
6040: 64 2d 70 6f 73 69 74 69 6f 6e 3a 20 63 65 6e 74 d-position: cent
6050: 65 72 20 6c 65 66 74 3b 5c 6e 22 0a 20 20 20 20 er left;\n".
6060: 22 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 72 65 " background-re
6070: 70 65 61 74 3a 20 6e 6f 2d 72 65 70 65 61 74 3b peat: no-repeat;
6080: 5c 6e 22 0a 20 20 7d 2c 0a 20 20 7b 20 22 75 6c \n". },. { "ul
6090: 2e 62 72 6f 77 73 65 72 22 2c 0a 20 20 20 20 22 .browser",. "
60a0: 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 69 6e list of files in
60b0: 20 74 68 65 20 27 66 6c 61 74 2d 76 69 65 77 27 the 'flat-view'
60c0: 20 66 69 6c 65 20 62 72 6f 77 73 65 72 22 2c 0a file browser",.
60d0: 20 20 20 20 40 20 20 20 6c 69 73 74 2d 73 74 79 @ list-sty
60e0: 6c 65 2d 74 79 70 65 3a 20 6e 6f 6e 65 3b 0a 20 le-type: none;.
60f0: 20 20 20 40 20 20 20 70 61 64 64 69 6e 67 3a 20 @ padding:
6100: 31 30 70 78 3b 0a 20 20 20 20 40 20 20 20 6d 61 10px;. @ ma
6110: 72 67 69 6e 3a 20 30 70 78 3b 0a 20 20 20 20 40 rgin: 0px;. @
6120: 20 20 20 77 68 69 74 65 2d 73 70 61 63 65 3a 20 white-space:
6130: 6e 6f 77 72 61 70 3b 0a 20 20 7d 2c 0a 20 20 7b nowrap;. },. {
6140: 20 22 75 6c 2e 62 72 6f 77 73 65 72 20 6c 69 2e "ul.browser li.
6150: 66 69 6c 65 22 2c 0a 20 20 20 20 22 4c 69 73 74 file",. "List
6160: 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 element in the
6170: 27 66 6c 61 74 2d 76 69 65 77 27 20 66 69 6c 65 'flat-view' file
6180: 20 62 72 6f 77 73 65 72 20 66 6f 72 20 61 20 66 browser for a f
6190: 69 6c 65 22 2c 0a 20 20 20 20 22 20 20 62 61 63 ile",. " bac
61a0: 6b 67 72 6f 75 6e 64 2d 69 6d 61 67 65 3a 20 75 kground-image: u
61b0: 72 6c 28 64 61 74 61 3a 69 6d 61 67 65 2f 67 69 rl(data:image/gi
61c0: 66 3b 62 61 73 65 36 34 2c 52 30 6c 47 4f 44 6c f;base64,R0lGODl
61d0: 68 45 41 41 51 41 4a 45 41 41 50 22 0a 20 20 20 hEAAQAJEAAP".
61e0: 20 22 5c 5c 2f 5c 5c 2f 5c 5c 2f 79 45 68 49 66 "\\/\\/\\/yEhIf
61f0: 5c 5c 2f 5c 5c 2f 5c 5c 2f 77 41 41 41 43 48 35 \\/\\/\\/wAAACH5
6200: 42 41 45 48 41 41 49 41 4c 41 41 41 41 41 41 51 BAEHAAIALAAAAAAQ
6210: 41 42 41 41 41 41 49 76 6c 49 4b 70 78 71 63 66 ABAAAAIvlIKpxqcf
6220: 6d 22 20 0a 20 20 20 20 22 67 4f 55 76 6f 61 71 m" . "gOUvoaq
6230: 44 53 43 78 72 45 45 66 46 31 34 47 71 46 58 49 DSCxrEEfF14GqFXI
6240: 6d 4a 5a 73 75 37 33 77 65 70 4a 7a 56 4d 4e 78 mJZsu73wepJzVMNx
6250: 72 74 4e 54 6a 33 4e 41 54 4d 4b 68 70 77 41 41 rtNTj3NATMKhpwAA
6260: 4f 77 3d 3d 29 3b 5c 6e 22 0a 20 20 20 20 22 20 Ow==);\n". "
6270: 20 62 61 63 6b 67 72 6f 75 6e 64 2d 72 65 70 65 background-repe
6280: 61 74 3a 20 6e 6f 2d 72 65 70 65 61 74 3b 5c 6e at: no-repeat;\n
6290: 22 0a 20 20 20 20 22 20 20 62 61 63 6b 67 72 6f ". " backgro
62a0: 75 6e 64 2d 70 6f 73 69 74 69 6f 6e 3a 20 30 70 und-position: 0p
62b0: 78 20 63 65 6e 74 65 72 3b 5c 6e 22 0a 20 20 20 x center;\n".
62c0: 20 22 20 20 70 61 64 64 69 6e 67 2d 6c 65 66 74 " padding-left
62d0: 3a 20 32 30 70 78 3b 5c 6e 22 0a 20 20 20 20 22 : 20px;\n". "
62e0: 20 20 70 61 64 64 69 6e 67 2d 74 6f 70 3a 20 32 padding-top: 2
62f0: 70 78 3b 5c 6e 22 0a 20 20 7d 2c 0a 20 20 7b 20 px;\n". },. {
6300: 22 75 6c 2e 62 72 6f 77 73 65 72 20 6c 69 2e 64 "ul.browser li.d
6310: 69 72 22 2c 0a 20 20 20 20 22 4c 69 73 74 20 65 ir",. "List e
6320: 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 27 66 lement in the 'f
6330: 6c 61 74 2d 76 69 65 77 20 66 69 6c 65 20 62 72 lat-view file br
6340: 6f 77 73 65 72 20 66 6f 72 20 61 20 64 69 72 65 owser for a dire
6350: 63 74 6f 72 79 22 2c 0a 20 20 20 20 22 20 20 62 ctory",. " b
6360: 61 63 6b 67 72 6f 75 6e 64 2d 69 6d 61 67 65 3a ackground-image:
6370: 20 75 72 6c 28 64 61 74 61 3a 69 6d 61 67 65 2f url(data:image/
6380: 67 69 66 3b 62 61 73 65 36 34 2c 52 30 6c 47 4f gif;base64,R0lGO
6390: 44 6c 68 45 41 41 51 41 4a 45 41 41 50 2f 57 56 DlhEAAQAJEAAP/WV
63a0: 43 49 69 22 0a 20 20 20 20 22 49 76 5c 5c 2f 5c CIi". "Iv\\/\
63b0: 5c 2f 5c 5c 2f 77 41 41 41 43 48 35 42 41 45 48 \/\\/wAAACH5BAEH
63c0: 41 41 49 41 4c 41 41 41 41 41 41 51 41 42 41 41 AAIALAAAAAAQABAA
63d0: 41 41 49 6e 6c 49 39 70 77 61 33 58 59 6e 69 43 AAInlI9pwa3XYniC
63e0: 67 51 74 6b 72 41 46 66 4c 58 6b 69 46 6f 31 6a gQtkrAFfLXkiFo1j
63f0: 61 58 22 0a 20 20 20 20 22 70 6f 2b 6a 55 73 36 aX". "po+jUs6
6400: 62 35 5a 2f 4b 34 73 69 44 75 35 52 50 55 46 41 b5Z/K4siDu5RPUFA
6410: 44 73 3d 29 3b 5c 6e 22 0a 20 20 20 20 22 20 20 Ds=);\n". "
6420: 62 61 63 6b 67 72 6f 75 6e 64 2d 72 65 70 65 61 background-repea
6430: 74 3a 20 6e 6f 2d 72 65 70 65 61 74 3b 5c 6e 22 t: no-repeat;\n"
6440: 0a 20 20 20 20 22 20 20 62 61 63 6b 67 72 6f 75 . " backgrou
6450: 6e 64 2d 70 6f 73 69 74 69 6f 6e 3a 20 30 70 78 nd-position: 0px
6460: 20 63 65 6e 74 65 72 3b 5c 6e 22 0a 20 20 20 20 center;\n".
6470: 22 20 20 70 61 64 64 69 6e 67 2d 6c 65 66 74 3a " padding-left:
6480: 20 32 30 70 78 3b 5c 6e 22 0a 20 20 20 20 22 20 20px;\n". "
6490: 20 70 61 64 64 69 6e 67 2d 74 6f 70 3a 20 32 70 padding-top: 2p
64a0: 78 3b 5c 6e 22 0a 20 20 7d 2c 0a 20 20 7b 20 22 x;\n". },. { "
64b0: 64 69 76 2e 66 69 6c 65 74 72 65 65 6c 69 6e 65 div.filetreeline
64c0: 22 2c 0a 20 20 20 20 22 6c 69 6e 65 20 6f 66 20 ",. "line of
64d0: 61 20 66 69 6c 65 20 74 72 65 65 22 2c 0a 20 20 a file tree",.
64e0: 20 20 40 20 20 20 64 69 73 70 6c 61 79 3a 20 74 @ display: t
64f0: 61 62 6c 65 3b 0a 20 20 20 20 40 20 20 20 77 69 able;. @ wi
6500: 64 74 68 3a 20 31 30 30 25 3b 0a 20 20 20 20 40 dth: 100%;. @
6510: 20 20 20 77 68 69 74 65 2d 73 70 61 63 65 3a 20 white-space:
6520: 6e 6f 77 72 61 70 3b 0a 20 20 7d 2c 0a 20 20 7b nowrap;. },. {
6530: 20 22 2e 66 69 6c 65 74 72 65 65 20 2e 64 69 72 ".filetree .dir
6540: 20 3e 20 64 69 76 2e 66 69 6c 65 74 72 65 65 6c > div.filetreel
6550: 69 6e 65 20 3e 20 61 22 2c 0a 20 20 20 20 22 74 ine > a",. "t
6560: 72 65 65 2d 76 69 65 77 20 64 69 72 65 63 74 6f ree-view directo
6570: 72 79 20 6c 69 6e 6b 73 22 2c 0a 20 20 20 20 22 ry links",. "
6580: 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 69 6d 61 background-ima
6590: 67 65 3a 20 75 72 6c 28 64 61 74 61 3a 69 6d 61 ge: url(data:ima
65a0: 67 65 2f 67 69 66 3b 62 61 73 65 36 34 2c 52 30 ge/gif;base64,R0
65b0: 6c 47 4f 44 6c 68 45 41 41 51 41 4a 45 41 41 50 lGODlhEAAQAJEAAP
65c0: 2f 57 56 43 49 69 22 0a 20 20 20 20 22 49 76 5c /WVCIi". "Iv\
65d0: 5c 2f 5c 5c 2f 5c 5c 2f 77 41 41 41 43 48 35 42 \/\\/\\/wAAACH5B
65e0: 41 45 48 41 41 49 41 4c 41 41 41 41 41 41 51 41 AEHAAIALAAAAAAQA
65f0: 42 41 41 41 41 49 6e 6c 49 39 70 77 61 33 58 59 BAAAAInlI9pwa3XY
6600: 6e 69 43 67 51 74 6b 72 41 46 66 4c 58 6b 69 46 niCgQtkrAFfLXkiF
6610: 6f 31 6a 61 58 70 22 0a 20 20 20 20 22 6f 2b 6a o1jaXp". "o+j
6620: 55 73 36 62 35 5a 2f 4b 34 73 69 44 75 35 52 50 Us6b5Z/K4siDu5RP
6630: 55 46 41 44 73 3d 29 3b 5c 6e 22 0a 20 20 7d 2c UFADs=);\n". },
6640: 0a 20 20 7b 20 22 64 69 76 2e 66 69 6c 65 74 72 . { "div.filetr
6650: 65 65 61 67 65 22 2c 0a 20 20 20 20 22 4c 61 73 eeage",. "Las
6660: 74 20 63 68 61 6e 67 65 20 66 6c 6f 61 74 69 6e t change floatin
6670: 67 20 64 69 73 70 6c 61 79 20 6f 6e 20 74 68 65 g display on the
6680: 20 72 69 67 68 74 22 2c 0a 20 20 20 20 40 20 20 right",. @
6690: 64 69 73 70 6c 61 79 3a 20 74 61 62 6c 65 2d 63 display: table-c
66a0: 65 6c 6c 3b 0a 20 20 20 20 40 20 20 70 61 64 64 ell;. @ padd
66b0: 69 6e 67 2d 6c 65 66 74 3a 20 33 65 6d 3b 0a 20 ing-left: 3em;.
66c0: 20 20 20 40 20 20 74 65 78 74 2d 61 6c 69 67 6e @ text-align
66d0: 3a 20 72 69 67 68 74 3b 0a 20 20 7d 2c 0a 20 20 : right;. },.
66e0: 7b 20 22 64 69 76 2e 66 69 6c 65 74 72 65 65 6c { "div.filetreel
66f0: 69 6e 65 3a 68 6f 76 65 72 22 2c 0a 20 20 20 20 ine:hover",.
6700: 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 6c "Highlight the l
6710: 69 6e 65 20 6f 66 20 61 20 66 69 6c 65 20 74 72 ine of a file tr
6720: 65 65 22 2c 0a 20 20 20 20 40 20 20 62 61 63 6b ee",. @ back
6730: 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 20 23 65 ground-color: #e
6740: 65 65 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 61 ee;. },. { "ta
6750: 62 6c 65 2e 6c 6f 67 69 6e 5f 6f 75 74 22 2c 0a ble.login_out",.
6760: 20 20 20 20 22 74 61 62 6c 65 20 66 6f 72 6d 61 "table forma
6770: 74 20 66 6f 72 20 6c 6f 67 69 6e 2f 6f 75 74 20 t for login/out
6780: 6c 61 62 65 6c 2f 69 6e 70 75 74 20 74 61 62 6c label/input tabl
6790: 65 22 2c 0a 20 20 20 20 40 20 20 20 74 65 78 74 e",. @ text
67a0: 2d 61 6c 69 67 6e 3a 20 6c 65 66 74 3b 0a 20 20 -align: left;.
67b0: 20 20 40 20 20 20 6d 61 72 67 69 6e 2d 72 69 67 @ margin-rig
67c0: 68 74 3a 20 31 30 70 78 3b 0a 20 20 20 20 40 20 ht: 10px;. @
67d0: 20 20 6d 61 72 67 69 6e 2d 6c 65 66 74 3a 20 31 margin-left: 1
67e0: 30 70 78 3b 0a 20 20 20 20 40 20 20 20 6d 61 72 0px;. @ mar
67f0: 67 69 6e 2d 74 6f 70 3a 20 31 30 70 78 3b 0a 20 gin-top: 10px;.
6800: 20 7d 2c 0a 20 20 7b 20 22 64 69 76 2e 63 61 70 },. { "div.cap
6810: 74 63 68 61 22 2c 0a 20 20 20 20 22 63 61 70 74 tcha",. "capt
6820: 63 68 61 20 64 69 73 70 6c 61 79 20 6f 70 74 69 cha display opti
6830: 6f 6e 73 22 2c 0a 20 20 20 20 40 20 20 20 74 65 ons",. @ te
6840: 78 74 2d 61 6c 69 67 6e 3a 20 63 65 6e 74 65 72 xt-align: center
6850: 3b 0a 20 20 20 20 40 20 20 20 70 61 64 64 69 6e ;. @ paddin
6860: 67 3a 20 31 65 78 3b 0a 20 20 7d 2c 0a 20 20 7b g: 1ex;. },. {
6870: 20 22 74 61 62 6c 65 2e 63 61 70 74 63 68 61 22 "table.captcha"
6880: 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f ,. "format fo
6890: 72 20 74 68 65 20 6c 61 79 6f 75 74 20 74 61 62 r the layout tab
68a0: 6c 65 2c 20 75 73 65 64 20 66 6f 72 20 74 68 65 le, used for the
68b0: 20 63 61 70 74 63 68 61 20 64 69 73 70 6c 61 79 captcha display
68c0: 22 2c 0a 20 20 20 20 40 20 20 20 6d 61 72 67 69 ",. @ margi
68d0: 6e 3a 20 61 75 74 6f 3b 0a 20 20 20 20 40 20 20 n: auto;. @
68e0: 20 70 61 64 64 69 6e 67 3a 20 31 30 70 78 3b 0a padding: 10px;.
68f0: 20 20 20 20 40 20 20 20 62 6f 72 64 65 72 2d 77 @ border-w
6900: 69 64 74 68 3a 20 34 70 78 3b 0a 20 20 20 20 40 idth: 4px;. @
6910: 20 20 20 62 6f 72 64 65 72 2d 73 74 79 6c 65 3a border-style:
6920: 20 64 6f 75 62 6c 65 3b 0a 20 20 20 20 40 20 20 double;. @
6930: 20 62 6f 72 64 65 72 2d 63 6f 6c 6f 72 3a 20 62 border-color: b
6940: 6c 61 63 6b 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 lack;. },. { "
6950: 74 64 2e 6c 6f 67 69 6e 5f 6f 75 74 5f 6c 61 62 td.login_out_lab
6960: 65 6c 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 el",. "format
6970: 20 66 6f 72 20 74 68 65 20 6c 61 62 65 6c 20 63 for the label c
6980: 65 6c 6c 73 20 69 6e 20 74 68 65 20 6c 6f 67 69 ells in the logi
6990: 6e 2f 6f 75 74 20 74 61 62 6c 65 22 2c 0a 20 20 n/out table",.
69a0: 20 20 40 20 20 20 74 65 78 74 2d 61 6c 69 67 6e @ text-align
69b0: 3a 20 63 65 6e 74 65 72 3b 0a 20 20 7d 2c 0a 20 : center;. },.
69c0: 20 7b 20 22 73 70 61 6e 2e 6c 6f 67 69 6e 45 72 { "span.loginEr
69d0: 72 6f 72 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 ror",. "forma
69e0: 74 20 66 6f 72 20 6c 6f 67 69 6e 20 65 72 72 6f t for login erro
69f0: 72 20 6d 65 73 73 61 67 65 73 22 2c 0a 20 20 20 r messages",.
6a00: 20 40 20 20 20 63 6f 6c 6f 72 3a 20 72 65 64 3b @ color: red;
6a10: 0a 20 20 7d 2c 0a 20 20 7b 20 22 73 70 61 6e 2e . },. { "span.
6a20: 6e 6f 74 65 22 2c 0a 20 20 20 20 22 66 6f 72 6d note",. "form
6a30: 61 74 20 66 6f 72 20 6c 65 61 64 69 6e 67 20 74 at for leading t
6a40: 65 78 74 20 66 6f 72 20 6e 6f 74 65 73 22 2c 0a ext for notes",.
6a50: 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 77 65 69 @ font-wei
6a60: 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a ght: bold;. },.
6a70: 20 20 7b 20 22 73 70 61 6e 2e 74 65 78 74 61 72 { "span.textar
6a80: 65 61 4c 61 62 65 6c 22 2c 0a 20 20 20 20 22 66 eaLabel",. "f
6a90: 6f 72 6d 61 74 20 66 6f 72 20 74 65 78 74 61 72 ormat for textar
6aa0: 65 61 20 6c 61 62 65 6c 73 22 2c 0a 20 20 20 20 ea labels",.
6ab0: 40 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a @ font-weight:
6ac0: 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 bold;. },. {
6ad0: 22 74 61 62 6c 65 2e 75 73 65 74 75 70 4c 61 79 "table.usetupLay
6ae0: 6f 75 74 54 61 62 6c 65 22 2c 0a 20 20 20 20 22 outTable",. "
6af0: 66 6f 72 6d 61 74 20 66 6f 72 20 74 68 65 20 75 format for the u
6b00: 73 65 72 20 73 65 74 75 70 20 6c 61 79 6f 75 74 ser setup layout
6b10: 20 74 61 62 6c 65 22 2c 0a 20 20 20 20 40 20 20 table",. @
6b20: 20 6f 75 74 6c 69 6e 65 2d 73 74 79 6c 65 3a 20 outline-style:
6b30: 6e 6f 6e 65 3b 0a 20 20 20 20 40 20 20 20 70 61 none;. @ pa
6b40: 64 64 69 6e 67 3a 20 30 3b 0a 20 20 20 20 40 20 dding: 0;. @
6b50: 20 20 6d 61 72 67 69 6e 3a 20 32 35 70 78 3b 0a margin: 25px;.
6b60: 20 20 7d 2c 0a 20 20 7b 20 22 74 64 2e 75 73 65 },. { "td.use
6b70: 74 75 70 43 6f 6c 75 6d 6e 4c 61 79 6f 75 74 22 tupColumnLayout"
6b80: 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 6f 66 ,. "format of
6b90: 20 74 68 65 20 63 6f 6c 75 6d 6e 73 20 6f 6e 20 the columns on
6ba0: 74 68 65 20 75 73 65 72 20 73 65 74 75 70 20 6c the user setup l
6bb0: 69 73 74 20 70 61 67 65 22 2c 0a 20 20 20 20 40 ist page",. @
6bc0: 20 20 20 76 65 72 74 69 63 61 6c 2d 61 6c 69 67 vertical-alig
6bd0: 6e 3a 20 74 6f 70 0a 20 20 7d 2c 0a 20 20 7b 20 n: top. },. {
6be0: 22 74 61 62 6c 65 2e 75 73 65 74 75 70 55 73 65 "table.usetupUse
6bf0: 72 4c 69 73 74 22 2c 0a 20 20 20 20 22 66 6f 72 rList",. "for
6c00: 6d 61 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 mat for the user
6c10: 20 6c 69 73 74 20 74 61 62 6c 65 20 6f 6e 20 74 list table on t
6c20: 68 65 20 75 73 65 72 20 73 65 74 75 70 20 70 61 he user setup pa
6c30: 67 65 22 2c 0a 20 20 20 20 40 20 20 20 6f 75 74 ge",. @ out
6c40: 6c 69 6e 65 2d 73 74 79 6c 65 3a 20 64 6f 75 62 line-style: doub
6c50: 6c 65 3b 0a 20 20 20 20 40 20 20 20 6f 75 74 6c le;. @ outl
6c60: 69 6e 65 2d 77 69 64 74 68 3a 20 31 70 78 3b 0a ine-width: 1px;.
6c70: 20 20 20 20 40 20 20 20 70 61 64 64 69 6e 67 3a @ padding:
6c80: 20 31 30 70 78 3b 0a 20 20 7d 2c 0a 20 20 7b 20 10px;. },. {
6c90: 22 74 68 2e 75 73 65 74 75 70 4c 69 73 74 55 73 "th.usetupListUs
6ca0: 65 72 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 er",. "format
6cb0: 20 66 6f 72 20 74 61 62 6c 65 20 68 65 61 64 65 for table heade
6cc0: 72 20 75 73 65 72 20 69 6e 20 75 73 65 72 20 6c r user in user l
6cd0: 69 73 74 20 6f 6e 20 75 73 65 72 20 73 65 74 75 ist on user setu
6ce0: 70 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 20 p page",. @
6cf0: 20 74 65 78 74 2d 61 6c 69 67 6e 3a 20 72 69 67 text-align: rig
6d00: 68 74 3b 0a 20 20 20 20 40 20 20 20 70 61 64 64 ht;. @ padd
6d10: 69 6e 67 2d 72 69 67 68 74 3a 20 32 30 70 78 3b ing-right: 20px;
6d20: 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 68 2e 75 73 . },. { "th.us
6d30: 65 74 75 70 4c 69 73 74 43 61 70 22 2c 0a 20 20 etupListCap",.
6d40: 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 74 61 "format for ta
6d50: 62 6c 65 20 68 65 61 64 65 72 20 63 61 70 61 62 ble header capab
6d60: 69 6c 69 74 69 65 73 20 69 6e 20 75 73 65 72 20 ilities in user
6d70: 6c 69 73 74 20 6f 6e 20 75 73 65 72 20 73 65 74 list on user set
6d80: 75 70 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 up page",. @
6d90: 20 20 74 65 78 74 2d 61 6c 69 67 6e 3a 20 63 65 text-align: ce
6da0: 6e 74 65 72 3b 0a 20 20 20 20 40 20 20 20 70 61 nter;. @ pa
6db0: 64 64 69 6e 67 2d 72 69 67 68 74 3a 20 31 35 70 dding-right: 15p
6dc0: 78 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 68 2e x;. },. { "th.
6dd0: 75 73 65 74 75 70 4c 69 73 74 43 6f 6e 22 2c 0a usetupListCon",.
6de0: 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 "format for
6df0: 74 61 62 6c 65 20 68 65 61 64 65 72 20 63 6f 6e table header con
6e00: 74 61 63 74 20 69 6e 66 6f 20 69 6e 20 75 73 65 tact info in use
6e10: 72 20 6c 69 73 74 20 6f 6e 20 75 73 65 72 20 73 r list on user s
6e20: 65 74 75 70 20 70 61 67 65 22 2c 0a 20 20 20 20 etup page",.
6e30: 40 20 20 20 74 65 78 74 2d 61 6c 69 67 6e 3a 20 @ text-align:
6e40: 6c 65 66 74 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 left;. },. { "
6e50: 74 64 2e 75 73 65 74 75 70 4c 69 73 74 55 73 65 td.usetupListUse
6e60: 72 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 r",. "format
6e70: 66 6f 72 20 74 61 62 6c 65 20 63 65 6c 6c 20 75 for table cell u
6e80: 73 65 72 20 69 6e 20 75 73 65 72 20 6c 69 73 74 ser in user list
6e90: 20 6f 6e 20 75 73 65 72 20 73 65 74 75 70 20 70 on user setup p
6ea0: 61 67 65 22 2c 0a 20 20 20 20 40 20 20 20 74 65 age",. @ te
6eb0: 78 74 2d 61 6c 69 67 6e 3a 20 72 69 67 68 74 3b xt-align: right;
6ec0: 0a 20 20 20 20 40 20 20 20 70 61 64 64 69 6e 67 . @ padding
6ed0: 2d 72 69 67 68 74 3a 20 32 30 70 78 3b 0a 20 20 -right: 20px;.
6ee0: 20 20 40 20 20 20 77 68 69 74 65 2d 73 70 61 63 @ white-spac
6ef0: 65 3a 6e 6f 77 72 61 70 3b 0a 20 20 7d 2c 0a 20 e:nowrap;. },.
6f00: 20 7b 20 22 74 64 2e 75 73 65 74 75 70 4c 69 73 { "td.usetupLis
6f10: 74 43 61 70 22 2c 0a 20 20 20 20 22 66 6f 72 6d tCap",. "form
6f20: 61 74 20 66 6f 72 20 74 61 62 6c 65 20 63 65 6c at for table cel
6f30: 6c 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 69 l capabilities i
6f40: 6e 20 75 73 65 72 20 6c 69 73 74 20 6f 6e 20 75 n user list on u
6f50: 73 65 72 20 73 65 74 75 70 20 70 61 67 65 22 2c ser setup page",
6f60: 0a 20 20 20 20 40 20 20 20 74 65 78 74 2d 61 6c . @ text-al
6f70: 69 67 6e 3a 20 63 65 6e 74 65 72 3b 0a 20 20 20 ign: center;.
6f80: 20 40 20 20 20 70 61 64 64 69 6e 67 2d 72 69 67 @ padding-rig
6f90: 68 74 3a 20 31 35 70 78 3b 0a 20 20 7d 2c 0a 20 ht: 15px;. },.
6fa0: 20 7b 20 22 74 64 2e 75 73 65 74 75 70 4c 69 73 { "td.usetupLis
6fb0: 74 43 6f 6e 22 2c 0a 20 20 20 20 22 66 6f 72 6d tCon",. "form
6fc0: 61 74 20 66 6f 72 20 74 61 62 6c 65 20 63 65 6c at for table cel
6fd0: 6c 20 63 6f 6e 74 61 63 74 20 69 6e 66 6f 20 69 l contact info i
6fe0: 6e 20 75 73 65 72 20 6c 69 73 74 20 6f 6e 20 75 n user list on u
6ff0: 73 65 72 20 73 65 74 75 70 20 70 61 67 65 22 2c ser setup page",
7000: 0a 20 20 20 20 40 20 20 20 74 65 78 74 2d 61 6c . @ text-al
7010: 69 67 6e 3a 20 6c 65 66 74 0a 20 20 7d 2c 0a 20 ign: left. },.
7020: 20 7b 20 22 64 69 76 2e 75 65 64 69 74 43 61 70 { "div.ueditCap
7030: 42 6f 78 22 2c 0a 20 20 20 20 22 6c 61 79 6f 75 Box",. "layou
7040: 74 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 t definition for
7050: 20 74 68 65 20 63 61 70 61 62 69 6c 69 74 69 65 the capabilitie
7060: 73 20 62 6f 78 20 6f 6e 20 74 68 65 20 75 73 65 s box on the use
7070: 72 20 65 64 69 74 20 64 65 74 61 69 6c 20 70 61 r edit detail pa
7080: 67 65 22 2c 0a 20 20 20 20 40 20 20 20 66 6c 6f ge",. @ flo
7090: 61 74 3a 20 6c 65 66 74 3b 0a 20 20 20 20 40 20 at: left;. @
70a0: 20 20 6d 61 72 67 69 6e 2d 72 69 67 68 74 3a 20 margin-right:
70b0: 32 30 70 78 3b 0a 20 20 20 20 40 20 20 20 6d 61 20px;. @ ma
70c0: 72 67 69 6e 2d 62 6f 74 74 6f 6d 3a 20 32 30 70 rgin-bottom: 20p
70d0: 78 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 64 2e x;. },. { "td.
70e0: 75 73 65 74 75 70 45 64 69 74 4c 61 62 65 6c 22 usetupEditLabel"
70f0: 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 6f 66 ,. "format of
7100: 20 74 68 65 20 6c 61 62 65 6c 20 63 65 6c 6c 73 the label cells
7110: 20 69 6e 20 74 68 65 20 64 65 74 61 69 6c 65 64 in the detailed
7120: 20 75 73 65 72 20 65 64 69 74 20 70 61 67 65 22 user edit page"
7130: 2c 0a 20 20 20 20 40 20 20 20 74 65 78 74 2d 61 ,. @ text-a
7140: 6c 69 67 6e 3a 20 72 69 67 68 74 3b 0a 20 20 20 lign: right;.
7150: 20 40 20 20 20 76 65 72 74 69 63 61 6c 2d 61 6c @ vertical-al
7160: 69 67 6e 3a 20 74 6f 70 3b 0a 20 20 20 20 40 20 ign: top;. @
7170: 20 20 77 68 69 74 65 2d 73 70 61 63 65 3a 20 6e white-space: n
7180: 6f 77 72 61 70 3b 0a 20 20 7d 2c 0a 20 20 7b 20 owrap;. },. {
7190: 22 73 70 61 6e 2e 75 65 64 69 74 49 6e 68 65 72 "span.ueditInher
71a0: 69 74 4e 6f 62 6f 64 79 22 2c 0a 20 20 20 20 22 itNobody",. "
71b0: 63 6f 6c 6f 72 20 66 6f 72 20 63 61 70 61 62 69 color for capabi
71c0: 6c 69 74 69 65 73 2c 20 69 6e 68 65 72 69 74 65 lities, inherite
71d0: 64 20 62 79 20 6e 6f 62 6f 64 79 22 2c 0a 20 20 d by nobody",.
71e0: 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 67 72 65 @ color: gre
71f0: 65 6e 3b 0a 20 20 20 20 40 20 20 20 70 61 64 64 en;. @ padd
7200: 69 6e 67 3a 20 2e 32 65 6d 3b 0a 20 20 7d 2c 0a ing: .2em;. },.
7210: 20 20 7b 20 22 73 70 61 6e 2e 75 65 64 69 74 49 { "span.ueditI
7220: 6e 68 65 72 69 74 44 65 76 65 6c 6f 70 65 72 22 nheritDeveloper"
7230: 2c 0a 20 20 20 20 22 63 6f 6c 6f 72 20 66 6f 72 ,. "color for
7240: 20 63 61 70 61 62 69 6c 69 74 69 65 73 2c 20 69 capabilities, i
7250: 6e 68 65 72 69 74 65 64 20 62 79 20 64 65 76 65 nherited by deve
7260: 6c 6f 70 65 72 22 2c 0a 20 20 20 20 40 20 20 20 loper",. @
7270: 63 6f 6c 6f 72 3a 20 72 65 64 3b 0a 20 20 20 20 color: red;.
7280: 40 20 20 20 70 61 64 64 69 6e 67 3a 20 2e 32 65 @ padding: .2e
7290: 6d 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 73 70 61 m;. },. { "spa
72a0: 6e 2e 75 65 64 69 74 49 6e 68 65 72 69 74 52 65 n.ueditInheritRe
72b0: 61 64 65 72 22 2c 0a 20 20 20 20 22 63 6f 6c 6f ader",. "colo
72c0: 72 20 66 6f 72 20 63 61 70 61 62 69 6c 69 74 69 r for capabiliti
72d0: 65 73 2c 20 69 6e 68 65 72 69 74 65 64 20 62 79 es, inherited by
72e0: 20 72 65 61 64 65 72 22 2c 0a 20 20 20 20 40 20 reader",. @
72f0: 20 20 63 6f 6c 6f 72 3a 20 62 6c 61 63 6b 3b 0a color: black;.
7300: 20 20 20 20 40 20 20 20 70 61 64 64 69 6e 67 3a @ padding:
7310: 20 2e 32 65 6d 3b 0a 20 20 7d 2c 0a 20 20 7b 20 .2em;. },. {
7320: 22 73 70 61 6e 2e 75 65 64 69 74 49 6e 68 65 72 "span.ueditInher
7330: 69 74 41 6e 6f 6e 79 6d 6f 75 73 22 2c 0a 20 20 itAnonymous",.
7340: 20 20 22 63 6f 6c 6f 72 20 66 6f 72 20 63 61 70 "color for cap
7350: 61 62 69 6c 69 74 69 65 73 2c 20 69 6e 68 65 72 abilities, inher
7360: 69 74 65 64 20 62 79 20 61 6e 6f 6e 79 6d 6f 75 ited by anonymou
7370: 73 22 2c 0a 20 20 20 20 40 20 20 20 63 6f 6c 6f s",. @ colo
7380: 72 3a 20 62 6c 75 65 3b 0a 20 20 20 20 40 20 20 r: blue;. @
7390: 20 70 61 64 64 69 6e 67 3a 20 2e 32 65 6d 3b 0a padding: .2em;.
73a0: 20 20 7d 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 63 },. { "span.c
73b0: 61 70 61 62 69 6c 69 74 79 22 2c 0a 20 20 20 20 apability",.
73c0: 22 66 6f 72 6d 61 74 20 66 6f 72 20 63 61 70 61 "format for capa
73d0: 62 69 6c 69 74 69 65 73 2c 20 6d 65 6e 74 69 6f bilities, mentio
73e0: 6e 65 64 20 6f 6e 20 74 68 65 20 75 73 65 72 20 ned on the user
73f0: 65 64 69 74 20 70 61 67 65 22 2c 0a 20 20 20 20 edit page",.
7400: 40 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a @ font-weight:
7410: 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 bold;. },. {
7420: 22 73 70 61 6e 2e 75 73 65 72 74 79 70 65 22 2c "span.usertype",
7430: 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 . "format for
7440: 20 64 69 66 66 65 72 65 6e 74 20 75 73 65 72 20 different user
7450: 74 79 70 65 73 2c 20 6d 65 6e 74 69 6f 6e 65 64 types, mentioned
7460: 20 6f 6e 20 74 68 65 20 75 73 65 72 20 65 64 69 on the user edi
7470: 74 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 20 t page",. @
7480: 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f font-weight: bo
7490: 6c 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 73 70 ld;. },. { "sp
74a0: 61 6e 2e 75 73 65 72 74 79 70 65 3a 62 65 66 6f an.usertype:befo
74b0: 72 65 22 2c 0a 20 20 20 20 22 6c 65 61 64 69 6e re",. "leadin
74c0: 67 20 74 65 78 74 20 66 6f 72 20 75 73 65 72 20 g text for user
74d0: 74 79 70 65 73 2c 20 6d 65 6e 74 69 6f 6e 65 64 types, mentioned
74e0: 20 6f 6e 20 74 68 65 20 75 73 65 72 20 65 64 69 on the user edi
74f0: 74 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 20 t page",. @
7500: 20 63 6f 6e 74 65 6e 74 3a 22 27 22 3b 0a 20 20 content:"'";.
7510: 7d 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 75 73 65 },. { "span.use
7520: 72 74 79 70 65 3a 61 66 74 65 72 22 2c 0a 20 20 rtype:after",.
7530: 20 20 22 74 72 61 69 6c 69 6e 67 20 74 65 78 74 "trailing text
7540: 20 66 6f 72 20 75 73 65 72 20 74 79 70 65 73 2c for user types,
7550: 20 6d 65 6e 74 69 6f 6e 65 64 20 6f 6e 20 74 68 mentioned on th
7560: 65 20 75 73 65 72 20 65 64 69 74 20 70 61 67 65 e user edit page
7570: 22 2c 0a 20 20 20 20 40 20 20 20 63 6f 6e 74 65 ",. @ conte
7580: 6e 74 3a 22 27 22 3b 0a 20 20 7d 2c 0a 20 20 7b nt:"'";. },. {
7590: 20 22 64 69 76 2e 73 65 6c 65 63 74 65 64 54 65 "div.selectedTe
75a0: 78 74 22 2c 0a 20 20 20 20 22 73 65 6c 65 63 74 xt",. "select
75b0: 65 64 20 6c 69 6e 65 73 20 6f 66 20 74 65 78 74 ed lines of text
75c0: 20 77 69 74 68 69 6e 20 61 20 6c 69 6e 65 6e 75 within a linenu
75d0: 6d 62 65 72 65 64 20 61 72 74 69 66 61 63 74 20 mbered artifact
75e0: 64 69 73 70 6c 61 79 22 2c 0a 20 20 20 20 40 20 display",. @
75f0: 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 font-weight: b
7600: 6f 6c 64 3b 0a 20 20 20 20 40 20 20 20 63 6f 6c old;. @ col
7610: 6f 72 3a 20 62 6c 75 65 3b 0a 20 20 20 20 40 20 or: blue;. @
7620: 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c background-col
7630: 6f 72 3a 20 23 64 35 64 35 66 66 3b 0a 20 20 20 or: #d5d5ff;.
7640: 20 40 20 20 20 62 6f 72 64 65 72 3a 20 31 70 78 @ border: 1px
7650: 20 62 6c 75 65 20 73 6f 6c 69 64 3b 0a 20 20 7d blue solid;. }
7660: 2c 0a 20 20 7b 20 22 70 2e 6d 69 73 73 69 6e 67 ,. { "p.missing
7670: 50 72 69 76 22 2c 0a 20 20 20 20 22 66 6f 72 6d Priv",. "form
7680: 61 74 20 66 6f 72 20 6d 69 73 73 69 6e 67 20 70 at for missing p
7690: 72 69 76 69 6c 65 67 65 73 20 6e 6f 74 65 20 6f rivileges note o
76a0: 6e 20 75 73 65 72 20 73 65 74 75 70 20 70 61 67 n user setup pag
76b0: 65 22 2c 0a 20 20 20 20 40 20 20 63 6f 6c 6f 72 e",. @ color
76c0: 3a 20 62 6c 75 65 3b 0a 20 20 7d 2c 0a 20 20 7b : blue;. },. {
76d0: 20 22 73 70 61 6e 2e 77 69 6b 69 72 75 6c 65 48 "span.wikiruleH
76e0: 65 61 64 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 ead",. "forma
76f0: 74 20 66 6f 72 20 6c 65 61 64 69 6e 67 20 74 65 t for leading te
7700: 78 74 20 69 6e 20 77 69 6b 69 72 75 6c 65 73 20 xt in wikirules
7710: 64 65 66 69 6e 69 74 69 6f 6e 73 22 2c 0a 20 20 definitions",.
7720: 20 20 40 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 @ font-weigh
7730: 74 3a 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 20 t: bold;. },.
7740: 7b 20 22 74 64 2e 74 6b 74 44 73 70 4c 61 62 65 { "td.tktDspLabe
7750: 6c 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 l",. "format
7760: 66 6f 72 20 6c 61 62 65 6c 73 20 6f 6e 20 74 69 for labels on ti
7770: 63 6b 65 74 20 64 69 73 70 6c 61 79 20 70 61 67 cket display pag
7780: 65 22 2c 0a 20 20 20 20 40 20 20 20 74 65 78 74 e",. @ text
7790: 2d 61 6c 69 67 6e 3a 20 72 69 67 68 74 3b 0a 20 -align: right;.
77a0: 20 7d 2c 0a 20 20 7b 20 22 74 64 2e 74 6b 74 44 },. { "td.tktD
77b0: 73 70 56 61 6c 75 65 22 2c 0a 20 20 20 20 22 66 spValue",. "f
77c0: 6f 72 6d 61 74 20 66 6f 72 20 76 61 6c 75 65 73 ormat for values
77d0: 20 6f 6e 20 74 69 63 6b 65 74 20 64 69 73 70 6c on ticket displ
77e0: 61 79 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 ay page",. @
77f0: 20 20 74 65 78 74 2d 61 6c 69 67 6e 3a 20 6c 65 text-align: le
7800: 66 74 3b 0a 20 20 20 20 40 20 20 20 76 65 72 74 ft;. @ vert
7810: 69 63 61 6c 2d 61 6c 69 67 6e 3a 20 74 6f 70 3b ical-align: top;
7820: 0a 20 20 20 20 40 20 20 20 62 61 63 6b 67 72 6f . @ backgro
7830: 75 6e 64 2d 63 6f 6c 6f 72 3a 20 23 64 30 64 30 und-color: #d0d0
7840: 64 30 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 73 70 d0;. },. { "sp
7850: 61 6e 2e 74 6b 74 45 72 72 6f 72 22 2c 0a 20 20 an.tktError",.
7860: 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 74 69 "format for ti
7870: 63 6b 65 74 20 65 72 72 6f 72 20 6d 65 73 73 61 cket error messa
7880: 67 65 73 22 2c 0a 20 20 20 20 40 20 20 20 63 6f ges",. @ co
7890: 6c 6f 72 3a 20 72 65 64 3b 0a 20 20 20 20 40 20 lor: red;. @
78a0: 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 font-weight: b
78b0: 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 old;. },. { "t
78c0: 61 62 6c 65 2e 72 70 74 65 64 69 74 65 78 22 2c able.rpteditex",
78d0: 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 . "format for
78e0: 20 65 78 61 6d 70 6c 65 20 74 61 62 6c 65 73 20 example tables
78f0: 6f 6e 20 74 68 65 20 72 65 70 6f 72 74 20 65 64 on the report ed
7900: 69 74 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 it page",. @
7910: 20 20 66 6c 6f 61 74 3a 20 72 69 67 68 74 3b 0a float: right;.
7920: 20 20 20 20 40 20 20 20 6d 61 72 67 69 6e 3a 20 @ margin:
7930: 30 3b 0a 20 20 20 20 40 20 20 20 70 61 64 64 69 0;. @ paddi
7940: 6e 67 3a 20 30 3b 0a 20 20 20 20 40 20 20 20 77 ng: 0;. @ w
7950: 69 64 74 68 3a 20 31 32 35 70 78 3b 0a 20 20 20 idth: 125px;.
7960: 20 40 20 20 20 74 65 78 74 2d 61 6c 69 67 6e 3a @ text-align:
7970: 20 63 65 6e 74 65 72 3b 0a 20 20 20 20 40 20 20 center;. @
7980: 20 62 6f 72 64 65 72 2d 63 6f 6c 6c 61 70 73 65 border-collapse
7990: 3a 20 63 6f 6c 6c 61 70 73 65 3b 0a 20 20 20 20 : collapse;.
79a0: 40 20 20 20 62 6f 72 64 65 72 2d 73 70 61 63 69 @ border-spaci
79b0: 6e 67 3a 20 30 3b 0a 20 20 7d 2c 0a 20 20 7b 20 ng: 0;. },. {
79c0: 22 74 61 62 6c 65 2e 72 65 70 6f 72 74 22 2c 0a "table.report",.
79d0: 20 20 20 20 22 54 69 63 6b 65 74 20 72 65 70 6f "Ticket repo
79e0: 72 74 20 74 61 62 6c 65 20 66 6f 72 6d 61 74 74 rt table formatt
79f0: 69 6e 67 22 2c 0a 20 20 20 20 40 20 20 20 62 6f ing",. @ bo
7a00: 72 64 65 72 2d 63 6f 6c 6c 61 70 73 65 3a 63 6f rder-collapse:co
7a10: 6c 6c 61 70 73 65 3b 0a 20 20 20 20 40 20 20 20 llapse;. @
7a20: 62 6f 72 64 65 72 3a 20 31 70 78 20 73 6f 6c 69 border: 1px soli
7a30: 64 20 23 39 39 39 3b 0a 20 20 20 20 40 20 20 20 d #999;. @
7a40: 6d 61 72 67 69 6e 3a 20 31 65 6d 20 30 20 31 65 margin: 1em 0 1e
7a50: 6d 20 30 3b 0a 20 20 20 20 40 20 20 20 63 75 72 m 0;. @ cur
7a60: 73 6f 72 3a 20 70 6f 69 6e 74 65 72 3b 0a 20 20 sor: pointer;.
7a70: 7d 2c 0a 20 20 7b 20 22 74 64 2e 72 70 74 65 64 },. { "td.rpted
7a80: 69 74 65 78 22 2c 0a 20 20 20 20 22 66 6f 72 6d itex",. "form
7a90: 61 74 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 74 at for example t
7aa0: 61 62 6c 65 20 63 65 6c 6c 73 20 6f 6e 20 74 68 able cells on th
7ab0: 65 20 72 65 70 6f 72 74 20 65 64 69 74 20 70 61 e report edit pa
7ac0: 67 65 22 2c 0a 20 20 20 20 40 20 20 20 62 6f 72 ge",. @ bor
7ad0: 64 65 72 2d 77 69 64 74 68 3a 20 74 68 69 6e 3b der-width: thin;
7ae0: 0a 20 20 20 20 40 20 20 20 62 6f 72 64 65 72 2d . @ border-
7af0: 63 6f 6c 6f 72 3a 20 23 30 30 30 30 30 30 3b 0a color: #000000;.
7b00: 20 20 20 20 40 20 20 20 62 6f 72 64 65 72 2d 73 @ border-s
7b10: 74 79 6c 65 3a 20 73 6f 6c 69 64 3b 0a 20 20 7d tyle: solid;. }
7b20: 2c 0a 20 20 7b 20 22 69 6e 70 75 74 2e 63 68 65 ,. { "input.che
7b30: 63 6b 69 6e 55 73 65 72 43 6f 6c 6f 72 22 2c 0a ckinUserColor",.
7b40: 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 "format for
7b50: 75 73 65 72 20 63 6f 6c 6f 72 20 69 6e 70 75 74 user color input
7b60: 20 6f 6e 20 63 68 65 63 6b 2d 69 6e 20 65 64 69 on check-in edi
7b70: 74 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 2f t page",. @ /
7b80: 2a 20 6e 6f 20 73 70 65 63 69 61 6c 20 64 65 66 * no special def
7b90: 69 6e 69 74 69 6f 6e 73 2c 20 63 6c 61 73 73 20 initions, class
7ba0: 64 65 66 69 6e 65 64 2c 20 74 6f 20 65 6e 61 62 defined, to enab
7bb0: 6c 65 20 63 6f 6c 6f 72 20 70 69 63 6b 65 72 73 le color pickers
7bc0: 2c 20 66 2e 65 2e 3a 0a 20 20 20 20 40 20 2a 2a , f.e.:. @ **
7bd0: 20 20 61 64 64 20 74 68 65 20 63 6f 6c 6f 72 20 add the color
7be0: 70 69 63 6b 65 72 20 66 6f 75 6e 64 20 61 74 20 picker found at
7bf0: 68 74 74 70 3a 6a 73 63 6f 6c 6f 72 2e 63 6f 6d http:jscolor.com
7c00: 20 20 61 73 20 6a 61 76 61 20 73 63 72 69 70 74 as java script
7c10: 20 69 6e 63 6c 75 64 65 0a 20 20 20 20 40 20 2a include. @ *
7c20: 2a 20 20 74 6f 20 74 68 65 20 68 65 61 64 65 72 * to the header
7c30: 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 65 20 74 and configure t
7c40: 68 65 20 6a 61 76 61 20 73 63 72 69 70 74 20 66 he java script f
7c50: 69 6c 65 20 77 69 74 68 0a 20 20 20 20 40 20 2a ile with. @ *
7c60: 2a 20 20 20 31 2e 20 75 73 65 20 61 73 20 62 69 * 1. use as bi
7c70: 6e 64 43 6c 61 73 73 20 3a 63 68 65 63 6b 69 6e ndClass :checkin
7c80: 55 73 65 72 43 6f 6c 6f 72 0a 20 20 20 20 40 20 UserColor. @
7c90: 2a 2a 20 20 20 32 2e 20 63 68 61 6e 67 65 20 74 ** 2. change t
7ca0: 68 65 20 64 65 66 61 75 6c 74 20 68 61 73 68 20 he default hash
7cb0: 61 64 64 69 6e 67 20 62 65 68 61 76 69 6f 75 72 adding behaviour
7cc0: 20 74 6f 20 4f 4e 0a 20 20 20 20 40 20 2a 2a 20 to ON. @ **
7cd0: 6f 72 20 63 68 61 6e 67 65 20 74 68 65 20 63 6c or change the cl
7ce0: 61 73 73 20 64 65 66 69 74 69 6f 6e 20 6f 66 20 ass defition of
7cf0: 65 6c 65 6d 65 6e 74 20 69 64 65 6e 74 69 66 69 element identifi
7d00: 65 64 20 62 79 20 69 64 3d 22 63 6c 72 63 75 73 ed by id="clrcus
7d10: 74 22 0a 20 20 20 20 40 20 2a 2a 20 74 6f 20 61 t". @ ** to a
7d20: 20 73 74 61 6e 64 61 72 64 20 6a 73 63 6f 6c 6f standard jscolo
7d30: 72 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 r definition wit
7d40: 68 20 6a 61 76 61 20 73 63 72 69 70 74 20 69 6e h java script in
7d50: 20 74 68 65 20 66 6f 6f 74 65 72 2e 20 2a 2f 0a the footer. */.
7d60: 20 20 7d 2c 0a 20 20 7b 20 22 64 69 76 2e 65 6e },. { "div.en
7d70: 64 43 6f 6e 74 65 6e 74 22 2c 0a 20 20 20 20 22 dContent",. "
7d80: 66 6f 72 6d 61 74 20 66 6f 72 20 65 6e 64 20 6f format for end o
7d90: 66 20 63 6f 6e 74 65 6e 74 20 61 72 65 61 2c 20 f content area,
7da0: 74 6f 20 62 65 20 75 73 65 64 20 74 6f 20 63 6c to be used to cl
7db0: 65 61 72 20 70 61 67 65 20 66 6c 6f 77 2e 22 2c ear page flow.",
7dc0: 0a 20 20 20 20 40 20 20 20 63 6c 65 61 72 3a 20 . @ clear:
7dd0: 62 6f 74 68 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 both;. },. { "
7de0: 70 2e 67 65 6e 65 72 61 6c 45 72 72 6f 72 22 2c p.generalError",
7df0: 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 . "format for
7e00: 20 67 65 6e 65 72 61 6c 20 65 72 72 6f 72 73 22 general errors"
7e10: 2c 0a 20 20 20 20 40 20 20 20 63 6f 6c 6f 72 3a ,. @ color:
7e20: 20 72 65 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 red;. },. { "
7e30: 70 2e 74 6b 74 73 65 74 75 70 45 72 72 6f 72 22 p.tktsetupError"
7e40: 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f ,. "format fo
7e50: 72 20 74 6b 74 73 65 74 75 70 20 65 72 72 6f 72 r tktsetup error
7e60: 73 22 2c 0a 20 20 20 20 40 20 20 20 63 6f 6c 6f s",. @ colo
7e70: 72 3a 20 72 65 64 3b 0a 20 20 20 20 40 20 20 20 r: red;. @
7e80: 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c font-weight: bol
7e90: 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 70 2e 78 d;. },. { "p.x
7ea0: 66 65 72 73 65 74 75 70 45 72 72 6f 72 22 2c 0a fersetupError",.
7eb0: 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 "format for
7ec0: 78 66 65 72 73 65 74 75 70 20 65 72 72 6f 72 73 xfersetup errors
7ed0: 22 2c 0a 20 20 20 20 40 20 20 20 63 6f 6c 6f 72 ",. @ color
7ee0: 3a 20 72 65 64 3b 0a 20 20 20 20 40 20 20 20 66 : red;. @ f
7ef0: 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c 64 ont-weight: bold
7f00: 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 70 2e 74 68 ;. },. { "p.th
7f10: 6d 61 69 6e 45 72 72 6f 72 22 2c 0a 20 20 20 20 mainError",.
7f20: 22 66 6f 72 6d 61 74 20 66 6f 72 20 74 68 20 73 "format for th s
7f30: 63 72 69 70 74 20 65 72 72 6f 72 73 22 2c 0a 20 cript errors",.
7f40: 20 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 72 65 @ color: re
7f50: 64 3b 0a 20 20 20 20 40 20 20 20 66 6f 6e 74 2d d;. @ font-
7f60: 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 weight: bold;.
7f70: 7d 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 74 68 54 },. { "span.thT
7f80: 72 61 63 65 22 2c 0a 20 20 20 20 22 66 6f 72 6d race",. "form
7f90: 61 74 20 66 6f 72 20 74 68 20 73 63 72 69 70 74 at for th script
7fa0: 20 74 72 61 63 65 20 6d 65 73 73 61 67 65 73 22 trace messages"
7fb0: 2c 0a 20 20 20 20 40 20 20 20 63 6f 6c 6f 72 3a ,. @ color:
7fc0: 20 72 65 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 red;. },. { "
7fd0: 70 2e 72 65 70 6f 72 74 45 72 72 6f 72 22 2c 0a p.reportError",.
7fe0: 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 "format for
7ff0: 72 65 70 6f 72 74 20 63 6f 6e 66 69 67 75 72 61 report configura
8000: 74 69 6f 6e 20 65 72 72 6f 72 73 22 2c 0a 20 20 tion errors",.
8010: 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 72 65 64 @ color: red
8020: 3b 0a 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 77 ;. @ font-w
8030: 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 7d eight: bold;. }
8040: 2c 0a 20 20 7b 20 22 62 6c 6f 63 6b 71 75 6f 74 ,. { "blockquot
8050: 65 2e 72 65 70 6f 72 74 45 72 72 6f 72 22 2c 0a e.reportError",.
8060: 20 20 20 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 "format for
8070: 72 65 70 6f 72 74 20 63 6f 6e 66 69 67 75 72 61 report configura
8080: 74 69 6f 6e 20 65 72 72 6f 72 73 22 2c 0a 20 20 tion errors",.
8090: 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 72 65 64 @ color: red
80a0: 3b 0a 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 77 ;. @ font-w
80b0: 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 7d eight: bold;. }
80c0: 2c 0a 20 20 7b 20 22 70 2e 6e 6f 4d 6f 72 65 53 ,. { "p.noMoreS
80d0: 68 75 6e 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 hun",. "forma
80e0: 74 20 66 6f 72 20 61 72 74 69 66 61 63 74 20 6c t for artifact l
80f0: 69 6e 65 73 2c 20 6e 6f 20 6c 6f 6e 67 65 72 20 ines, no longer
8100: 73 68 75 6e 6e 65 64 22 2c 0a 20 20 20 20 40 20 shunned",. @
8110: 20 20 63 6f 6c 6f 72 3a 20 62 6c 75 65 3b 0a 20 color: blue;.
8120: 20 7d 2c 0a 20 20 7b 20 22 70 2e 73 68 75 6e 6e },. { "p.shunn
8130: 65 64 22 2c 0a 20 20 20 20 22 66 6f 72 6d 61 74 ed",. "format
8140: 20 66 6f 72 20 61 72 74 69 66 61 63 74 20 6c 69 for artifact li
8150: 6e 65 73 20 62 65 65 69 6e 67 20 73 68 75 6e 6e nes beeing shunn
8160: 65 64 22 2c 0a 20 20 20 20 40 20 20 20 63 6f 6c ed",. @ col
8170: 6f 72 3a 20 62 6c 75 65 3b 0a 20 20 7d 2c 0a 20 or: blue;. },.
8180: 20 7b 20 22 73 70 61 6e 2e 62 72 6f 6b 65 6e 6c { "span.brokenl
8190: 69 6e 6b 22 2c 0a 20 20 20 20 22 61 20 62 72 6f ink",. "a bro
81a0: 6b 65 6e 20 68 79 70 65 72 6c 69 6e 6b 22 2c 0a ken hyperlink",.
81b0: 20 20 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 72 @ color: r
81c0: 65 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 75 6c ed;. },. { "ul
81d0: 2e 66 69 6c 65 6c 69 73 74 22 2c 0a 20 20 20 20 .filelist",.
81e0: 22 4c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 69 "List of files i
81f0: 6e 20 61 20 74 69 6d 65 6c 69 6e 65 22 2c 0a 20 n a timeline",.
8200: 20 20 20 40 20 20 20 6d 61 72 67 69 6e 2d 74 6f @ margin-to
8210: 70 3a 20 33 70 78 3b 0a 20 20 20 20 40 20 20 20 p: 3px;. @
8220: 6c 69 6e 65 2d 68 65 69 67 68 74 3a 20 31 30 30 line-height: 100
8230: 25 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 61 62 %;. },. { "tab
8240: 6c 65 2e 73 62 73 64 69 66 66 63 6f 6c 73 22 2c le.sbsdiffcols",
8250: 0a 20 20 20 20 22 73 69 64 65 2d 62 79 2d 73 69 . "side-by-si
8260: 64 65 20 64 69 66 66 20 64 69 73 70 6c 61 79 20 de diff display
8270: 28 63 6f 6c 75 6d 6e 2d 62 61 73 65 64 29 22 2c (column-based)",
8280: 0a 20 20 20 20 40 20 20 20 77 69 64 74 68 3a 20 . @ width:
8290: 39 30 25 3b 0a 20 20 20 20 40 20 20 20 62 6f 72 90%;. @ bor
82a0: 64 65 72 2d 73 70 61 63 69 6e 67 3a 20 30 3b 0a der-spacing: 0;.
82b0: 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 73 69 7a @ font-siz
82c0: 65 3a 20 78 78 2d 73 6d 61 6c 6c 3b 0a 20 20 7d e: xx-small;. }
82d0: 2c 0a 20 20 7b 20 22 74 61 62 6c 65 2e 73 62 73 ,. { "table.sbs
82e0: 64 69 66 66 63 6f 6c 73 20 74 64 22 2c 0a 20 20 diffcols td",.
82f0: 20 20 22 73 62 73 20 64 69 66 66 20 74 61 62 6c "sbs diff tabl
8300: 65 20 63 65 6c 6c 22 2c 0a 20 20 20 20 40 20 20 e cell",. @
8310: 20 70 61 64 64 69 6e 67 3a 20 30 3b 0a 20 20 20 padding: 0;.
8320: 20 40 20 20 20 76 65 72 74 69 63 61 6c 2d 61 6c @ vertical-al
8330: 69 67 6e 3a 20 74 6f 70 3b 0a 20 20 7d 2c 0a 20 ign: top;. },.
8340: 20 7b 20 22 74 61 62 6c 65 2e 73 62 73 64 69 66 { "table.sbsdif
8350: 66 63 6f 6c 73 20 70 72 65 22 2c 0a 20 20 20 20 fcols pre",.
8360: 22 73 62 73 20 64 69 66 66 20 70 72 65 20 62 6c "sbs diff pre bl
8370: 6f 63 6b 22 2c 0a 20 20 20 20 40 20 20 20 6d 61 ock",. @ ma
8380: 72 67 69 6e 3a 20 30 3b 0a 20 20 20 20 40 20 20 rgin: 0;. @
8390: 20 70 61 64 64 69 6e 67 3a 20 30 3b 0a 20 20 20 padding: 0;.
83a0: 20 40 20 20 20 62 6f 72 64 65 72 3a 20 30 3b 0a @ border: 0;.
83b0: 20 20 20 20 40 20 20 20 66 6f 6e 74 2d 73 69 7a @ font-siz
83c0: 65 3a 20 69 6e 68 65 72 69 74 3b 0a 20 20 20 20 e: inherit;.
83d0: 40 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a 20 @ background:
83e0: 69 6e 68 65 72 69 74 3b 0a 20 20 20 20 40 20 20 inherit;. @
83f0: 20 63 6f 6c 6f 72 3a 20 69 6e 68 65 72 69 74 3b color: inherit;
8400: 0a 20 20 7d 2c 0a 20 20 7b 20 22 64 69 76 2e 64 . },. { "div.d
8410: 69 66 66 6c 6e 63 6f 6c 22 2c 0a 20 20 20 20 22 ifflncol",. "
8420: 64 69 66 66 20 6c 69 6e 65 20 6e 75 6d 62 65 72 diff line number
8430: 20 63 6f 6c 75 6d 6e 22 2c 0a 20 20 20 20 40 20 column",. @
8440: 20 20 70 61 64 64 69 6e 67 2d 72 69 67 68 74 3a padding-right:
8450: 20 31 65 6d 3b 0a 20 20 20 20 40 20 20 20 74 65 1em;. @ te
8460: 78 74 2d 61 6c 69 67 6e 3a 20 72 69 67 68 74 3b xt-align: right;
8470: 0a 20 20 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 . @ color:
8480: 23 61 30 61 30 61 30 3b 0a 20 20 7d 2c 0a 20 20 #a0a0a0;. },.
8490: 7b 20 22 64 69 76 2e 64 69 66 66 74 78 74 63 6f { "div.difftxtco
84a0: 6c 22 2c 0a 20 20 20 20 22 64 69 66 66 20 74 65 l",. "diff te
84b0: 78 74 20 63 6f 6c 75 6d 6e 22 2c 0a 20 20 20 20 xt column",.
84c0: 40 20 20 20 77 69 64 74 68 3a 20 34 35 65 6d 3b @ width: 45em;
84d0: 0a 20 20 20 20 40 20 20 20 6f 76 65 72 66 6c 6f . @ overflo
84e0: 77 2d 78 3a 20 61 75 74 6f 3b 0a 20 20 7d 2c 0a w-x: auto;. },.
84f0: 20 20 7b 20 22 64 69 76 2e 64 69 66 66 6d 6b 72 { "div.diffmkr
8500: 63 6f 6c 22 2c 0a 20 20 20 20 22 64 69 66 66 20 col",. "diff
8510: 6d 61 72 6b 65 72 20 63 6f 6c 75 6d 6e 22 2c 0a marker column",.
8520: 20 20 20 20 40 20 20 20 70 61 64 64 69 6e 67 3a @ padding:
8530: 20 30 20 31 65 6d 3b 0a 20 20 7d 2c 0a 20 20 7b 0 1em;. },. {
8540: 20 22 73 70 61 6e 2e 64 69 66 66 63 68 6e 67 22 "span.diffchng"
8550: 2c 0a 20 20 20 20 22 63 68 61 6e 67 65 73 20 69 ,. "changes i
8560: 6e 20 61 20 64 69 66 66 22 2c 0a 20 20 20 20 40 n a diff",. @
8570: 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f background-co
8580: 6c 6f 72 3a 20 23 63 30 63 30 66 66 3b 0a 20 20 lor: #c0c0ff;.
8590: 7d 2c 0a 20 20 7b 20 22 73 70 61 6e 2e 64 69 66 },. { "span.dif
85a0: 66 61 64 64 22 2c 0a 20 20 20 20 22 61 64 64 65 fadd",. "adde
85b0: 64 20 63 6f 64 65 20 69 6e 20 61 20 64 69 66 66 d code in a diff
85c0: 22 2c 0a 20 20 20 20 40 20 20 20 62 61 63 6b 67 ",. @ backg
85d0: 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 20 23 63 30 round-color: #c0
85e0: 66 66 63 30 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 ffc0;. },. { "
85f0: 73 70 61 6e 2e 64 69 66 66 72 6d 22 2c 0a 20 20 span.diffrm",.
8600: 20 20 22 64 65 6c 65 74 65 64 20 69 6e 20 61 20 "deleted in a
8610: 64 69 66 66 22 2c 0a 20 20 20 20 40 20 20 20 62 diff",. @ b
8620: 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a ackground-color:
8630: 20 23 66 66 63 38 63 38 3b 0a 20 20 7d 2c 0a 20 #ffc8c8;. },.
8640: 20 7b 20 22 73 70 61 6e 2e 64 69 66 66 68 72 22 { "span.diffhr"
8650: 2c 0a 20 20 20 20 22 73 75 70 70 72 65 73 73 65 ,. "suppresse
8660: 64 20 6c 69 6e 65 73 20 69 6e 20 61 20 64 69 66 d lines in a dif
8670: 66 22 2c 0a 20 20 20 20 40 20 20 20 64 69 73 70 f",. @ disp
8680: 6c 61 79 3a 20 69 6e 6c 69 6e 65 2d 62 6c 6f 63 lay: inline-bloc
8690: 6b 3b 0a 20 20 20 20 40 20 20 20 6d 61 72 67 69 k;. @ margi
86a0: 6e 3a 20 2e 35 65 6d 20 30 20 31 65 6d 3b 0a 20 n: .5em 0 1em;.
86b0: 20 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 23 30 @ color: #0
86c0: 30 30 30 66 66 3b 0a 20 20 7d 2c 0a 20 20 7b 20 000ff;. },. {
86d0: 22 73 70 61 6e 2e 64 69 66 66 6c 6e 22 2c 0a 20 "span.diffln",.
86e0: 20 20 20 22 6c 69 6e 65 20 6e 75 6d 62 65 72 73 "line numbers
86f0: 20 69 6e 20 61 20 64 69 66 66 22 2c 0a 20 20 20 in a diff",.
8700: 20 40 20 20 20 63 6f 6c 6f 72 3a 20 23 61 30 61 @ color: #a0a
8710: 30 61 30 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 73 0a0;. },. { "s
8720: 70 61 6e 2e 6d 6f 64 70 65 6e 64 69 6e 67 22 2c pan.modpending",
8730: 0a 20 20 20 20 22 4d 6f 64 65 72 61 74 69 6f 6e . "Moderation
8740: 20 50 65 6e 64 69 6e 67 20 6d 65 73 73 61 67 65 Pending message
8750: 20 6f 6e 20 74 69 6d 65 6c 69 6e 65 22 2c 0a 20 on timeline",.
8760: 20 20 20 40 20 20 20 63 6f 6c 6f 72 3a 20 23 62 @ color: #b
8770: 30 33 38 30 30 3b 0a 20 20 20 20 40 20 20 20 66 03800;. @ f
8780: 6f 6e 74 2d 73 74 79 6c 65 3a 20 69 74 61 6c 69 ont-style: itali
8790: 63 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 70 72 65 c;. },. { "pre
87a0: 2e 74 68 31 72 65 73 75 6c 74 22 2c 0a 20 20 20 .th1result",.
87b0: 20 22 66 6f 72 6d 61 74 20 66 6f 72 20 74 68 31 "format for th1
87c0: 20 73 63 72 69 70 74 20 72 65 73 75 6c 74 73 22 script results"
87d0: 2c 0a 20 20 20 20 40 20 20 20 77 68 69 74 65 2d ,. @ white-
87e0: 73 70 61 63 65 3a 20 70 72 65 2d 77 72 61 70 3b space: pre-wrap;
87f0: 0a 20 20 20 20 40 20 20 20 77 6f 72 64 2d 77 72 . @ word-wr
8800: 61 70 3a 20 62 72 65 61 6b 2d 77 6f 72 64 3b 0a ap: break-word;.
8810: 20 20 7d 2c 0a 20 20 7b 20 22 70 72 65 2e 74 68 },. { "pre.th
8820: 31 65 72 72 6f 72 22 2c 0a 20 20 20 20 22 66 6f 1error",. "fo
8830: 72 6d 61 74 20 66 6f 72 20 74 68 31 20 73 63 72 rmat for th1 scr
8840: 69 70 74 20 65 72 72 6f 72 73 22 2c 0a 20 20 20 ipt errors",.
8850: 20 40 20 20 20 77 68 69 74 65 2d 73 70 61 63 65 @ white-space
8860: 3a 20 70 72 65 2d 77 72 61 70 3b 0a 20 20 20 20 : pre-wrap;.
8870: 40 20 20 20 77 6f 72 64 2d 77 72 61 70 3a 20 62 @ word-wrap: b
8880: 72 65 61 6b 2d 77 6f 72 64 3b 0a 20 20 20 20 40 reak-word;. @
8890: 20 20 20 63 6f 6c 6f 72 3a 20 72 65 64 3b 0a 20 color: red;.
88a0: 20 7d 2c 0a 20 20 7b 20 22 74 61 62 6c 65 2e 6c },. { "table.l
88b0: 61 62 65 6c 2d 76 61 6c 75 65 20 74 68 22 2c 0a abel-value th",.
88c0: 20 20 20 20 22 54 68 65 20 6c 61 62 65 6c 2f 76 "The label/v
88d0: 61 6c 75 65 20 70 61 69 72 73 20 6f 6e 20 28 66 alue pairs on (f
88e0: 6f 72 20 65 78 61 6d 70 6c 65 29 20 74 68 65 20 or example) the
88f0: 63 69 20 70 61 67 65 22 2c 0a 20 20 20 20 40 20 ci page",. @
8900: 20 20 76 65 72 74 69 63 61 6c 2d 61 6c 69 67 6e vertical-align
8910: 3a 20 74 6f 70 3b 0a 20 20 20 20 40 20 20 20 74 : top;. @ t
8920: 65 78 74 2d 61 6c 69 67 6e 3a 20 72 69 67 68 74 ext-align: right
8930: 3b 0a 20 20 20 20 40 20 20 20 70 61 64 64 69 6e ;. @ paddin
8940: 67 3a 20 30 2e 32 65 78 20 32 65 78 3b 0a 20 20 g: 0.2ex 2ex;.
8950: 7d 2c 0a 20 20 7b 20 22 2e 73 74 61 74 69 73 74 },. { ".statist
8960: 69 63 73 2d 72 65 70 6f 72 74 2d 67 72 61 70 68 ics-report-graph
8970: 2d 6c 69 6e 65 22 2c 0a 20 20 20 20 22 66 6f 72 -line",. "for
8980: 20 74 68 65 20 2f 72 65 70 6f 72 74 73 20 76 69 the /reports vi
8990: 65 77 73 22 2c 0a 20 20 20 20 40 20 20 20 62 61 ews",. @ ba
89a0: 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 20 ckground-color:
89b0: 23 34 34 36 39 37 39 3b 0a 20 20 7d 2c 0a 20 20 #446979;. },.
89c0: 7b 20 22 2e 73 74 61 74 69 73 74 69 63 73 2d 72 { ".statistics-r
89d0: 65 70 6f 72 74 2d 74 61 62 6c 65 2d 65 76 65 6e eport-table-even
89e0: 74 73 20 74 68 22 2c 0a 20 20 20 20 22 22 2c 0a ts th",. "",.
89f0: 20 20 20 20 40 20 20 20 70 61 64 64 69 6e 67 3a @ padding:
8a00: 20 30 20 31 65 6d 20 30 20 31 65 6d 3b 0a 20 20 0 1em 0 1em;.
8a10: 7d 2c 0a 20 20 7b 20 22 2e 73 74 61 74 69 73 74 },. { ".statist
8a20: 69 63 73 2d 72 65 70 6f 72 74 2d 74 61 62 6c 65 ics-report-table
8a30: 2d 65 76 65 6e 74 73 20 74 64 22 2c 0a 20 20 20 -events td",.
8a40: 20 22 22 2c 0a 20 20 20 20 40 20 20 20 70 61 64 "",. @ pad
8a50: 64 69 6e 67 3a 20 30 2e 31 65 6d 20 31 65 6d 20 ding: 0.1em 1em
8a60: 30 2e 31 65 6d 20 31 65 6d 3b 0a 20 20 7d 2c 0a 0.1em 1em;. },.
8a70: 20 20 7b 20 22 2e 73 74 61 74 69 73 74 69 63 73 { ".statistics
8a80: 2d 72 65 70 6f 72 74 2d 72 6f 77 2d 79 65 61 72 -report-row-year
8a90: 22 2c 0a 20 20 20 20 22 22 2c 0a 20 20 20 20 40 ",. "",. @
8aa0: 20 20 20 74 65 78 74 2d 61 6c 69 67 6e 3a 20 6c text-align: l
8ab0: 65 66 74 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e eft;. },. { ".
8ac0: 73 74 61 74 69 73 74 69 63 73 2d 72 65 70 6f 72 statistics-repor
8ad0: 74 2d 77 65 65 6b 2d 6e 75 6d 62 65 72 2d 6c 61 t-week-number-la
8ae0: 62 65 6c 22 2c 0a 20 20 20 20 22 66 6f 72 20 74 bel",. "for t
8af0: 68 65 20 2f 73 74 61 74 73 5f 72 65 70 6f 72 74 he /stats_report
8b00: 20 76 69 65 77 73 22 2c 0a 20 20 20 20 40 20 74 views",. @ t
8b10: 65 78 74 2d 61 6c 69 67 6e 3a 20 72 69 67 68 74 ext-align: right
8b20: 3b 0a 20 20 20 20 40 20 66 6f 6e 74 2d 73 69 7a ;. @ font-siz
8b30: 65 3a 20 30 2e 38 65 6d 3b 0a 20 20 7d 2c 0a 20 e: 0.8em;. },.
8b40: 20 7b 20 22 2e 73 74 61 74 69 73 74 69 63 73 2d { ".statistics-
8b50: 72 65 70 6f 72 74 2d 77 65 65 6b 2d 6f 66 2d 79 report-week-of-y
8b60: 65 61 72 2d 6c 69 73 74 22 2c 0a 20 20 20 20 22 ear-list",. "
8b70: 66 6f 72 20 74 68 65 20 2f 73 74 61 74 73 5f 72 for the /stats_r
8b80: 65 70 6f 72 74 20 76 69 65 77 73 22 2c 0a 20 20 eport views",.
8b90: 20 20 40 20 66 6f 6e 74 2d 73 69 7a 65 3a 20 30 @ font-size: 0
8ba0: 2e 38 65 6d 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 .8em;. },. { "
8bb0: 74 72 2e 72 6f 77 30 22 2c 0a 20 20 20 20 22 65 tr.row0",. "e
8bc0: 76 65 6e 20 74 61 62 6c 65 20 72 6f 77 20 63 6f ven table row co
8bd0: 6c 6f 72 22 2c 0a 20 20 20 20 40 20 2f 2a 20 75 lor",. @ /* u
8be0: 73 65 20 64 65 66 61 75 6c 74 20 2a 2f 0a 20 20 se default */.
8bf0: 7d 2c 0a 20 20 7b 20 22 74 72 2e 72 6f 77 31 22 },. { "tr.row1"
8c00: 2c 0a 20 20 20 20 22 6f 64 64 20 74 61 62 6c 65 ,. "odd table
8c10: 20 72 6f 77 20 63 6f 6c 6f 72 22 2c 0a 20 20 20 row color",.
8c20: 20 40 20 2f 2a 20 55 73 65 20 64 65 66 61 75 6c @ /* Use defaul
8c30: 74 20 2a 2f 0a 20 20 7d 2c 0a 20 20 7b 20 22 23 t */. },. { "#
8c40: 75 73 65 74 75 70 45 64 69 74 43 61 70 61 62 69 usetupEditCapabi
8c50: 6c 69 74 79 22 2c 0a 20 20 20 20 22 66 6f 72 6d lity",. "form
8c60: 61 74 20 66 6f 72 20 63 61 70 61 62 69 6c 69 74 at for capabilit
8c70: 69 65 73 20 73 74 72 69 6e 67 2c 20 6d 65 6e 74 ies string, ment
8c80: 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 75 73 65 ioned on the use
8c90: 72 20 65 64 69 74 20 70 61 67 65 22 2c 0a 20 20 r edit page",.
8ca0: 20 20 40 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a @ font-weight:
8cb0: 20 62 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 bold;. },. {
8cc0: 22 23 63 61 6e 76 61 73 22 2c 20 22 74 69 6d 65 "#canvas", "time
8cd0: 6c 69 6e 65 20 67 72 61 70 68 20 6e 6f 64 65 20 line graph node
8ce0: 63 6f 6c 6f 72 73 22 2c 0a 20 20 20 20 40 20 63 colors",. @ c
8cf0: 6f 6c 6f 72 3a 20 62 6c 61 63 6b 3b 0a 20 20 20 olor: black;.
8d00: 20 40 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f @ background-co
8d10: 6c 6f 72 3a 20 77 68 69 74 65 3b 0a 20 20 7d 2c lor: white;. },
8d20: 0a 20 20 7b 20 22 74 61 62 6c 65 2e 61 64 6d 69 . { "table.admi
8d30: 6e 4c 6f 67 54 61 62 6c 65 22 2c 0a 20 20 20 20 nLogTable",.
8d40: 22 43 6c 61 73 73 20 66 6f 72 20 74 68 65 20 2f "Class for the /
8d50: 61 64 6d 69 6e 5f 6c 6f 67 20 74 61 62 6c 65 22 admin_log table"
8d60: 2c 0a 20 20 20 20 40 20 74 65 78 74 2d 61 6c 69 ,. @ text-ali
8d70: 67 6e 3a 20 6c 65 66 74 3b 0a 20 20 7d 2c 0a 20 gn: left;. },.
8d80: 20 7b 20 22 2e 61 64 6d 69 6e 4c 6f 67 54 61 62 { ".adminLogTab
8d90: 6c 65 20 2e 61 64 6d 69 6e 54 69 6d 65 22 2c 0a le .adminTime",.
8da0: 20 20 20 20 22 43 6c 61 73 73 20 66 6f 72 20 74 "Class for t
8db0: 68 65 20 2f 61 64 6d 69 6e 5f 6c 6f 67 20 74 61 he /admin_log ta
8dc0: 62 6c 65 22 2c 0a 20 20 20 20 40 20 74 65 78 74 ble",. @ text
8dd0: 2d 61 6c 69 67 6e 3a 20 6c 65 66 74 3b 0a 20 20 -align: left;.
8de0: 20 20 40 20 76 65 72 74 69 63 61 6c 2d 61 6c 69 @ vertical-ali
8df0: 67 6e 3a 20 74 6f 70 3b 0a 20 20 20 20 40 20 77 gn: top;. @ w
8e00: 68 69 74 65 2d 73 70 61 63 65 3a 20 6e 6f 77 72 hite-space: nowr
8e10: 61 70 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e 66 ap;. },. { ".f
8e20: 69 6c 65 61 67 65 20 74 61 62 6c 65 22 2c 0a 20 ileage table",.
8e30: 20 20 20 22 54 68 65 20 66 69 6c 65 61 67 65 20 "The fileage
8e40: 74 61 62 6c 65 22 2c 0a 20 20 20 20 40 20 62 6f table",. @ bo
8e50: 72 64 65 72 2d 73 70 61 63 69 6e 67 3a 20 30 3b rder-spacing: 0;
8e60: 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e 66 69 6c 65 . },. { ".file
8e70: 61 67 65 20 74 72 3a 68 6f 76 65 72 22 2c 0a 20 age tr:hover",.
8e80: 20 20 20 22 4d 6f 75 73 65 2d 6f 76 65 72 20 65 "Mouse-over e
8e90: 66 66 65 63 74 73 20 66 6f 72 20 74 68 65 20 66 ffects for the f
8ea0: 69 6c 65 2d 61 67 65 20 74 61 62 6c 65 22 2c 0a ile-age table",.
8eb0: 20 20 20 20 40 20 62 61 63 6b 67 72 6f 75 6e 64 @ background
8ec0: 2d 63 6f 6c 6f 72 3a 20 23 65 65 65 3b 0a 20 20 -color: #eee;.
8ed0: 7d 2c 0a 20 20 7b 20 22 2e 66 69 6c 65 61 67 65 },. { ".fileage
8ee0: 20 74 64 22 2c 0a 20 20 20 20 22 66 69 6c 65 61 td",. "filea
8ef0: 67 65 20 74 61 62 6c 65 20 63 65 6c 6c 73 22 2c ge table cells",
8f00: 0a 20 20 20 20 40 20 76 65 72 74 69 63 61 6c 2d . @ vertical-
8f10: 61 6c 69 67 6e 3a 20 74 6f 70 3b 0a 20 20 20 20 align: top;.
8f20: 40 20 74 65 78 74 2d 61 6c 69 67 6e 3a 20 6c 65 @ text-align: le
8f30: 66 74 3b 0a 20 20 20 20 40 20 62 6f 72 64 65 72 ft;. @ border
8f40: 2d 74 6f 70 3a 20 31 70 78 20 73 6f 6c 69 64 20 -top: 1px solid
8f50: 23 64 64 64 3b 0a 20 20 20 20 40 20 70 61 64 64 #ddd;. @ padd
8f60: 69 6e 67 2d 74 6f 70 3a 20 33 70 78 3b 0a 20 20 ing-top: 3px;.
8f70: 7d 2c 0a 20 20 7b 20 22 2e 66 69 6c 65 61 67 65 },. { ".fileage
8f80: 20 74 64 3a 66 69 72 73 74 2d 63 68 69 6c 64 22 td:first-child"
8f90: 2c 0a 20 20 20 20 22 66 69 6c 65 61 67 65 20 66 ,. "fileage f
8fa0: 69 72 73 74 20 63 6f 6c 75 6d 6e 20 28 74 68 65 irst column (the
8fb0: 20 61 67 65 29 22 2c 0a 20 20 20 20 40 20 77 68 age)",. @ wh
8fc0: 69 74 65 2d 73 70 61 63 65 3a 20 6e 6f 77 72 61 ite-space: nowra
8fd0: 70 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e 66 69 p;. },. { ".fi
8fe0: 6c 65 61 67 65 20 74 64 3a 6e 74 68 2d 63 68 69 leage td:nth-chi
8ff0: 6c 64 28 32 29 22 2c 0a 20 20 20 20 22 66 69 6c ld(2)",. "fil
9000: 65 61 67 65 20 73 65 63 6f 6e 64 20 63 6f 6c 75 eage second colu
9010: 6d 6e 20 28 74 68 65 20 66 69 6c 65 6e 61 6d 65 mn (the filename
9020: 29 22 2c 0a 20 20 20 20 40 20 70 61 64 64 69 6e )",. @ paddin
9030: 67 2d 6c 65 66 74 3a 20 31 65 6d 3b 0a 20 20 20 g-left: 1em;.
9040: 20 40 20 70 61 64 64 69 6e 67 2d 72 69 67 68 74 @ padding-right
9050: 3a 20 31 65 6d 3b 0a 20 20 7d 2c 0a 20 20 7b 20 : 1em;. },. {
9060: 22 2e 66 69 6c 65 61 67 65 20 74 64 3a 6e 74 68 ".fileage td:nth
9070: 2d 63 68 69 6c 64 28 33 29 22 2c 0a 20 20 20 20 -child(3)",.
9080: 22 66 69 6c 65 61 67 65 20 74 68 69 72 64 20 63 "fileage third c
9090: 6f 6c 75 6d 6e 20 28 74 68 65 20 63 68 65 63 6b olumn (the check
90a0: 2d 69 6e 20 63 6f 6d 6d 65 6e 74 29 22 2c 0a 20 -in comment)",.
90b0: 20 20 20 40 20 77 6f 72 64 2d 77 72 61 70 3a 20 @ word-wrap:
90c0: 62 72 65 61 6b 2d 77 6f 72 64 3b 0a 20 20 20 20 break-word;.
90d0: 40 20 6d 61 78 2d 77 69 64 74 68 3a 20 35 30 25 @ max-width: 50%
90e0: 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e 62 72 6c ;. },. { ".brl
90f0: 69 73 74 20 74 61 62 6c 65 22 2c 20 20 22 54 68 ist table", "Th
9100: 65 20 6c 69 73 74 20 6f 66 20 62 72 61 6e 63 68 e list of branch
9110: 65 73 22 2c 0a 20 20 20 20 40 20 62 6f 72 64 65 es",. @ borde
9120: 72 2d 73 70 61 63 69 6e 67 3a 20 30 3b 0a 20 20 r-spacing: 0;.
9130: 7d 2c 0a 20 20 7b 20 22 2e 62 72 6c 69 73 74 20 },. { ".brlist
9140: 74 61 62 6c 65 20 74 68 22 2c 20 20 22 42 72 61 table th", "Bra
9150: 6e 63 68 20 6c 69 73 74 20 74 61 62 6c 65 20 68 nch list table h
9160: 65 61 64 65 72 73 22 2c 0a 20 20 20 20 40 20 74 eaders",. @ t
9170: 65 78 74 2d 61 6c 69 67 6e 3a 20 6c 65 66 74 3b ext-align: left;
9180: 0a 20 20 20 20 40 20 70 61 64 64 69 6e 67 3a 20 . @ padding:
9190: 30 70 78 20 31 65 6d 20 30 2e 35 65 78 20 30 70 0px 1em 0.5ex 0p
91a0: 78 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 2e 62 72 x;. },. { ".br
91b0: 6c 69 73 74 20 74 61 62 6c 65 20 74 64 22 2c 20 list table td",
91c0: 20 22 42 72 61 6e 63 68 20 6c 69 73 74 20 74 61 "Branch list ta
91d0: 62 6c 65 20 68 65 61 64 65 72 73 22 2c 0a 20 20 ble headers",.
91e0: 20 20 40 20 70 61 64 64 69 6e 67 3a 20 30 70 78 @ padding: 0px
91f0: 20 32 65 6d 20 30 70 78 20 30 70 78 3b 0a 20 20 2em 0px 0px;.
9200: 20 20 40 20 77 68 69 74 65 2d 73 70 61 63 65 3a @ white-space:
9210: 20 6e 6f 77 72 61 70 3b 0a 20 20 7d 2c 0a 20 20 nowrap;. },.
9220: 7b 20 22 74 68 2e 73 6f 72 74 3a 61 66 74 65 72 { "th.sort:after
9230: 22 2c 0a 20 20 20 20 22 47 65 6e 65 72 61 6c 20 ",. "General
9240: 73 74 79 6c 65 73 20 66 6f 72 20 73 6f 72 74 61 styles for sorta
9250: 62 6c 65 20 63 6f 6c 75 6d 6e 20 6d 61 72 6b 65 ble column marke
9260: 72 22 2c 0a 20 20 20 20 40 20 6d 61 72 67 69 6e r",. @ margin
9270: 2d 6c 65 66 74 3a 20 2e 34 65 6d 3b 0a 20 20 20 -left: .4em;.
9280: 20 40 20 63 75 72 73 6f 72 3a 20 70 6f 69 6e 74 @ cursor: point
9290: 65 72 3b 0a 20 20 20 20 40 20 74 65 78 74 2d 73 er;. @ text-s
92a0: 68 61 64 6f 77 3a 20 30 20 30 20 30 20 23 30 30 hadow: 0 0 0 #00
92b0: 30 3b 20 2f 2a 20 4d 61 6b 65 73 20 61 72 72 6f 0; /* Makes arro
92c0: 77 20 64 61 72 6b 65 72 20 2a 2f 0a 20 20 7d 2c w darker */. },
92d0: 0a 20 20 7b 20 22 74 68 2e 73 6f 72 74 2e 6e 6f . { "th.sort.no
92e0: 6e 65 3a 61 66 74 65 72 22 2c 0a 20 20 20 20 22 ne:after",. "
92f0: 4e 6f 6e 65 20 73 6f 72 74 20 63 6f 6c 75 6d 6e None sort column
9300: 20 6d 61 72 6b 65 72 22 2c 0a 20 20 20 20 40 20 marker",. @
9310: 63 6f 6e 74 65 6e 74 3a 20 27 5c 32 36 36 36 27 content: '\2666'
9320: 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 74 68 2e 73 ;. },. { "th.s
9330: 6f 72 74 2e 61 73 63 3a 61 66 74 65 72 22 2c 0a ort.asc:after",.
9340: 20 20 20 20 22 41 73 63 65 6e 64 69 6e 67 20 73 "Ascending s
9350: 6f 72 74 20 63 6f 6c 75 6d 6e 20 6d 61 72 6b 65 ort column marke
9360: 72 22 2c 0a 20 20 20 20 40 20 63 6f 6e 74 65 6e r",. @ conten
9370: 74 3a 20 27 5c 32 31 39 33 27 3b 0a 20 20 7d 2c t: '\2193';. },
9380: 0a 20 20 7b 20 22 74 68 2e 73 6f 72 74 2e 64 65 . { "th.sort.de
9390: 73 63 3a 61 66 74 65 72 22 2c 0a 20 20 20 20 22 sc:after",. "
93a0: 44 65 73 63 65 6e 64 69 6e 67 20 73 6f 72 74 20 Descending sort
93b0: 63 6f 6c 75 6d 6e 20 6d 61 72 6b 65 72 22 2c 0a column marker",.
93c0: 20 20 20 20 40 20 63 6f 6e 74 65 6e 74 3a 20 27 @ content: '
93d0: 5c 32 31 39 31 27 3b 0a 20 20 7d 2c 0a 20 20 7b \2191';. },. {
93e0: 20 22 73 70 61 6e 2e 73 6e 69 70 70 65 74 3e 6d "span.snippet>m
93f0: 61 72 6b 22 2c 0a 20 20 20 20 22 53 65 61 72 63 ark",. "Searc
9400: 68 20 6d 61 72 6b 75 70 22 2c 0a 20 20 20 20 40 h markup",. @
9410: 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f background-colo
9420: 72 3a 20 69 6e 68 65 72 69 74 3b 0a 20 20 20 20 r: inherit;.
9430: 40 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 @ font-weight: b
9440: 6f 6c 64 3b 0a 20 20 7d 2c 0a 20 20 7b 20 22 64 old;. },. { "d
9450: 69 76 2e 73 65 61 72 63 68 46 6f 72 6d 22 2c 0a iv.searchForm",.
9460: 20 20 20 20 22 43 6f 6e 74 61 69 6e 65 72 20 66 "Container f
9470: 6f 72 20 74 68 65 20 73 65 61 72 63 68 20 74 65 or the search te
9480: 72 6d 73 20 65 6e 74 72 79 20 62 6f 78 22 2c 0a rms entry box",.
9490: 20 20 20 20 40 20 74 65 78 74 2d 61 6c 69 67 6e @ text-align
94a0: 3a 20 63 65 6e 74 65 72 3b 0a 20 20 7d 2c 0a 20 : center;. },.
94b0: 20 7b 20 22 70 2e 73 65 61 72 63 68 45 6d 70 74 { "p.searchEmpt
94c0: 79 22 2c 0a 20 20 20 20 22 4d 65 73 73 61 67 65 y",. "Message
94d0: 20 65 78 70 6c 61 69 6e 69 6e 67 20 74 68 61 74 explaining that
94e0: 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 73 65 there are no se
94f0: 61 72 63 68 20 72 65 73 75 6c 74 73 22 2c 0a 20 arch results",.
9500: 20 20 20 40 20 66 6f 6e 74 2d 73 74 79 6c 65 3a @ font-style:
9510: 20 69 74 61 6c 69 63 3b 0a 20 20 7d 2c 0a 20 20 italic;. },.
9520: 7b 20 30 2c 0a 20 20 20 20 30 2c 0a 20 20 20 20 { 0,. 0,.
9530: 30 0a 20 20 7d 0a 7d 3b 0a 0a 2f 2a 0a 2a 2a 20 0. }.};../*.**
9540: 41 70 70 65 6e 64 20 61 6c 6c 20 6f 66 20 74 68 Append all of th
9550: 65 20 64 65 66 61 75 6c 74 20 43 53 53 20 74 6f e default CSS to
9560: 20 74 68 65 20 43 47 49 20 6f 75 74 70 75 74 2e the CGI output.
9570: 0a 2a 2f 0a 76 6f 69 64 20 63 67 69 5f 61 70 70 .*/.void cgi_app
9580: 65 6e 64 5f 64 65 66 61 75 6c 74 5f 63 73 73 28 end_default_css(
9590: 76 6f 69 64 29 20 7b 0a 20 20 69 6e 74 20 69 3b void) {. int i;
95a0: 0a 0a 20 20 63 67 69 5f 70 72 69 6e 74 66 28 22 .. cgi_printf("
95b0: 25 73 22 2c 20 62 75 69 6c 74 69 6e 5f 74 65 78 %s", builtin_tex
95c0: 74 28 22 73 6b 69 6e 73 2f 64 65 66 61 75 6c 74 t("skins/default
95d0: 2f 63 73 73 2e 74 78 74 22 29 29 3b 0a 20 20 66 /css.txt"));. f
95e0: 6f 72 28 20 69 3d 30 3b 20 63 73 73 44 65 66 61 or( i=0; cssDefa
95f0: 75 6c 74 4c 69 73 74 5b 69 5d 2e 65 6c 65 6d 65 ultList[i].eleme
9600: 6e 74 43 6c 61 73 73 3b 20 69 2b 2b 20 29 7b 0a ntClass; i++ ){.
9610: 20 20 20 20 69 66 28 20 63 73 73 44 65 66 61 75 if( cssDefau
9620: 6c 74 4c 69 73 74 5b 69 5d 2e 65 6c 65 6d 65 6e ltList[i].elemen
9630: 74 43 6c 61 73 73 5b 30 5d 20 29 7b 0a 20 20 20 tClass[0] ){.
9640: 20 20 20 63 67 69 5f 70 72 69 6e 74 66 28 22 2f cgi_printf("/
9650: 2a 20 25 73 20 2a 2f 5c 6e 25 73 20 7b 5c 6e 25 * %s */\n%s {\n%
9660: 73 5c 6e 7d 5c 6e 5c 6e 22 2c 0a 20 20 20 20 20 s\n}\n\n",.
9670: 20 20 20 20 20 20 20 20 20 20 20 20 63 73 73 44 cssD
9680: 65 66 61 75 6c 74 4c 69 73 74 5b 69 5d 2e 63 6f efaultList[i].co
9690: 6d 6d 65 6e 74 2c 0a 20 20 20 20 20 20 20 20 20 mment,.
96a0: 20 20 20 20 20 20 20 20 63 73 73 44 65 66 61 75 cssDefau
96b0: 6c 74 4c 69 73 74 5b 69 5d 2e 65 6c 65 6d 65 6e ltList[i].elemen
96c0: 74 43 6c 61 73 73 2c 0a 20 20 20 20 20 20 20 20 tClass,.
96d0: 20 20 20 20 20 20 20 20 20 63 73 73 44 65 66 61 cssDefa
96e0: 75 6c 74 4c 69 73 74 5b 69 5d 2e 76 61 6c 75 65 ultList[i].value
96f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
9700: 20 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a );. }. }.}.
9710: 0a 2f 2a 0a 2a 2a 20 53 65 61 72 63 68 20 73 74 ./*.** Search st
9720: 72 69 6e 67 20 7a 48 61 79 73 74 61 63 6b 20 66 ring zHaystack f
9730: 6f 72 20 7a 4e 65 65 64 6c 65 2e 20 20 7a 4e 65 or zNeedle. zNe
9740: 65 64 6c 65 20 6d 75 73 74 20 62 65 20 61 6e 20 edle must be an
9750: 69 73 6f 6c 61 74 65 64 0a 2a 2a 20 77 6f 72 64 isolated.** word
9760: 20 77 69 74 68 20 73 70 61 63 65 20 6f 72 20 70 with space or p
9770: 75 6e 63 74 75 61 74 69 6f 6e 20 6f 6e 20 65 69 unctuation on ei
9780: 74 68 65 72 20 73 69 7a 65 2e 0a 2a 2a 0a 2a 2a ther size..**.**
9790: 20 52 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 Return true if
97a0: 66 6f 75 6e 64 2e 20 20 52 65 74 75 72 6e 20 66 found. Return f
97b0: 61 6c 73 65 20 69 66 20 6e 6f 74 20 66 6f 75 6e alse if not foun
97c0: 64 0a 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 d.*/.static int
97d0: 63 6f 6e 74 61 69 6e 73 53 74 72 69 6e 67 28 63 containsString(c
97e0: 6f 6e 73 74 20 63 68 61 72 20 2a 7a 48 61 79 73 onst char *zHays
97f0: 74 61 63 6b 2c 20 63 6f 6e 73 74 20 63 68 61 72 tack, const char
9800: 20 2a 7a 4e 65 65 64 6c 65 29 7b 0a 20 20 63 68 *zNeedle){. ch
9810: 61 72 20 2a 7a 3b 0a 20 20 69 6e 74 20 6e 3b 0a ar *z;. int n;.
9820: 0a 20 20 77 68 69 6c 65 28 20 7a 48 61 79 73 74 . while( zHayst
9830: 61 63 6b 5b 30 5d 20 29 7b 0a 20 20 20 20 7a 20 ack[0] ){. z
9840: 3d 20 73 74 72 73 74 72 28 7a 48 61 79 73 74 61 = strstr(zHaysta
9850: 63 6b 2c 20 7a 4e 65 65 64 6c 65 29 3b 0a 20 20 ck, zNeedle);.
9860: 20 20 69 66 28 20 7a 3d 3d 30 20 29 20 72 65 74 if( z==0 ) ret
9870: 75 72 6e 20 30 3b 0a 20 20 20 20 6e 20 3d 20 28 urn 0;. n = (
9880: 69 6e 74 29 73 74 72 6c 65 6e 28 7a 4e 65 65 64 int)strlen(zNeed
9890: 6c 65 29 3b 0a 20 20 20 20 69 66 28 20 28 7a 3d le);. if( (z=
98a0: 3d 7a 48 61 79 73 74 61 63 6b 20 7c 7c 20 21 66 =zHaystack || !f
98b0: 6f 73 73 69 6c 5f 69 73 61 6c 6e 75 6d 28 7a 5b ossil_isalnum(z[
98c0: 2d 31 5d 29 29 20 26 26 20 21 66 6f 73 73 69 6c -1])) && !fossil
98d0: 5f 69 73 61 6c 6e 75 6d 28 7a 5b 6e 5d 29 20 29 _isalnum(z[n]) )
98e0: 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 31 {. return 1
98f0: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 7a 48 61 79 ;. }. zHay
9900: 73 74 61 63 6b 20 3d 20 7a 20 2b 20 6e 3b 0a 20 stack = z + n;.
9910: 20 7d 0a 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d }. return 0;.}
9920: 0a 0a 0a 2f 2a 0a 2a 2a 20 57 45 42 50 41 47 45 .../*.** WEBPAGE
9930: 3a 20 73 74 79 6c 65 2e 63 73 73 0a 2a 2f 0a 76 : style.css.*/.v
9940: 6f 69 64 20 70 61 67 65 5f 73 74 79 6c 65 5f 63 oid page_style_c
9950: 73 73 28 76 6f 69 64 29 7b 0a 20 20 42 6c 6f 62 ss(void){. Blob
9960: 20 63 73 73 3b 0a 20 20 69 6e 74 20 69 3b 0a 0a css;. int i;..
9970: 20 20 63 67 69 5f 73 65 74 5f 63 6f 6e 74 65 6e cgi_set_conten
9980: 74 5f 74 79 70 65 28 22 74 65 78 74 2f 63 73 73 t_type("text/css
9990: 22 29 3b 0a 20 20 62 6c 6f 62 5f 69 6e 69 74 28 ");. blob_init(
99a0: 26 63 73 73 2c 73 6b 69 6e 5f 67 65 74 28 22 63 &css,skin_get("c
99b0: 73 73 22 29 2c 2d 31 29 3b 0a 0a 20 20 2f 2a 20 ss"),-1);.. /*
99c0: 61 64 64 20 73 70 65 63 69 61 6c 20 6d 69 73 73 add special miss
99d0: 69 6e 67 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 ing definitions
99e0: 2a 2f 0a 20 20 66 6f 72 28 69 3d 31 3b 20 63 73 */. for(i=1; cs
99f0: 73 44 65 66 61 75 6c 74 4c 69 73 74 5b 69 5d 2e sDefaultList[i].
9a00: 65 6c 65 6d 65 6e 74 43 6c 61 73 73 3b 20 69 2b elementClass; i+
9a10: 2b 29 7b 0a 20 20 20 20 63 68 61 72 20 2a 7a 20 +){. char *z
9a20: 3d 20 62 6c 6f 62 5f 73 74 72 28 26 63 73 73 29 = blob_str(&css)
9a30: 3b 0a 20 20 20 20 69 66 28 20 21 63 6f 6e 74 61 ;. if( !conta
9a40: 69 6e 73 53 74 72 69 6e 67 28 7a 2c 20 63 73 73 insString(z, css
9a50: 44 65 66 61 75 6c 74 4c 69 73 74 5b 69 5d 2e 65 DefaultList[i].e
9a60: 6c 65 6d 65 6e 74 43 6c 61 73 73 29 20 29 7b 0a lementClass) ){.
9a70: 20 20 20 20 20 20 62 6c 6f 62 5f 61 70 70 65 6e blob_appen
9a80: 64 66 28 26 63 73 73 2c 20 22 2f 2a 20 25 73 20 df(&css, "/* %s
9a90: 2a 2f 5c 6e 25 73 20 7b 5c 6e 25 73 7d 5c 6e 22 */\n%s {\n%s}\n"
9aa0: 2c 0a 20 20 20 20 20 20 20 20 20 20 63 73 73 44 ,. cssD
9ab0: 65 66 61 75 6c 74 4c 69 73 74 5b 69 5d 2e 63 6f efaultList[i].co
9ac0: 6d 6d 65 6e 74 2c 0a 20 20 20 20 20 20 20 20 20 mment,.
9ad0: 20 63 73 73 44 65 66 61 75 6c 74 4c 69 73 74 5b cssDefaultList[
9ae0: 69 5d 2e 65 6c 65 6d 65 6e 74 43 6c 61 73 73 2c i].elementClass,
9af0: 0a 20 20 20 20 20 20 20 20 20 20 63 73 73 44 65 . cssDe
9b00: 66 61 75 6c 74 4c 69 73 74 5b 69 5d 2e 76 61 6c faultList[i].val
9b10: 75 65 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a ue);. }. }..
9b20: 20 20 2f 2a 20 50 72 6f 63 65 73 73 20 74 68 72 /* Process thr
9b30: 6f 75 67 68 20 54 48 31 20 69 6e 20 6f 72 64 65 ough TH1 in orde
9b40: 72 20 74 6f 20 67 69 76 65 20 61 6e 20 6f 70 70 r to give an opp
9b50: 6f 72 74 75 6e 69 74 79 20 74 6f 20 73 75 62 73 ortunity to subs
9b60: 74 69 74 75 74 65 0a 20 20 2a 2a 20 76 61 72 69 titute. ** vari
9b70: 61 62 6c 65 73 20 73 75 63 68 20 61 73 20 24 62 ables such as $b
9b80: 61 73 65 75 72 6c 2e 0a 20 20 2a 2f 0a 20 20 54 aseurl.. */. T
9b90: 68 5f 53 74 6f 72 65 28 22 62 61 73 65 75 72 6c h_Store("baseurl
9ba0: 22 2c 20 67 2e 7a 42 61 73 65 55 52 4c 29 3b 0a ", g.zBaseURL);.
9bb0: 20 20 54 68 5f 53 74 6f 72 65 28 22 73 65 63 75 Th_Store("secu
9bc0: 72 65 75 72 6c 22 2c 20 6c 6f 67 69 6e 5f 77 61 reurl", login_wa
9bd0: 6e 74 73 5f 68 74 74 70 73 5f 72 65 64 69 72 65 nts_https_redire
9be0: 63 74 28 29 3f 20 67 2e 7a 48 74 74 70 73 55 52 ct()? g.zHttpsUR
9bf0: 4c 3a 20 67 2e 7a 42 61 73 65 55 52 4c 29 3b 0a L: g.zBaseURL);.
9c00: 20 20 54 68 5f 53 74 6f 72 65 28 22 68 6f 6d 65 Th_Store("home
9c10: 22 2c 20 67 2e 7a 54 6f 70 29 3b 0a 20 20 69 6d ", g.zTop);. im
9c20: 61 67 65 5f 75 72 6c 5f 76 61 72 28 22 6c 6f 67 age_url_var("log
9c30: 6f 22 29 3b 0a 20 20 69 6d 61 67 65 5f 75 72 6c o");. image_url
9c40: 5f 76 61 72 28 22 62 61 63 6b 67 72 6f 75 6e 64 _var("background
9c50: 22 29 3b 0a 20 20 54 68 5f 52 65 6e 64 65 72 28 ");. Th_Render(
9c60: 62 6c 6f 62 5f 73 74 72 28 26 63 73 73 29 29 3b blob_str(&css));
9c70: 0a 0a 20 20 2f 2a 20 54 65 6c 6c 20 43 47 49 20 .. /* Tell CGI
9c80: 74 68 61 74 20 74 68 65 20 63 6f 6e 74 65 6e 74 that the content
9c90: 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 69 returned by thi
9ca0: 73 20 70 61 67 65 20 69 73 20 63 6f 6e 73 69 64 s page is consid
9cb0: 65 72 65 64 20 63 61 63 68 65 61 62 6c 65 20 2a ered cacheable *
9cc0: 2f 0a 20 20 67 2e 69 73 43 6f 6e 73 74 20 3d 20 /. g.isConst =
9cd0: 31 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 57 45 42 50 1;.}../*.** WEBP
9ce0: 41 47 45 3a 20 74 65 73 74 5f 65 6e 76 0a 2a 2f AGE: test_env.*/
9cf0: 0a 76 6f 69 64 20 70 61 67 65 5f 74 65 73 74 5f .void page_test_
9d00: 65 6e 76 28 76 6f 69 64 29 7b 0a 20 20 63 68 61 env(void){. cha
9d10: 72 20 63 3b 0a 20 20 69 6e 74 20 69 3b 0a 20 20 r c;. int i;.
9d20: 69 6e 74 20 73 68 6f 77 41 6c 6c 3b 0a 20 20 63 int showAll;. c
9d30: 68 61 72 20 7a 43 61 70 5b 33 30 5d 3b 0a 20 20 har zCap[30];.
9d40: 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 static const cha
9d50: 72 20 2a 63 6f 6e 73 74 20 61 7a 43 67 69 56 61 r *const azCgiVa
9d60: 72 73 5b 5d 20 3d 20 7b 0a 20 20 20 20 22 43 4f rs[] = {. "CO
9d70: 4d 53 50 45 43 22 2c 20 22 44 4f 43 55 4d 45 4e MSPEC", "DOCUMEN
9d80: 54 5f 52 4f 4f 54 22 2c 20 22 47 41 54 45 57 41 T_ROOT", "GATEWA
9d90: 59 5f 49 4e 54 45 52 46 41 43 45 22 2c 0a 20 20 Y_INTERFACE",.
9da0: 20 20 22 48 54 54 50 5f 41 43 43 45 50 54 22 2c "HTTP_ACCEPT",
9db0: 20 22 48 54 54 50 5f 41 43 43 45 50 54 5f 43 48 "HTTP_ACCEPT_CH
9dc0: 41 52 53 45 54 22 2c 20 22 48 54 54 50 5f 41 43 ARSET", "HTTP_AC
9dd0: 43 45 50 54 5f 45 4e 43 4f 44 49 4e 47 22 2c 0a CEPT_ENCODING",.
9de0: 20 20 20 20 22 48 54 54 50 5f 41 43 43 45 50 54 "HTTP_ACCEPT
9df0: 5f 4c 41 4e 47 55 41 47 45 22 2c 20 22 48 54 54 _LANGUAGE", "HTT
9e00: 50 5f 43 4f 4e 4e 45 43 54 49 4f 4e 22 2c 20 22 P_CONNECTION", "
9e10: 48 54 54 50 5f 48 4f 53 54 22 2c 0a 20 20 20 20 HTTP_HOST",.
9e20: 22 48 54 54 50 5f 55 53 45 52 5f 41 47 45 4e 54 "HTTP_USER_AGENT
9e30: 22 2c 20 22 48 54 54 50 5f 52 45 46 45 52 45 52 ", "HTTP_REFERER
9e40: 22 2c 20 22 50 41 54 48 5f 49 4e 46 4f 22 2c 20 ", "PATH_INFO",
9e50: 22 50 41 54 48 5f 54 52 41 4e 53 4c 41 54 45 44 "PATH_TRANSLATED
9e60: 22 2c 0a 20 20 20 20 22 51 55 45 52 59 5f 53 54 ",. "QUERY_ST
9e70: 52 49 4e 47 22 2c 20 22 52 45 4d 4f 54 45 5f 41 RING", "REMOTE_A
9e80: 44 44 52 22 2c 20 22 52 45 4d 4f 54 45 5f 50 4f DDR", "REMOTE_PO
9e90: 52 54 22 2c 20 22 52 45 51 55 45 53 54 5f 4d 45 RT", "REQUEST_ME
9ea0: 54 48 4f 44 22 2c 0a 20 20 20 20 22 52 45 51 55 THOD",. "REQU
9eb0: 45 53 54 5f 55 52 49 22 2c 20 22 53 43 52 49 50 EST_URI", "SCRIP
9ec0: 54 5f 46 49 4c 45 4e 41 4d 45 22 2c 20 22 53 43 T_FILENAME", "SC
9ed0: 52 49 50 54 5f 4e 41 4d 45 22 2c 20 22 53 45 52 RIPT_NAME", "SER
9ee0: 56 45 52 5f 50 52 4f 54 4f 43 4f 4c 22 2c 0a 20 VER_PROTOCOL",.
9ef0: 20 7d 3b 0a 0a 20 20 6c 6f 67 69 6e 5f 63 68 65 };.. login_che
9f00: 63 6b 5f 63 72 65 64 65 6e 74 69 61 6c 73 28 29 ck_credentials()
9f10: 3b 0a 20 20 69 66 28 20 21 67 2e 70 65 72 6d 2e ;. if( !g.perm.
9f20: 41 64 6d 69 6e 20 26 26 20 21 67 2e 70 65 72 6d Admin && !g.perm
9f30: 2e 53 65 74 75 70 20 26 26 20 21 64 62 5f 67 65 .Setup && !db_ge
9f40: 74 5f 62 6f 6f 6c 65 61 6e 28 22 74 65 73 74 5f t_boolean("test_
9f50: 65 6e 76 5f 65 6e 61 62 6c 65 22 2c 30 29 20 29 env_enable",0) )
9f60: 7b 0a 20 20 20 20 6c 6f 67 69 6e 5f 6e 65 65 64 {. login_need
9f70: 65 64 28 30 29 3b 0a 20 20 20 20 72 65 74 75 72 ed(0);. retur
9f80: 6e 3b 0a 20 20 7d 0a 20 20 66 6f 72 28 69 3d 30 n;. }. for(i=0
9f90: 3b 20 69 3c 63 6f 75 6e 74 28 61 7a 43 67 69 56 ; i<count(azCgiV
9fa0: 61 72 73 29 3b 20 69 2b 2b 29 20 28 76 6f 69 64 ars); i++) (void
9fb0: 29 50 28 61 7a 43 67 69 56 61 72 73 5b 69 5d 29 )P(azCgiVars[i])
9fc0: 3b 0a 20 20 73 74 79 6c 65 5f 68 65 61 64 65 72 ;. style_header
9fd0: 28 22 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 54 65 ("Environment Te
9fe0: 73 74 22 29 3b 0a 20 20 73 68 6f 77 41 6c 6c 20 st");. showAll
9ff0: 3d 20 61 74 6f 69 28 50 44 28 22 73 68 6f 77 61 = atoi(PD("showa
a000: 6c 6c 22 2c 22 30 22 29 29 3b 0a 20 20 69 66 28 ll","0"));. if(
a010: 20 21 73 68 6f 77 41 6c 6c 20 29 7b 0a 20 20 20 !showAll ){.
a020: 20 73 74 79 6c 65 5f 73 75 62 6d 65 6e 75 5f 65 style_submenu_e
a030: 6c 65 6d 65 6e 74 28 22 53 68 6f 77 20 43 6f 6f lement("Show Coo
a040: 6b 69 65 73 22 2c 20 30 2c 20 22 25 52 2f 74 65 kies", 0, "%R/te
a050: 73 74 5f 65 6e 76 3f 73 68 6f 77 61 6c 6c 3d 31 st_env?showall=1
a060: 22 29 3b 0a 20 20 7d 65 6c 73 65 7b 0a 20 20 20 ");. }else{.
a070: 20 73 74 79 6c 65 5f 73 75 62 6d 65 6e 75 5f 65 style_submenu_e
a080: 6c 65 6d 65 6e 74 28 22 48 69 64 65 20 43 6f 6f lement("Hide Coo
a090: 6b 69 65 73 22 2c 20 30 2c 20 22 25 52 2f 74 65 kies", 0, "%R/te
a0a0: 73 74 5f 65 6e 76 22 29 3b 0a 20 20 7d 0a 23 69 st_env");. }.#i
a0b0: 66 20 21 64 65 66 69 6e 65 64 28 5f 57 49 4e 33 f !defined(_WIN3
a0c0: 32 29 0a 20 20 40 20 75 69 64 3d 25 64 28 67 65 2). @ uid=%d(ge
a0d0: 74 75 69 64 28 29 29 2c 20 67 69 64 3d 25 64 28 tuid()), gid=%d(
a0e0: 67 65 74 67 69 64 28 29 29 3c 62 72 20 2f 3e 0a getgid())<br />.
a0f0: 23 65 6e 64 69 66 0a 20 20 40 20 67 2e 7a 42 61 #endif. @ g.zBa
a100: 73 65 55 52 4c 20 3d 20 25 68 28 67 2e 7a 42 61 seURL = %h(g.zBa
a110: 73 65 55 52 4c 29 3c 62 72 20 2f 3e 0a 20 20 40 seURL)<br />. @
a120: 20 67 2e 7a 48 74 74 70 73 55 52 4c 20 3d 20 25 g.zHttpsURL = %
a130: 68 28 67 2e 7a 48 74 74 70 73 55 52 4c 29 3c 62 h(g.zHttpsURL)<b
a140: 72 20 2f 3e 0a 20 20 40 20 67 2e 7a 54 6f 70 20 r />. @ g.zTop
a150: 3d 20 25 68 28 67 2e 7a 54 6f 70 29 3c 62 72 20 = %h(g.zTop)<br
a160: 2f 3e 0a 20 20 40 20 67 2e 7a 50 61 74 68 20 3d />. @ g.zPath =
a170: 20 25 68 28 67 2e 7a 50 61 74 68 29 3c 62 72 20 %h(g.zPath)<br
a180: 2f 3e 0a 20 20 66 6f 72 28 69 3d 30 2c 20 63 3d />. for(i=0, c=
a190: 27 61 27 3b 20 63 3c 3d 27 7a 27 3b 20 63 2b 2b 'a'; c<='z'; c++
a1a0: 29 7b 0a 20 20 20 20 69 66 28 20 6c 6f 67 69 6e ){. if( login
a1b0: 5f 68 61 73 5f 63 61 70 61 62 69 6c 69 74 79 28 _has_capability(
a1c0: 26 63 2c 20 31 2c 20 30 29 20 29 20 7a 43 61 70 &c, 1, 0) ) zCap
a1d0: 5b 69 2b 2b 5d 20 3d 20 63 3b 0a 20 20 7d 0a 20 [i++] = c;. }.
a1e0: 20 7a 43 61 70 5b 69 5d 20 3d 20 30 3b 0a 20 20 zCap[i] = 0;.
a1f0: 40 20 67 2e 75 73 65 72 55 69 64 20 3d 20 25 64 @ g.userUid = %d
a200: 28 67 2e 75 73 65 72 55 69 64 29 3c 62 72 20 2f (g.userUid)<br /
a210: 3e 0a 20 20 40 20 67 2e 7a 4c 6f 67 69 6e 20 3d >. @ g.zLogin =
a220: 20 25 68 28 67 2e 7a 4c 6f 67 69 6e 29 3c 62 72 %h(g.zLogin)<br
a230: 20 2f 3e 0a 20 20 40 20 67 2e 69 73 48 75 6d 61 />. @ g.isHuma
a240: 6e 20 3d 20 25 64 28 67 2e 69 73 48 75 6d 61 6e n = %d(g.isHuman
a250: 29 3c 62 72 20 2f 3e 0a 20 20 40 20 63 61 70 61 )<br />. @ capa
a260: 62 69 6c 69 74 69 65 73 20 3d 20 25 73 28 7a 43 bilities = %s(zC
a270: 61 70 29 3c 62 72 20 2f 3e 0a 20 20 66 6f 72 28 ap)<br />. for(
a280: 69 3d 30 2c 20 63 3d 27 61 27 3b 20 63 3c 3d 27 i=0, c='a'; c<='
a290: 7a 27 3b 20 63 2b 2b 29 7b 0a 20 20 20 20 69 66 z'; c++){. if
a2a0: 28 20 6c 6f 67 69 6e 5f 68 61 73 5f 63 61 70 61 ( login_has_capa
a2b0: 62 69 6c 69 74 79 28 26 63 2c 20 31 2c 20 4c 4f bility(&c, 1, LO
a2c0: 47 49 4e 5f 41 4e 4f 4e 29 0a 20 20 20 20 20 20 GIN_ANON).
a2d0: 20 20 20 26 26 20 21 6c 6f 67 69 6e 5f 68 61 73 && !login_has
a2e0: 5f 63 61 70 61 62 69 6c 69 74 79 28 26 63 2c 20 _capability(&c,
a2f0: 31 2c 20 30 29 20 29 20 7a 43 61 70 5b 69 2b 2b 1, 0) ) zCap[i++
a300: 5d 20 3d 20 63 3b 0a 20 20 7d 0a 20 20 7a 43 61 ] = c;. }. zCa
a310: 70 5b 69 5d 20 3d 20 30 3b 0a 20 20 69 66 28 20 p[i] = 0;. if(
a320: 69 3e 30 20 29 7b 0a 20 20 20 20 40 20 61 6e 6f i>0 ){. @ ano
a330: 6e 79 6d 6f 75 73 2d 61 64 64 73 20 3d 20 25 73 nymous-adds = %s
a340: 28 7a 43 61 70 29 3c 62 72 20 2f 3e 0a 20 20 7d (zCap)<br />. }
a350: 0a 20 20 40 20 67 2e 7a 52 65 70 6f 73 69 74 6f . @ g.zReposito
a360: 72 79 4e 61 6d 65 20 3d 20 25 68 28 67 2e 7a 52 ryName = %h(g.zR
a370: 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 3c 62 epositoryName)<b
a380: 72 20 2f 3e 0a 20 20 40 20 6c 6f 61 64 5f 61 76 r />. @ load_av
a390: 65 72 61 67 65 28 29 20 3d 20 25 66 28 6c 6f 61 erage() = %f(loa
a3a0: 64 5f 61 76 65 72 61 67 65 28 29 29 3c 62 72 20 d_average())<br
a3b0: 2f 3e 0a 20 20 40 20 3c 68 72 3e 0a 20 20 50 28 />. @ <hr>. P(
a3c0: 22 48 54 54 50 5f 55 53 45 52 5f 41 47 45 4e 54 "HTTP_USER_AGENT
a3d0: 22 29 3b 0a 20 20 63 67 69 5f 70 72 69 6e 74 5f ");. cgi_print_
a3e0: 61 6c 6c 28 73 68 6f 77 41 6c 6c 29 3b 0a 20 20 all(showAll);.
a3f0: 69 66 28 20 73 68 6f 77 41 6c 6c 20 26 26 20 62 if( showAll && b
a400: 6c 6f 62 5f 73 69 7a 65 28 26 67 2e 68 74 74 70 lob_size(&g.http
a410: 48 65 61 64 65 72 29 3e 30 20 29 7b 0a 20 20 20 Header)>0 ){.
a420: 20 40 20 3c 68 72 3e 0a 20 20 20 20 40 20 3c 70 @ <hr>. @ <p
a430: 72 65 3e 0a 20 20 20 20 40 20 25 68 28 62 6c 6f re>. @ %h(blo
a440: 62 5f 73 74 72 28 26 67 2e 68 74 74 70 48 65 61 b_str(&g.httpHea
a450: 64 65 72 29 29 0a 20 20 20 20 40 20 3c 2f 70 72 der)). @ </pr
a460: 65 3e 0a 20 20 7d 0a 20 20 69 66 28 20 67 2e 70 e>. }. if( g.p
a470: 65 72 6d 2e 53 65 74 75 70 20 29 7b 0a 20 20 20 erm.Setup ){.
a480: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 7a 52 65 const char *zRe
a490: 64 69 72 20 3d 20 50 28 22 72 65 64 69 72 65 63 dir = P("redirec
a4a0: 74 22 29 3b 0a 20 20 20 20 69 66 28 20 7a 52 65 t");. if( zRe
a4b0: 64 69 72 20 29 20 63 67 69 5f 72 65 64 69 72 65 dir ) cgi_redire
a4c0: 63 74 28 7a 52 65 64 69 72 29 3b 0a 20 20 7d 0a ct(zRedir);. }.
a4d0: 20 20 73 74 79 6c 65 5f 66 6f 6f 74 65 72 28 29 style_footer()
a4e0: 3b 0a 20 20 69 66 28 20 67 2e 70 65 72 6d 2e 41 ;. if( g.perm.A
a4f0: 64 6d 69 6e 20 26 26 20 50 28 22 65 72 72 22 29 dmin && P("err")
a500: 20 29 20 66 6f 73 73 69 6c 5f 66 61 74 61 6c 28 ) fossil_fatal(
a510: 22 25 73 22 2c 20 50 28 22 65 72 72 22 29 29 3b "%s", P("err"));
a520: 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 54 68 69 73 20 70 .}../*.** This p
a530: 61 67 65 20 69 73 20 61 20 68 6f 6e 65 79 70 6f age is a honeypo
a540: 74 20 66 6f 72 20 73 70 69 64 65 72 73 20 61 6e t for spiders an
a550: 64 20 62 6f 74 73 2e 0a 2a 2a 0a 2a 2a 20 57 45 d bots..**.** WE
a560: 42 50 41 47 45 3a 20 68 6f 6e 65 79 70 6f 74 0a BPAGE: honeypot.
a570: 2a 2f 0a 76 6f 69 64 20 68 6f 6e 65 79 70 6f 74 */.void honeypot
a580: 5f 70 61 67 65 28 76 6f 69 64 29 7b 0a 20 20 63 _page(void){. c
a590: 67 69 5f 73 65 74 5f 73 74 61 74 75 73 28 34 30 gi_set_status(40
a5a0: 33 2c 20 22 46 6f 72 62 69 64 64 65 6e 22 29 3b 3, "Forbidden");
a5b0: 0a 20 20 40 20 3c 70 3e 50 6c 65 61 73 65 20 65 . @ <p>Please e
a5c0: 6e 61 62 6c 65 20 6a 61 76 61 73 63 72 69 70 74 nable javascript
a5d0: 20 6f 72 20 6c 6f 67 20 69 6e 20 74 6f 20 73 65 or log in to se
a5e0: 65 20 74 68 69 73 20 63 6f 6e 74 65 6e 74 3c 2f e this content</
a5f0: 70 3e 0a 7d 0a p>.}.