[nos-bbs] STRICTCALL LOGIN
Barry Siegfried k2mf at nnj.k2mf.ampr.orgFri Oct 14 11:32:14 UTC 2005
- Previous message: [nos-bbs] JNOS vs. TNOS
- Next message: [nos-bbs] STRICTCALL LOGIN
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[maiko at pcs.mb.ca wrote]: > > > in JNOS there is no such a function, how difficult > > > would be to add this in future versions. > > Just take the code from TNOS and put it in. If I'm not > mistaken, TNOS was a variant of JNOS itself back when. Here is a relatively decent callsign checking subfunction which I have been using in my software for over 10 years. It seems to work ok. /* Universal callsign validation subroutine. It is assumed that a string * containing only alphanumeric characters is being passed to it. * - 08/94 K2MF */ int callcheck (char *str) { int i, length; int8 digits = 0, firstdigit = 0, seconddigit = 0; int8 thirddigit = 0, fourthdigit = 0, fifthdigit = 0; length = strlen(str); if(length < 3 || length > 6) /* Callsign less than 3 or greater than 6 characters */ return -1; /* invalid */ for(i = 0; i < length; i++) { if(!isalnum(str[i])) /* Character is not alphanumeric */ return -1; /* invalid */ if(isdigit(str[i])) { /* Got a digit */ if(++digits > 2) /* More than 2 digits in callsign */ return -1; /* invalid */ switch(i) { case 0: /* 1st character */ if(length == 3) /* Callsign only 3 * characters */ return -1; /* invalid */ firstdigit++; break; case 1: /* 2nd character */ if(firstdigit || length == 3) /* 1st character also a * digit or callsign only * 3 characters */ return -1; /* invalid */ seconddigit++; break; case 2: if(seconddigit && length == 3) /* 2nd character also a * digit and callsign only * 3 characters */ return -1; /* invalid */ thirddigit++; break; case 3: /* 4th character */ if(firstdigit || length == 4) /* 1st character also a * digit or callsign only * 4 characters */ return -1; /* invalid */ fourthdigit++; break; case 4: /* 5th character */ if(firstdigit || length == 5) /* 1st character also a * digit or callsign only * 5 characters */ return -1; /* invalid */ fifthdigit++; break; case 5: /* Digit in 6th character */ return -1; /* invalid */ } } } if(!thirddigit && (firstdigit || !seconddigit)) /* The 3rd character is not a digit and the 1st character * is a digit or the 2nd character is not a digit */ return -1; /* invalid */ /* String is a valid callsign (it passed all the tests!) */ return 0; } 73, de Barry, K2MF >> o <|> Barry Siegfried +---------/-\---------------------------+ | Internet | bgs at mfnos.net | | HomePage | http://www.mfnos.net/~bgs | +----------+----------------------------+ | Amprnet | k2mf at nnj.k2mf.ampr.org | | PBBS | k2mf at k2ge.#cnj.nj.usa.noam | +----------+----------------------------+
- Previous message: [nos-bbs] JNOS vs. TNOS
- Next message: [nos-bbs] STRICTCALL LOGIN
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the nos-bbs mailing list
