+ } else if ((!strcmp(p, "-L") || !strcmp(p, "-R")) && argc > 1) {
+ char *fwd, *ptr, *q;
+ int i=0;
+ --argc, fwd = *++argv;
+ ptr = extra_portfwd;
+ /* if multiple forwards, find end of list */
+ if (ptr[0]=='R' || ptr[0]=='L') {
+ for (i = 0; i < sizeof(extra_portfwd) - 2; i++)
+ if (ptr[i]=='\000' && ptr[i+1]=='\000')
+ break;
+ ptr = ptr + i + 1; /* point to next forward slot */
+ }
+ ptr[0] = p[1]; /* insert a 'L' or 'R' at the start */
+ strncpy(ptr+1, fwd, sizeof(extra_portfwd) - i);
+ q = strchr(ptr, ':');
+ if (q) *q = '\t'; /* replace first : with \t */
+ ptr[strlen(ptr)+1] = '\000'; /* append two '\000' */
+ extra_portfwd[sizeof(extra_portfwd) - 1] = '\0';