original_string: protected function process_file_block($block, tgz_extractor_handler $handler = null) {
          // Write block into buffer.
          $blocksize = tgz_packer::TAR_BLOCK_SIZE;
          if ($this->currentfileprocessed + tgz_packer::TAR_BLOCK_SIZE > $this->currentfilesize) {
              // Partial block at end of file.
              $blocksize = $this->currentfilesize - $this->currentfileprocessed;
              $this->filebuffer .= substr($block, 0, $blocksize);
          } else {
              // Full-length block.
              $this->filebuffer .= $block;
          }
          $this->filebufferlength += $blocksize;
          $this->currentfileprocessed += $blocksize;
  
          // Write block to file if necessary.
          $eof = $this->currentfileprocessed == $this->currentfilesize;
          if ($this->filebufferlength >= self::WRITE_BLOCK_SIZE || $eof) {
              // Except when skipping the file, write it out.
              if ($this->currentfile !== true) {
                  if (!fwrite($this->currentfp, $this->filebuffer)) {
                      throw new moodle_exception('errorprocessingarchive', '', '', null,
                              'Failed to write buffer to output file: ' . $this->currentfile);
                  }
              }
              $this->filebuffer = '';
              $this->filebufferlength = 0;
          }
  
          // If file is finished, close it.
          if ($eof) {
              $this->close_current_file($handler);
          }
      }
code: protected function process_file_block($block, tgz_extractor_handler $handler = null) {
          // Write block into buffer.
          $blocksize = tgz_packer::TAR_BLOCK_SIZE;
          if ($this->currentfileprocessed + tgz_packer::TAR_BLOCK_SIZE > $this->currentfilesize) {
              // Partial block at end of file.
              $blocksize = $this->currentfilesize - $this->currentfileprocessed;
              $this->filebuffer .= substr($block, 0, $blocksize);
          } else {
              // Full-length block.
              $this->filebuffer .= $block;
          }
          $this->filebufferlength += $blocksize;
          $this->currentfileprocessed += $blocksize;
  
          // Write block to file if necessary.
          $eof = $this->currentfileprocessed == $this->currentfilesize;
          if ($this->filebufferlength >= self::WRITE_BLOCK_SIZE || $eof) {
              // Except when skipping the file, write it out.
              if ($this->currentfile !== true) {
                  if (!fwrite($this->currentfp, $this->filebuffer)) {
                      throw new moodle_exception('errorprocessingarchive', '', '', null,
                              'Failed to write buffer to output file: ' . $this->currentfile);
                  }
              }
              $this->filebuffer = '';
              $this->filebufferlength = 0;
          }
  
          // If file is finished, close it.
          if ($eof) {
              $this->close_current_file($handler);
          }
      }
code_tokens: protected function process_file_block ( $ block , tgz_extractor_handler $ handler = null ) { // Write block into buffer. $ blocksize = tgz_packer :: TAR_BLOCK_SIZE ; if ( $ this -> currentfileprocessed + tgz_packer :: TAR_BLOCK_SIZE > $ this -> currentfilesize ) { // Partial block at end of file. $ blocksize = $ this -> currentfilesize - $ this -> currentfileprocessed ; $ this -> filebuffer .= substr ( $ block , 0 , $ blocksize ) ; } else { // Full-length block. $ this -> filebuffer .= $ block ; } $ this -> filebufferlength += $ blocksize ; $ this -> currentfileprocessed += $ blocksize ; // Write block to file if necessary. $ eof = $ this -> currentfileprocessed == $ this -> currentfilesize ; if ( $ this -> filebufferlength >= self :: WRITE_BLOCK_SIZE || $ eof ) { // Except when skipping the file, write it out. if ( $ this -> currentfile !== true ) { if ( ! fwrite ( $ this -> currentfp , $ this -> filebuffer ) ) { throw new moodle_exception ( 'errorprocessingarchive' , '' , '' , null , 'Failed to write buffer to output file: ' . $ this -> currentfile ) ; } } $ this -> filebuffer = '' ; $ this -> filebufferlength = 0 ; } // If file is finished, close it. if ( $ eof ) { $ this -> close_current_file ( $ handler ) ; } }
docstring: Processes one 512-byte block of an existing file.
  
  @param string $block Data block
  @param tgz_extractor_handler $handler Will be called for extracted files
docstring_tokens: Processes one 512 - byte block of an existing file .