rules.c revision 1
1N/A * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 1N/A * Use is subject to license terms. 1N/A#
pragma ident "%Z%%M% %I% %E% SMI" 1N/A * This program is copyright Alec Muffett 1993. The author disclaims all 1N/A * responsibility or liability with respect to it's usage or its effect 1N/A * upon hardware or computer systems, and maintains copyright as set out 1N/A * in the "LICENCE" document which accompanies distributions of Crack v4.0 1N/A#
define RULE_CLASS '?' /* class rule? socialist ethic in cracker? */ 1N/A /* bench -> benches */ 1N/A /* alloy -> alloys */ 1N/A /* gully -> gullies */ 1N/A /* bias -> biases */ 1N/A register char new)
/* returns pointer to a swapped about copy */ 1N/A/* returns pointer to a purged copy */ 1N/A/* -------- CHARACTER CLASSES START HERE -------- */ 1N/A * this function takes two inputs, a class identifier and a character, and 1N/A * returns non-null if the given character is a member of the class, based 1N/A * upon restrictions set out below 1N/A case '?':
/* ?? -> ? */ 1N/A case 'v':
/* vowels */ 1N/A case 'c':
/* consonants */ 1N/A case 'w':
/* whitespace */ 1N/A case 'p':
/* punctuation */ 1N/A case 's':
/* symbols */ 1N/A /* LOGICAL GROUPINGS */ 1N/A case 'l':
/* lowercase */ 1N/A case 'u':
/* uppercase */ 1N/A case 'a':
/* alphabetic */ 1N/A case 'x':
/* alphanumeric */ 1N/A case 'd':
/* digits */ 1N/A/* returns pointer to a swapped about copy */ 1N/A/* returns pointer to a purged copy */ 1N/A/* -------- BACK TO NORMALITY -------- */ 1N/A/* returns a pointer to a controlled Mangle */ 1N/A /* cant use strncpy()-no trailing NUL */ 1N/A /* THE FOLLOWING RULES REQUIRE CLASS MATCHING */ 1N/A * alternative use for a boomerang, number 1: a standard throwing 1N/A * boomerang is an ideal thing to use to tuck the sheets under 1N/A * the mattress when making your bed. The streamlined shape of 1N/A * the boomerang allows it to slip easily 'twixt mattress and 1N/A * bedframe, and it's curve makes it very easy to hook sheets 1N/A if (!
area[0]) {
/* have we deweted de poor widdle fing away? */ 1N/A * PMatch(register char *control, register char *string) 1N/A * while (*string && *control) { 1N/A * if (!MatchClass(*control, *string)) { 1N/A * if (*string || *control) {