Add -H
parent
a91f975e9b
commit
0d93e66a68
|
@ -1,4 +1,4 @@
|
|||
.Dd February 9, 2020
|
||||
.Dd February 10, 2020
|
||||
.Dt CATGIRL 1
|
||||
.Os
|
||||
.
|
||||
|
@ -10,6 +10,7 @@
|
|||
.Nm
|
||||
.Op Fl ev
|
||||
.Op Fl C Ar copy
|
||||
.Op Fl H Ar hash
|
||||
.Op Fl O Ar open
|
||||
.Op Fl a Ar auth
|
||||
.Op Fl c Ar cert
|
||||
|
@ -57,6 +58,10 @@ The default is the first available of
|
|||
.Xr xclip 1 ,
|
||||
.Xr xsel 1 .
|
||||
.
|
||||
.It Fl H Ar hash , Cm hash = Ar hash
|
||||
Set the initial value of
|
||||
the nick color hash function.
|
||||
.
|
||||
.It Fl O Ar util , Cm open = Ar util
|
||||
Set the utility used by
|
||||
.Ic /open .
|
||||
|
|
7
chat.c
7
chat.c
|
@ -21,6 +21,7 @@
|
|||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -46,6 +47,8 @@ size_t idNext = Network + 1;
|
|||
|
||||
struct Self self = { .color = Default };
|
||||
|
||||
uint32_t hashInit;
|
||||
|
||||
int procPipe[2] = { -1, -1 };
|
||||
|
||||
static void pipeRead(void) {
|
||||
|
@ -81,10 +84,11 @@ int main(int argc, char *argv[]) {
|
|||
const char *user = NULL;
|
||||
const char *real = NULL;
|
||||
|
||||
const char *Opts = "!C:O:a:c:eh:j:k:n:p:r:u:vw:";
|
||||
const char *Opts = "!C:H:O:a:c:eh:j:k:n:p:r:u:vw:";
|
||||
const struct option LongOpts[] = {
|
||||
{ "insecure", no_argument, NULL, '!' },
|
||||
{ "copy", required_argument, NULL, 'C' },
|
||||
{ "hash", required_argument, NULL, 'H' },
|
||||
{ "open", required_argument, NULL, 'O' },
|
||||
{ "sasl-plain", required_argument, NULL, 'a' },
|
||||
{ "cert", required_argument, NULL, 'c' },
|
||||
|
@ -106,6 +110,7 @@ int main(int argc, char *argv[]) {
|
|||
switch (opt) {
|
||||
break; case '!': insecure = true;
|
||||
break; case 'C': urlCopyUtil = optarg;
|
||||
break; case 'H': hashInit = strtoul(optarg, NULL, 0);
|
||||
break; case 'O': urlOpenUtil = optarg;
|
||||
break; case 'a': sasl = true; self.plain = optarg;
|
||||
break; case 'c': cert = optarg;
|
||||
|
|
3
chat.h
3
chat.h
|
@ -190,9 +190,10 @@ int getopt_config(
|
|||
const char *optstring, const struct option *longopts, int *longindex
|
||||
);
|
||||
|
||||
extern uint32_t hashInit;
|
||||
static inline enum Color hash(const char *str) {
|
||||
if (*str == '~') str++;
|
||||
uint32_t hash = 0;
|
||||
uint32_t hash = hashInit;
|
||||
for (; *str; ++str) {
|
||||
hash = (hash << 5) | (hash >> 27);
|
||||
hash ^= *str;
|
||||
|
|
Loading…
Reference in New Issue