public function getContent()
{
if ($this->repo->hash) {
- return $this->repo->getVc()->getCommand('show')
+ //quick hack until https://pear.php.net/bugs/bug.php?id=19385 is fixed
+ $cmd = new GitCommandBinary($this->repo->getVc());
+ $cmd->setSubCommand('show');
+ return //$this->repo->getVc()->getCommand('show')
+ $cmd
->addArgument($this->repo->hash . ':' . $this->path)
->execute();
}
if (isset($GLOBALS['phorkie']['languages'][$ext]['renderer'])) {
$class = $GLOBALS['phorkie']['languages'][$ext]['renderer'];
+ } else if ($this->isText()) {
+ $class = '\\phorkie\\Renderer_Geshi';
} else if (isset($GLOBALS['phorkie']['languages'][$ext]['mime'])) {
$type = $GLOBALS['phorkie']['languages'][$ext]['mime'];
- if (substr($type, 0, 5) == 'text/') {
- $class = '\\phorkie\\Renderer_Geshi';
- } else if (substr($type, 0, 6) == 'image/') {
+ if (substr($type, 0, 6) == 'image/') {
$class = '\\phorkie\\Renderer_Image';
}
}
public function isText()
{
$ext = $this->getExt();
+ if ($ext == '') {
+ //no file extension? then consider the size
+ $size = filesize($this->getFullPath());
+ //files <= 4kiB are considered to be text
+ return $size <= 4096;
+ }
+
if (!isset($GLOBALS['phorkie']['languages'][$ext]['mime'])) {
return false;
}
$type = $GLOBALS['phorkie']['languages'][$ext]['mime'];
- return substr($type, 0, 5) === 'text/';
+ return substr($type, 0, 5) === 'text/'
+ || $type == 'application/javascript';
}
}