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 222 by notanpe, Sat May 9 13:17:28 2009 UTC revision 223 by notanpe, Fri May 15 09:22:32 2009 UTC
# Line 110  static Line 110  static
110  struct  struct
111  {  {
112    unsigned short map[256];    unsigned short map[256];
113  } kcls[8 + 8];  } kcls[8 + 8]; /* atode なぜ 8 + 8 ? */
114    
115  /* 拡張鍵クラス */  /* 拡張鍵クラス */
116  #define KCLS_DT0 64  #define KCLS_DT0 64
# Line 217  key_make_map(uint8_t *key, int n) Line 217  key_make_map(uint8_t *key, int n)
217          }          }
218    
219    if (n < 6)    if (n < 6)
220    /* MAKAI start */
221    #ifdef ALKEY
222            kcls[n + 1].map[0x00] = 0;
223    #else /* ALLKEY */
224          kcls[n + 1].map[0x00] = kcls[n + 1].map[0x80] = 0;          kcls[n + 1].map[0x00] = kcls[n + 1].map[0x80] = 0;
225    #endif /* ALLKEY */
226    /* MAKAI end */
227    if (n == 6)    if (n == 6)
228          kcls[7].map[0x00] |= KCLS_AN;          kcls[7].map[0x00] |= KCLS_AN;
229  }  }
# Line 242  key_set(int n, unsigned ch) Line 248  key_set(int n, unsigned ch)
248                  }                  }
249          }          }
250  #endif  #endif
251    
252    /* MAKAI start */
253    #ifdef NOMORE
254    /* if ( ch != 0 ) printf( "ch = %d -> ", ch ); */
255      ch %= 256;
256    /* if ( ch != 0 ) printf( "%d\n", ch ); */
257    #endif /* NOMORE */
258    /* MAKAI end */
259    
260    for (i = 0; i < 256; i++)    for (i = 0; i < 256; i++)
261          {          {
262            if (kcls[n].map[i])            if (kcls[n].map[i])
# Line 250  key_set(int n, unsigned ch) Line 265  key_set(int n, unsigned ch)
265                          return i;                          return i;
266                    cnt++;                    cnt++;
267                  }                  }
268    /* MAKAI start */
269    #ifdef ALLKEY
270              if (n != 1 && n != 2 && i >= 128)
271                    break;
272    #else /* ALLKEY */
273            if (n != 1 && n != 2 && i >= 127)            if (n != 1 && n != 2 && i >= 127)
274                  break;                  break;
275    #endif /* ALLKEY */
276    /* MAKAI end */
277          }          }
278    /* 見つからなかったのでもいっぺん */    /* 見つからなかったのでもいっぺん */
279    assert(cnt > 0);    assert(cnt > 0);
# Line 359  key_reset(uint8_t *key, int n) Line 381  key_reset(uint8_t *key, int n)
381          key[n] = key_set(n, 0);          key[n] = key_set(n, 0);
382    else {    else {
383     if ( umeStr[0] == '\0' ) {     if ( umeStr[0] == '\0' ) {
384    #ifdef ALLKEY
385        key[n] = key_set(n, rand()); /* atode +1 は要るのか ? */
386    #else /* ALLKEY */
387      key[n] = key_set(n, rand());      key[n] = key_set(n, rand());
388    #endif /* ALLKEY */
389     } else {     } else {
390      key[n] = umeStr[n];      key[n] = umeStr[n];
391     }     }
# Line 370  key_reset(uint8_t *key, int n) Line 396  key_reset(uint8_t *key, int n)
396    printf("key[%d]=%02X ncls=%04X\n", n, key[n], kcls[n].map[key[n]]);    printf("key[%d]=%02X ncls=%04X\n", n, key[n], kcls[n].map[key[n]]);
397  #endif  #endif
398    
399    /* MAKAI start */
400    #ifndef ALLKEY
401    /* セットされた文字を元に、次キャラの文字クラスを決める */    /* セットされた文字を元に、次キャラの文字クラスを決める */
402    key_make_map(key, n);    key_make_map(key, n);
403    #endif /* not ALLKEY */
404    /* MAKAI end */
405    
406    return key_reset(key, n + 1);    return key_reset(key, n + 1);
407  }  }
# Line 434  key_inc(uint8_t *key, int n) Line 464  key_inc(uint8_t *key, int n)
464    
465            if (kcls[n].map[key[n]])            if (kcls[n].map[key[n]])
466                  {                  {
467    /* MAKAI start */
468    #ifndef ALLKEY
469                    key_make_map(key, n);                    key_make_map(key, n);
470    #endif /* not ALLKEY */
471    /* MAKAI end */
472                    key_reset(key, n + 1);                    key_reset(key, n + 1);
473                    return 1;                    return 1;
474                  }                  }
# Line 464  key_init(uint8_t *key) Line 498  key_init(uint8_t *key)
498     }     }
499    }    }
500    
501    /* MAKAI start */
502    #ifdef ALLKEY
503    {
504      int   idx;
505      kcls[0].map[0] = 0;
506      for ( idx = 1; idx < 8; idx++ ) {
507       for ( i = 0; i < 256; i++ ) {
508        unsigned bm = 0;
509    
510        for ( j = 0; j < 256; j++ ) {
511         bm |= cp932[256 * i + j];
512        }
513        kcls[idx].map[i] = bm & (KCLS_AN | KCLS_KA | KCLS_K1);
514        if ( i > 128 ) {
515         kcls[idx].map[i - 128] |= kcls[idx].map[i];
516        }
517       }
518      }
519    }
520    #endif /* ALLKEY */
521    /* MAKAI end */
522    
523    key_reset(key, 0);    key_reset(key, 0);
524  }  }
525    
# Line 613  log_printf(FILE *ofp, char const *fmt, . Line 669  log_printf(FILE *ofp, char const *fmt, .
669    
670    r = vfprintf(ofp, fmt, ap);    r = vfprintf(ofp, fmt, ap);
671    va_end(ap);    va_end(ap);
672    #ifdef HITEXIT
673      exit( 0 );
674    #endif /* HITEXIT */
675    if (r > 0)    if (r > 0)
676          return r;          return r;
677    perror("log_printf");    perror("log_printf");
# Line 1546  main(int argc, char *argv[]) Line 1605  main(int argc, char *argv[])
1605  */  */
1606    int   i;    int   i;
1607    
1608    for ( i = 0; i < 2000; i++ ) {    for ( i = 0; i < 100000; i++ ) {
1609     printf( "%02x %02x %02x %02x %02x %02x %02x %02x\n",     printf( "%02x %02x %02x %02x %02x %02x %02x %02x\n",
1610             key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7] );             key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7] );
1611     key_init(key);     key_init(key);
# Line 1945  main(int argc, char *argv[]) Line 2004  main(int argc, char *argv[])
2004        buf[8] = ( buf[8] & - ( 1 << N_STRIDE ) & 0x7F ) + ALU_BITS * kk + k;        buf[8] = ( buf[8] & - ( 1 << N_STRIDE ) & 0x7F ) + ALU_BITS * kk + k;
2005        if ( cr ) fprintf( stderr, "\n" );        if ( cr ) fprintf( stderr, "\n" );
2006        cr = 0;        cr = 0;
2007    /* MAKAI start */
2008    #ifdef ALLKEY
2009          strcpy( buf2, "全空間です" );
2010    #else /* ALLKEY */
2011        if ( translate( buf+1, 0, 1 ) ) {        if ( translate( buf+1, 0, 1 ) ) {
2012         strcpy( buf2, buf );         strcpy( buf2, buf );
2013        } else {        } else {
2014         strcpy( buf2, "残念でした" );         strcpy( buf2, "残念でした" );
2015        }        }
2016    #endif /* ALLKEY */
2017    /* MAKAI end */
2018        log_printf( rfp, "◆%s %s"        log_printf( rfp, "◆%s %s"
2019                    "\t%04d/%02d/%02d %02d:%02d:%02d.%03d"                    "\t%04d/%02d/%02d %02d:%02d:%02d.%03d"
2020                    "\t(%02X %02X %02X %02X %02X %02X %02X %02X/%02X) %s\n",                    "\t(%02X %02X %02X %02X %02X %02X %02X %02X/%02X) %s\n",
# Line 1976  main(int argc, char *argv[]) Line 2041  main(int argc, char *argv[])
2041        buf[8] = ( buf[8] & - ( 1 << N_STRIDE ) & 0x7F ) + ALU_BITS * kk + k;        buf[8] = ( buf[8] & - ( 1 << N_STRIDE ) & 0x7F ) + ALU_BITS * kk + k;
2042        if ( cr ) fprintf( stderr, "\n" );        if ( cr ) fprintf( stderr, "\n" );
2043        cr = 0;        cr = 0;
2044    /* MAKAI start */
2045    #ifdef ALLKEY
2046          strcpy( buf2, "全空間です" );
2047    #else /* ALLKEY */
2048        if ( translate( buf+1, 0, 1 ) ) {        if ( translate( buf+1, 0, 1 ) ) {
2049         strcpy( buf2, buf );         strcpy( buf2, buf );
2050        } else {        } else {
2051         strcpy( buf2, "残念でした" );         strcpy( buf2, "残念でした" );
2052        }        }
2053    #endif /* ALLKEY */
2054    /* MAKAI end */
2055        log_printf( lfp, "◆%s %s"        log_printf( lfp, "◆%s %s"
2056                    "\t%04d/%02d/%02d %02d:%02d:%02d.%03d"                    "\t%04d/%02d/%02d %02d:%02d:%02d.%03d"
2057                    "\t(%02X %02X %02X %02X %02X %02X %02X %02X/%02X) %s\n",                    "\t(%02X %02X %02X %02X %02X %02X %02X %02X/%02X) %s\n",
# Line 2062  main(int argc, char *argv[]) Line 2133  main(int argc, char *argv[])
2133                            if (cr)                            if (cr)
2134                                  fprintf(stderr, "\n");                                  fprintf(stderr, "\n");
2135                            cr = 0;                            cr = 0;
2136    /* MAKAI start */
2137    #ifdef ALLKEY
2138                  strcpy( buf2, "全空間です" );
2139    #else /* ALLKEY */
2140                            if (translate(buf, 0, 1)) {                            if (translate(buf, 0, 1)) {
2141                             buf2[0] = '#';                             buf2[0] = '#';
2142                             strcpy( buf2+1, buf );                             strcpy( buf2+1, buf );
2143                            } else {                            } else {
2144                 strcpy( buf2, "残念でした" );                 strcpy( buf2, "残念でした" );
2145                }                }
2146    #endif /* ALLKEY */
2147    /* MAKAI end */
2148                            log_printf(ofp, "◆%s %s"                            log_printf(ofp, "◆%s %s"
2149                                                   "\t%04d/%02d/%02d %02d:%02d:%02d.%03d"                                                   "\t%04d/%02d/%02d %02d:%02d:%02d.%03d"
2150                                                   "\t(%02X %02X %02X %02X %02X %02X %02X %02X/%02X) %02d\n",                                                   "\t(%02X %02X %02X %02X %02X %02X %02X %02X/%02X) %02d\n",

Legend:
Removed from v.222  
changed lines
  Added in v.223

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