Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/mty-makai/mty.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 202 by notanpe, Thu Jul 31 14:01:57 2008 UTC revision 203 by notanpe, Sat Aug 2 03:40:09 2008 UTC
# Line 24  Line 24 
24  /* MAKAI start */  /* MAKAI start */
25  #include <unistd.h>  #include <unistd.h>
26  #include <libgen.h>  #include <libgen.h>
27    #include <limits.h>
28  /* MAKAI end */  /* MAKAI end */
29    
30  #if defined(WIN32)  #if defined(WIN32)
# Line 67  unsigned char  umeStr[10]; Line 68  unsigned char  umeStr[10];
68  int     umeLen;  int     umeLen;
69    
70  FILE    *tfp;  FILE    *tfp;
71    
72    unsigned int    seed;
73    int     verbose;
74  /* MAKAI end */  /* MAKAI end */
75    
76  /* CRYPT64 記述子 */  /* CRYPT64 記述子 */
# Line 106  void Line 110  void
110  comment( str )  comment( str )
111  char    *str;  char    *str;
112  {  {
 /*  
 [0] 全数  
 [1] 二構  
 [2] 飛石  
 [3] 回文  
 [4] 山彦  
 [5] 双連  
 [6] 最長  
 [7] 最短  
 [8] ぼる  
 [a] 増大  
 [b] 減少  
 [c] 拡飛  
 [d] 飛連  
 [e] 八雲  
 [f] 浪漫  
 [g] 怒連  
 */  
113    if ( strlen( str ) >= 4 ) {    if ( strlen( str ) >= 4 ) {
114     if ( str[1] == '[' && str[3] == ']' ) {     if ( str[1] == '[' && str[3] == ']' ) {
115      switch ( str[2] ) {      switch ( str[2] ) {
116       case '0':       case '0': special |= ST_ALLN; break;
117        special |= ST_ALLN;       case '1': special |= ST_NIKO; break;
118        printf( "全数\n" );       case '8': special |= ST_BUOO; break;
       break;  
      case '1':  
       special |= ST_NIKO;  
       printf( "二構\n" );  
       break;  
      case '8':  
       special |= ST_BUOO;  
       printf( "ぶお\n" );  
       break;  
119      }      }
120     }     }
121    }    }
# Line 1369  char   *path; Line 1346  char   *path;
1346      break;      break;
1347     }     }
1348    }    }
1349    printf( "%s [-t num|-m mask] [\"str\"]\n", myName );    printf( "%s [-t num|-m mask] [-s num] [-v] [\"str\"]\n", myName );
1350    printf( " -t num : 検索スレッド数 ( %d ≦ num ≦ %d )\n",    printf( " -t num : 検索スレッド数 ( %d ≦ num ≦ %d )\n",
1351             MIN_THREAD, MAX_THREAD );             MIN_THREAD, MAX_THREAD );
1352    printf( " -m mask : 実行する CPU を指定するマスク ( 1 ビット ≦ mask のビット数 ≦ %d ビット )\n",    printf( " -m mask : 実行する CPU を指定するマスク ( 1 ビット ≦ mask のビット数 ≦ %d ビット )\n",
1353            MAX_THREAD );            MAX_THREAD );
1354    printf( " 【-t と -m は排他】\n" );    printf( " 【-t と -m は排他】\n" );
1355      printf( " -s num : 乱数の種 ( 1 ≦ num ≦ %u )\n", UINT_MAX );
1356      printf( " -v : 冗長メッセージ\n" );
1357    printf( " str : 先頭に埋め込む文字列 ( %d ≦ str のバイト数 ≦ %d )\n",    printf( " str : 先頭に埋め込む文字列 ( %d ≦ str のバイト数 ≦ %d )\n",
1358             MIN_UME, MAX_UME );             MIN_UME, MAX_UME );
1359  }  }
# Line 1488  main(int argc, char *argv[]) Line 1467  main(int argc, char *argv[])
1467    
1468    nThread = 0;    nThread = 0;
1469    pmask = 0;    pmask = 0;
1470    while ( (optChar = getopt(argc, argv, "t:m:h")) != EOF ) {    seed = 0;
1471      verbose = 0;
1472      while ( (optChar = getopt(argc, argv, "t:m:s:vh")) != EOF ) {
1473     switch ( optChar ) {     switch ( optChar ) {
1474      case 't':      case 't':
1475       pmask = 0;       pmask = 0;
# Line 1524  main(int argc, char *argv[]) Line 1505  main(int argc, char *argv[])
1505        exit( 1 );        exit( 1 );
1506       }       }
1507       break;       break;
1508        case 's':
1509         if ( optarg[0] == '-' ) {
1510          usage( argv[0] );
1511          exit( 1 );
1512         }
1513         seed = (unsigned int)atoi( optarg );
1514         if ( seed < 1 || seed > UINT_MAX ) {
1515          usage( argv[0] );
1516          exit( 1 );
1517         }
1518         break;
1519        case 'v':
1520         verbose = 1;
1521         break;
1522      case 'h':      case 'h':
1523       usage( argv[0] );       usage( argv[0] );
1524       exit( 0 );       exit( 0 );
# Line 1548  main(int argc, char *argv[]) Line 1543  main(int argc, char *argv[])
1543      usage( argv[0] );      usage( argv[0] );
1544      exit( 1 );      exit( 1 );
1545    }    }
1546    
1547      if ( verbose ) {
1548       printf( "乱数の種 = %u\n", seed );
1549      }
1550  }  }
1551  /* MAKAI end */  /* MAKAI end */
1552    
# Line 1562  main(int argc, char *argv[]) Line 1561  main(int argc, char *argv[])
1561    /* タゲ読み込み */    /* タゲ読み込み */
1562    root_expr = expr_parse("target.txt");    root_expr = expr_parse("target.txt");
1563    
1564    /* MAKAI start */
1565    /* here */
1566      if ( verbose ) {
1567       printf( "特殊検索オプション : " );
1568       if ( special & ST_ALLN ) {
1569        printf( "全数 " );
1570       }
1571       if ( special & ST_NIKO ) {
1572        printf( "二構 " );
1573       }
1574       if ( special & ST_BUOO ) {
1575        printf( "ぶお " );
1576       }
1577       if ( special ) {
1578        printf( "オン!\n" );
1579       } else {
1580        printf( "オールオフ!\n" );
1581       }
1582      }
1583    /* MAKAI end */
1584    
1585    /* コードを生成・展開    /* コードを生成・展開
1586           起動予定スレッド数に応じて           起動予定スレッド数に応じて
1587           生成するコードを変える */           生成するコードを変える */
# Line 1582  main(int argc, char *argv[]) Line 1602  main(int argc, char *argv[])
1602       pmask >>= 1;       pmask >>= 1;
1603      }      }
1604      printf( "を使用します。\n" );      printf( "を使用します。\n" );
1605    /* だがしかし、Win32 のコードしかここにはない。w */
1606  #ifdef WIN32  #ifdef WIN32
1607      SetProcessAffinityMask( GetCurrentProcess(), proc_mask );      SetProcessAffinityMask( GetCurrentProcess(), proc_mask );
1608  #endif /* WIN32 */  #endif /* WIN32 */
# Line 1628  main(int argc, char *argv[]) Line 1649  main(int argc, char *argv[])
1649    
1650    /* キーの初期化 */    /* キーの初期化 */
1651  /* MAKAI start */  /* MAKAI start */
1652    srand(time(NULL));    if ( seed == 0 ) {
1653       srand( time( NULL ) );
1654      } else {
1655       srand( seed );
1656      }
1657  /* MAKAI end */  /* MAKAI end */
1658    key_init(key);    key_init(key);
1659    set_salt(code, crypt64_descs[0], key);    set_salt(code, crypt64_descs[0], key);

Legend:
Removed from v.202  
changed lines
  Added in v.203

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26