- strerr_die4sys(111,FATAL,"unable to switch to ",dir,": ");
-
- argv += 2;
- while (addr = *argv++)
- switch(subscribe(addr,1)) {
- case -1:
- strerr_die1(111,FATAL,&subscribe_err);
- case -2:
- strerr_warn4(WARNING,"cannot subscribe ",addr,": ",&subscribe_err);
- break;
- case 1:
- log("+manual",addr);
+ strerr_die4sys(111,FATAL,ERR_SWITCH,dir,": ");
+
+ if (forcehash == 0) forcehash = (int) u;
+
+ if (argv[optind]) {
+ if (flagname) {
+ /* allow repeats and last addr doesn't need comment */
+ while ((addr = argv[optind++])) {
+ (void) subscribe(dir,addr,1,argv[optind],"+manual",
+ flagmysql,forcehash,(char *) 0,FATAL);
+ if (!argv[optind++]) break;
+ }
+ } else {
+
+ while ((addr = argv[optind++]))
+ (void) subscribe(dir,addr,1,"","+manual",flagmysql,
+ forcehash,(char *) 0,FATAL);
+ }
+ } else { /* stdin */
+ for (;;) {
+ if (getln(&ssin,&line,&match,'\n') == -1)
+ strerr_die2sys(111,FATAL,ERR_READ_INPUT);
+ if (!match) break;
+ if (line.len == 1 || *line.s == '#') continue;
+ line.s[line.len - 1] = '\0';
+ comment = (char *) 0;
+ if (flagname) {
+ cp = line.s;
+ while ((ch = *cp)) {
+ if (ch == '\\') {
+ if (!*(++cp)) break;
+ } else if (ch == ' ' || ch == '\t' || ch == ',') break;
+ cp++;
+ }
+ if (ch) {
+ *cp = '\0';
+ comment = cp + 1;
+ }
+ }
+ (void) subscribe(dir,line.s,1,comment,"+manual",flagmysql,
+ forcehash,(char *) 0,FATAL);