namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: integrating NMZ.i and NMZ.w



Rei FURUKAWA <furukawa@xxxxxxxxxxxx> wrote:

>ダーッと書いていたら、基本機能はそれらしく動くようになりました。

src/gcnmz.in 新しいファイルに置き換えて commit しておきまし
た。古川さんもcommitter になって、 src/gcnmz.in をメインテナ
ンスしてもらえます?


>まだ真剣にテストしていないので、大穴が開いている可能性もありますが…

動作確認はまだしていませんが、

  sub readw{
      my $fh = shift;
      my $ret = '';
      my $c;
  
      while (read($fh, $c, 1)){
          $ret .= $c;
          last unless 0x80 & ord $c;
      }
      unpack('w', $ret);
  }

この関数、いいですね。mknmzで使わせてもらいます。私が書いた

  sub get_unpackw ($) {
      my ($fh) = @_;
  
      my $val = 0;
      while (1) {
  	my $tmp = getc($fh);
          util::cdie("fatal error occurred in get_unpackw\n") 
  	    unless defined $tmp;
  	$tmp = ord($tmp);
  
  	if ($tmp < 128) {
  	    $val += $tmp;
  	    return $val;
  	} else {
  	    $tmp &= 0x7f;
  	    $val += $tmp;
  	    $val <<= 7;
  	}
      }
  }

よりずっといいです。:-)

-- Satoru Takabayashi