remove more cruft
This commit is contained in:
parent
c70b9a8d0f
commit
d746005b1f
229
cgi.h
229
cgi.h
|
@ -1,229 +0,0 @@
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <values.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
#ifdef NODUMP
|
|
||||||
# define DUMPf(fmt, args...)
|
|
||||||
#else
|
|
||||||
# define DUMPf(fmt, args...) fprintf(stderr, "%s:%s:%d " fmt "\n", __FILE__, __FUNCTION__, __LINE__, ##args)
|
|
||||||
#endif
|
|
||||||
#define DUMP() DUMPf("")
|
|
||||||
#define DUMP_d(v) DUMPf("%s = %d", #v, v)
|
|
||||||
#define DUMP_x(v) DUMPf("%s = 0x%x", #v, v)
|
|
||||||
#define DUMP_s(v) DUMPf("%s = %s", #v, v)
|
|
||||||
#define DUMP_c(v) DUMPf("%s = '%c' (0x%02x)", #v, v, v)
|
|
||||||
#define DUMP_p(v) DUMPf("%s = %p", #v, v)
|
|
||||||
|
|
||||||
|
|
||||||
#define POST_MAX 1024
|
|
||||||
|
|
||||||
/*
|
|
||||||
* CGI
|
|
||||||
*/
|
|
||||||
static int is_cgi = 0;
|
|
||||||
static char **argv = NULL;
|
|
||||||
|
|
||||||
static int
|
|
||||||
read_char_argv()
|
|
||||||
{
|
|
||||||
static int arg = 0;
|
|
||||||
static char *p;
|
|
||||||
|
|
||||||
if (NULL == argv) {
|
|
||||||
return EOF;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (0 == arg) {
|
|
||||||
arg = 1;
|
|
||||||
p = argv[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! p) {
|
|
||||||
return EOF;
|
|
||||||
} else if (! *p) {
|
|
||||||
arg += 1;
|
|
||||||
p = argv[arg];
|
|
||||||
return '&';
|
|
||||||
}
|
|
||||||
|
|
||||||
return *(p++);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
read_char_stdin()
|
|
||||||
{
|
|
||||||
static int inlen = -1;
|
|
||||||
|
|
||||||
if (-1 == inlen) {
|
|
||||||
char *p = getenv("CONTENT_LENGTH");
|
|
||||||
if (p) {
|
|
||||||
inlen = atoi(p);
|
|
||||||
if (inlen > POST_MAX) {
|
|
||||||
inlen = POST_MAX;
|
|
||||||
}
|
|
||||||
if (inlen < 0) {
|
|
||||||
inlen = 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
inlen = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (inlen) {
|
|
||||||
inlen -= 1;
|
|
||||||
return getchar();
|
|
||||||
}
|
|
||||||
return EOF;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
read_char_query_string()
|
|
||||||
{
|
|
||||||
static char *p = (char *)-1;
|
|
||||||
|
|
||||||
if ((char *)-1 == p) {
|
|
||||||
p = getenv("QUERY_STRING");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! p) {
|
|
||||||
return EOF;
|
|
||||||
} else if (! *p) {
|
|
||||||
return EOF;
|
|
||||||
} else {
|
|
||||||
return *(p++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int (* read_char)() = read_char_argv;
|
|
||||||
|
|
||||||
int
|
|
||||||
cgi_init(char *global_argv[])
|
|
||||||
{
|
|
||||||
char *rm = getenv("REQUEST_METHOD");
|
|
||||||
|
|
||||||
if (! rm) {
|
|
||||||
read_char = read_char_argv;
|
|
||||||
argv = global_argv;
|
|
||||||
} else if (0 == strcmp(rm, "POST")) {
|
|
||||||
read_char = read_char_stdin;
|
|
||||||
is_cgi = 1;
|
|
||||||
} else if (0 == strcmp(rm, "GET")) {
|
|
||||||
read_char = read_char_query_string;
|
|
||||||
is_cgi = 1;
|
|
||||||
} else {
|
|
||||||
printf(("405 Method not allowed\r\n"
|
|
||||||
"Allow: GET, POST\r\n"
|
|
||||||
"Content-type: text/plain\r\n"
|
|
||||||
"\r\n"
|
|
||||||
"%s is not allowed.\n"),
|
|
||||||
rm);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char
|
|
||||||
tonum(int c)
|
|
||||||
{
|
|
||||||
if ((c >= '0') && (c <= '9')) {
|
|
||||||
return c - '0';
|
|
||||||
}
|
|
||||||
if ((c >= 'a') && (c <= 'f')) {
|
|
||||||
return 10 + c - 'a';
|
|
||||||
}
|
|
||||||
if ((c >= 'A') && (c <= 'F')) {
|
|
||||||
return 10 + c - 'A';
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char
|
|
||||||
read_hex()
|
|
||||||
{
|
|
||||||
int a = read_char();
|
|
||||||
int b = read_char();
|
|
||||||
|
|
||||||
return tonum(a)*16 + tonum(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Read a key or a value. Since & and = aren't supposed to appear
|
|
||||||
outside of boundaries, we can use the same function for both.
|
|
||||||
*/
|
|
||||||
size_t
|
|
||||||
cgi_item(char *str, size_t maxlen)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
size_t pos = 0;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
c = read_char();
|
|
||||||
switch (c) {
|
|
||||||
case EOF:
|
|
||||||
case '=':
|
|
||||||
case '&':
|
|
||||||
str[pos] = '\0';
|
|
||||||
return pos;
|
|
||||||
case '%':
|
|
||||||
c = read_hex();
|
|
||||||
break;
|
|
||||||
case '+':
|
|
||||||
c = ' ';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (pos < maxlen - 1) {
|
|
||||||
str[pos] = c;
|
|
||||||
pos += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
cgi_header(char *contenttype)
|
|
||||||
{
|
|
||||||
if (is_cgi) {
|
|
||||||
printf("Content-type: %s\r\n\r\n", contenttype);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
cgi_foot()
|
|
||||||
{
|
|
||||||
printf("\n"
|
|
||||||
" </body>\n"
|
|
||||||
"</html>\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
cgi_result(int code, char *desc, char *fmt, ...)
|
|
||||||
{
|
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
if (is_cgi) {
|
|
||||||
printf("Status: %d %s\r\n", code, desc);
|
|
||||||
}
|
|
||||||
cgi_header("text/html");
|
|
||||||
printf("<title>%s</title>\n", desc);
|
|
||||||
printf("<h1>%d %s</h1>\n", code, desc);
|
|
||||||
va_start(ap, fmt);
|
|
||||||
vprintf(fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
cgi_foot();
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
cgi_error(char *text)
|
|
||||||
{
|
|
||||||
cgi_result(500, "Internal error", "<p>%s</p>", text);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
732
css/cgit.css
732
css/cgit.css
|
@ -1,732 +0,0 @@
|
||||||
@import url("default.css");
|
|
||||||
@import url("font-awesome.min.css");
|
|
||||||
body {
|
|
||||||
max-width: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#header {
|
|
||||||
width: 100%;
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#header td.main {
|
|
||||||
font-family: "URW Gothic L", sans-serif;
|
|
||||||
font-size: 200%;
|
|
||||||
color: #c17f6f;
|
|
||||||
padding-left: 10px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#header td.form {
|
|
||||||
text-align: right;
|
|
||||||
vertical-align: bottom;
|
|
||||||
padding-right: 1em;
|
|
||||||
padding-bottom: 2px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#header td.form form,
|
|
||||||
table#header td.form input,
|
|
||||||
table#header td.form select {
|
|
||||||
font-size: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#header td.sub {
|
|
||||||
display: none;
|
|
||||||
color: #777;
|
|
||||||
border-top: solid 1px #ccc;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.tabs {
|
|
||||||
border-bottom: solid 3px #ccc;
|
|
||||||
border-collapse: collapse;
|
|
||||||
margin-top: 2em;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.tabs td {
|
|
||||||
padding: 0px 1em;
|
|
||||||
vertical-align: bottom;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.tabs td a {
|
|
||||||
padding: 2px 0.75em;
|
|
||||||
font-size: 110%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.tabs td a.active {
|
|
||||||
color: #000;
|
|
||||||
background-color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list {
|
|
||||||
width: 100%;
|
|
||||||
border: none;
|
|
||||||
border-collapse: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list tr:hover {
|
|
||||||
background: #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list tr.nohover:hover {
|
|
||||||
background: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list th {
|
|
||||||
font-weight: bold;
|
|
||||||
background: #ccc;
|
|
||||||
border-bottom: solid 1px #888;
|
|
||||||
padding: 0.1em 0.5em 0.05em 0.5em;
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td {
|
|
||||||
border: none;
|
|
||||||
padding: 0.1em 0.5em 0.1em 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.commitgraph {
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.commitgraph .column1 {
|
|
||||||
color: #a00;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.commitgraph .column2 {
|
|
||||||
color: #0a0;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.commitgraph .column3 {
|
|
||||||
color: #aa0;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.commitgraph .column4 {
|
|
||||||
color: #00a;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.commitgraph .column5 {
|
|
||||||
color: #a0a;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.commitgraph .column6 {
|
|
||||||
color: #0aa;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.logsubject {
|
|
||||||
font-family: monospace;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.logmsg {
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
padding: 0 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td a.ls-dir {
|
|
||||||
font-weight: bold;
|
|
||||||
color: #00f;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
input#switch-btn {
|
|
||||||
margin: 2px 0px 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
td#sidebar input.txt {
|
|
||||||
width: 100%;
|
|
||||||
margin: 2px 0px 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#grid {
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
td#content {
|
|
||||||
vertical-align: top;
|
|
||||||
padding: 1em 2em 1em 1em;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
div#summary {
|
|
||||||
vertical-align: top;
|
|
||||||
max-width: 35em;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#downloads {
|
|
||||||
float: right;
|
|
||||||
border-collapse: collapse;
|
|
||||||
border: solid 1px #777;
|
|
||||||
margin-left: 0.5em;
|
|
||||||
margin-bottom: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table#downloads th {
|
|
||||||
background-color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
div#blob {
|
|
||||||
border: solid 1px black;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.error {
|
|
||||||
color: red;
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 1em 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.ls-blob, a.ls-dir, a.ls-mod {
|
|
||||||
font-family: monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
td.ls-size {
|
|
||||||
text-align: right;
|
|
||||||
font-family: monospace;
|
|
||||||
width: 10em;
|
|
||||||
}
|
|
||||||
|
|
||||||
td.ls-mode {
|
|
||||||
font-family: monospace;
|
|
||||||
width: 10em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.blob {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
border-top: solid 1px black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.blob td.lines {
|
|
||||||
margin: 0; padding: 0 0 0 0.5em;
|
|
||||||
vertical-align: top;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.blob td.linenumbers {
|
|
||||||
margin: 0; padding: 0 0.5em 0 0.5em;
|
|
||||||
vertical-align: top;
|
|
||||||
text-align: right;
|
|
||||||
border-right: 1px solid gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.blob pre {
|
|
||||||
padding: 0; margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.blob a.no, table.ssdiff a.no {
|
|
||||||
color: gray;
|
|
||||||
text-align: right;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.blob a.no a:hover {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.bin-blob {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
border: solid 1px black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.bin-blob th {
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
border: solid 1px #777;
|
|
||||||
padding: 0.5em 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.bin-blob td {
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
border-left: solid 1px #777;
|
|
||||||
padding: 0em 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.nowrap td {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.commit-info {
|
|
||||||
border-collapse: collapse;
|
|
||||||
margin-top: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.cgit-panel {
|
|
||||||
float: right;
|
|
||||||
margin-top: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.cgit-panel table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
border: solid 1px #aaa;
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.cgit-panel th {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.cgit-panel td {
|
|
||||||
padding: 0.25em 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.cgit-panel td.label {
|
|
||||||
padding-right: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.cgit-panel td.ctrl {
|
|
||||||
padding-left: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.commit-info th {
|
|
||||||
text-align: left;
|
|
||||||
font-weight: normal;
|
|
||||||
padding: 0.1em 1em 0.1em 0.1em;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.commit-info td {
|
|
||||||
font-weight: normal;
|
|
||||||
padding: 0.1em 1em 0.1em 0.1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.commit-subject {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 125%;
|
|
||||||
margin: 1.5em 0em 0.5em 0em;
|
|
||||||
padding: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.commit-msg {
|
|
||||||
white-space: pre;
|
|
||||||
font-family: monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.notes-header {
|
|
||||||
font-weight: bold;
|
|
||||||
padding-top: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.notes {
|
|
||||||
white-space: pre;
|
|
||||||
font-family: monospace;
|
|
||||||
border: solid 1px #ee9;
|
|
||||||
background-color: #ffd;
|
|
||||||
padding: 0.3em 2em 0.3em 1em;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.notes-footer {
|
|
||||||
clear: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.diffstat-header {
|
|
||||||
font-weight: bold;
|
|
||||||
padding-top: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat {
|
|
||||||
border-collapse: collapse;
|
|
||||||
border: solid 1px #aaa;
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat th {
|
|
||||||
font-weight: normal;
|
|
||||||
text-align: left;
|
|
||||||
text-decoration: underline;
|
|
||||||
padding: 0.1em 1em 0.1em 0.1em;
|
|
||||||
font-size: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td {
|
|
||||||
padding: 0.2em 0.2em 0.1em 0.1em;
|
|
||||||
font-size: 100%;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.mode {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td span.modechange {
|
|
||||||
padding-left: 1em;
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.add a {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.del a {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.upd a {
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.graph {
|
|
||||||
width: 500px;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.graph table {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.graph td {
|
|
||||||
padding: 0px;
|
|
||||||
border: 0px;
|
|
||||||
height: 7pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.graph td.add {
|
|
||||||
background-color: #5c5;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diffstat td.graph td.rem {
|
|
||||||
background-color: #c55;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.diffstat-summary {
|
|
||||||
color: #888;
|
|
||||||
padding-top: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diff {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diff td {
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diff td div.head {
|
|
||||||
font-weight: bold;
|
|
||||||
margin-top: 1em;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diff td div.hunk {
|
|
||||||
color: #009;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diff td div.add {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.diff td div.del {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sha1 {
|
|
||||||
font-family: monospace;
|
|
||||||
font-size: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.left {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.reposection {
|
|
||||||
font-style: italic;
|
|
||||||
color: #888;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.button {
|
|
||||||
font-size: 80%;
|
|
||||||
padding: 0em 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.primary {
|
|
||||||
font-size: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.secondary {
|
|
||||||
font-size: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
td.toplevel-repo {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
table.list td.sublevel-repo {
|
|
||||||
padding-left: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.pager {
|
|
||||||
text-align: center;
|
|
||||||
margin: 1em 0em 0em 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.pager a {
|
|
||||||
color: #777;
|
|
||||||
margin: 0em 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.age-mins {
|
|
||||||
font-weight: bold;
|
|
||||||
color: #080;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.age-hours {
|
|
||||||
color: #080;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.age-days {
|
|
||||||
color: #040;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.age-weeks {
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.age-months {
|
|
||||||
color: #888;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.age-years {
|
|
||||||
color: #bbb;
|
|
||||||
}
|
|
||||||
div.footer {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 80%;
|
|
||||||
color: #ccc;
|
|
||||||
}
|
|
||||||
a.branch-deco {
|
|
||||||
margin: 0px 0.5em;
|
|
||||||
padding: 0px 0.25em;
|
|
||||||
background-color: #88ff88;
|
|
||||||
border: solid 1px #007700;
|
|
||||||
}
|
|
||||||
a.tag-deco {
|
|
||||||
margin: 0px 0.5em;
|
|
||||||
padding: 0px 0.25em;
|
|
||||||
background-color: #ffff88;
|
|
||||||
border: solid 1px #777700;
|
|
||||||
}
|
|
||||||
a.remote-deco {
|
|
||||||
margin: 0px 0.5em;
|
|
||||||
padding: 0px 0.25em;
|
|
||||||
background-color: #ccccff;
|
|
||||||
border: solid 1px #000077;
|
|
||||||
}
|
|
||||||
a.deco {
|
|
||||||
margin: 0px 0.5em;
|
|
||||||
padding: 0px 0.25em;
|
|
||||||
background-color: #ff8888;
|
|
||||||
border: solid 1px #770000;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.commit-subject a.branch-deco,
|
|
||||||
div.commit-subject a.tag-deco,
|
|
||||||
div.commit-subject a.remote-deco,
|
|
||||||
div.commit-subject a.deco {
|
|
||||||
margin-left: 1em;
|
|
||||||
font-size: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.stats {
|
|
||||||
border: solid 1px black;
|
|
||||||
border-collapse: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.stats th {
|
|
||||||
text-align: left;
|
|
||||||
padding: 1px 0.5em;
|
|
||||||
background-color: #eee;
|
|
||||||
border: solid 1px black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.stats td {
|
|
||||||
text-align: right;
|
|
||||||
padding: 1px 0.5em;
|
|
||||||
border: solid 1px black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.stats td.total {
|
|
||||||
font-weight: bold;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.stats td.sum {
|
|
||||||
color: #c00;
|
|
||||||
font-weight: bold;
|
|
||||||
/* background-color: #eee; */
|
|
||||||
}
|
|
||||||
|
|
||||||
table.stats td.left {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.vgraph {
|
|
||||||
border-collapse: separate;
|
|
||||||
border: solid 1px black;
|
|
||||||
height: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.vgraph th {
|
|
||||||
background-color: #eee;
|
|
||||||
font-weight: bold;
|
|
||||||
border: solid 1px white;
|
|
||||||
padding: 1px 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.vgraph td {
|
|
||||||
vertical-align: bottom;
|
|
||||||
padding: 0px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.vgraph div.bar {
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.hgraph {
|
|
||||||
border: solid 1px black;
|
|
||||||
width: 800px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.hgraph th {
|
|
||||||
background-color: #eee;
|
|
||||||
font-weight: bold;
|
|
||||||
border: solid 1px black;
|
|
||||||
padding: 1px 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.hgraph td {
|
|
||||||
vertical-align: middle;
|
|
||||||
padding: 2px 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.hgraph div.bar {
|
|
||||||
background-color: #eee;
|
|
||||||
height: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td {
|
|
||||||
font-size: 75%;
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: pre;
|
|
||||||
padding: 1px 4px 1px 4px;
|
|
||||||
border-left: solid 1px #aaa;
|
|
||||||
border-right: solid 1px #aaa;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.add {
|
|
||||||
color: black;
|
|
||||||
background: #cfc;
|
|
||||||
min-width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.add_dark {
|
|
||||||
color: black;
|
|
||||||
background: #aca;
|
|
||||||
min-width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff span.add {
|
|
||||||
background: #cfc;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.del {
|
|
||||||
color: black;
|
|
||||||
background: #fcc;
|
|
||||||
min-width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.del_dark {
|
|
||||||
color: black;
|
|
||||||
background: #caa;
|
|
||||||
min-width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff span.del {
|
|
||||||
background: #fcc;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.changed {
|
|
||||||
color: black;
|
|
||||||
background: #ffc;
|
|
||||||
min-width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.changed_dark {
|
|
||||||
color: black;
|
|
||||||
background: #cca;
|
|
||||||
min-width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.lineno {
|
|
||||||
color: black;
|
|
||||||
background: #eee;
|
|
||||||
text-align: right;
|
|
||||||
width: 3em;
|
|
||||||
min-width: 3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.hunk {
|
|
||||||
color: black;
|
|
||||||
background: #ccf;
|
|
||||||
border-top: solid 1px #aaa;
|
|
||||||
border-bottom: solid 1px #aaa;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.head {
|
|
||||||
border-top: solid 1px #aaa;
|
|
||||||
border-bottom: solid 1px #aaa;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.head div.head {
|
|
||||||
font-weight: bold;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.foot {
|
|
||||||
border-top: solid 1px #aaa;
|
|
||||||
border-left: none;
|
|
||||||
border-right: none;
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.space {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.ssdiff td.space div {
|
|
||||||
min-height: 3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Syntax highlighting */
|
|
||||||
table.blob .num { color:#2928ff; }
|
|
||||||
table.blob .esc { color:#ff00ff; }
|
|
||||||
table.blob .str { color:#ff0000; }
|
|
||||||
table.blob .dstr { color:#818100; }
|
|
||||||
table.blob .slc { color:#838183; font-style:italic; }
|
|
||||||
table.blob .com { color:#838183; font-style:italic; }
|
|
||||||
table.blob .dir { color:#008200; }
|
|
||||||
table.blob .sym { color:#000000; }
|
|
||||||
table.blob .kwa { color:#000000; font-weight:bold; }
|
|
||||||
table.blob .kwb { color:#830000; }
|
|
||||||
table.blob .kwc { color:#000000; font-weight:bold; }
|
|
||||||
table.blob .kwd { color:#010181; }
|
|
|
@ -1,19 +0,0 @@
|
||||||
[[!meta title="32 lines about 16 lusers"]]
|
|
||||||
|
|
||||||
ian is a manager, he also rides a motorbike
|
|
||||||
hbunny's a boss-man too, and he pumps iron day and night
|
|
||||||
Meeko is a quasi-furry, lives in Georgia with the fam
|
|
||||||
Seattle City pays owreee to try and stick it to the man
|
|
||||||
toast lives on a sailboat with husband, daughters, and some pets
|
|
||||||
brains take pictures of them all and posts them on the Internets
|
|
||||||
pinky's in New Jersey, works at linode keeping servers up
|
|
||||||
crispy's got a dozen kids and writes code for some small start-up
|
|
||||||
alien's a British guy, his wife is French and they ride bikes
|
|
||||||
Fub's from Denmark, lives in London, wife and son are Chinese tykes
|
|
||||||
ameigh is a mommy and she studies speech impediments
|
|
||||||
nate's a mystery to me, I don't know how he pays his rents
|
|
||||||
ronin is a Star Wars fan, and coding's something he enjoys
|
|
||||||
heidi's pinky's wife, she has a business selling bedroom toys
|
|
||||||
kirk hacks Linux Kernels, and his paycheck comes from Cray Research
|
|
||||||
nwc's a mystery, he mostly hangs around and lurks
|
|
||||||
And me, I just sit around writing poems.
|
|
|
@ -1,24 +0,0 @@
|
||||||
Title: #zork Song Fight #1
|
|
||||||
|
|
||||||
HEY NERDS
|
|
||||||
|
|
||||||
Let's make some music.
|
|
||||||
|
|
||||||
The song is "Ballad of the Scorpion Queen and the Centipede King" and you
|
|
||||||
can [listen to it on YouTube](http://youtu.be/w2-EAsP2O1Q?t=52s).
|
|
||||||
|
|
||||||
SpaceHobo got ahold of the lyrics and changes:
|
|
||||||
|
|
||||||
* [Ukulele](http://zork.net/~nick/scorpion.pdf)
|
|
||||||
|
|
||||||
|
|
||||||
RULES
|
|
||||||
-----
|
|
||||||
|
|
||||||
Hahahaha.
|
|
||||||
|
|
||||||
Probably put it in .ogg format 'cuz we're all big nerds like that.
|
|
||||||
You have to license it so that we can copy and listen to it.
|
|
||||||
|
|
||||||
Email your thingy (or a link to your thingy) to neale@woozle.org,
|
|
||||||
and I'll keep a list of 'em here.
|
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<ul id="nav">
|
|
||||||
<li><a href="/~neale/src/" title="Free Software">Software</a></li>
|
|
||||||
<li><a href="/~neale/toys/" title="Various fun things">Toys</a></li>
|
|
||||||
<li><a href="/~neale/poems/" title="I won't quit my day job">Poems</a></li>
|
|
||||||
<li><a href="/~neale/papers/" title="Various writings">Papers</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<address>
|
|
||||||
Neale Pickett <<a href="mailto: neale@woozle.org">neale@woozle.org</a>>
|
|
||||||
</address>
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
<h1>Neale's git projects</h1>
|
|
Loading…
Reference in New Issue