remote forking: use the original http/https url in description
[phorkie.git] / src / phorkie / File.php
index 188c255918f8f0cbb44b983b4a94ac923f7ce274..7f5b5b407df44747c9d67f6f34f6f1eff7b025e9 100644 (file)
@@ -80,11 +80,11 @@ class File
 
         if (isset($GLOBALS['phorkie']['languages'][$ext]['renderer'])) {
             $class = $GLOBALS['phorkie']['languages'][$ext]['renderer'];
 
         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'];
         } 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';
             }
         }
                 $class = '\\phorkie\\Renderer_Image';
             }
         }
@@ -118,6 +118,9 @@ class File
         throw new Exception('Unknown type');
     }
 
         throw new Exception('Unknown type');
     }
 
+    /**
+     * @return string Mime type of file
+     */
     public function getMimeType()
     {
         $ext = $this->getExt();
     public function getMimeType()
     {
         $ext = $this->getExt();
@@ -148,13 +151,21 @@ class File
     public function isText()
     {
         $ext = $this->getExt();
     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'];
         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';
     }
 }
 
     }
 }
 
-?>
\ No newline at end of file
+?>