mikuli.cz

:)
git clone https://git.sr.ht/~ashymad/mikuli.cz
Log | Files | Refs

commit 69c5c0499a7b8792b056732b7fe7e07d6070def1
parent 5561965291932f3574410b348001fc1685390374
Author: markseu <mark2011@mayberg.se>
Date:   Mon, 27 Oct 2014 15:25:57 +0100

Better image detection

Diffstat:
MREADME.md | 2+-
Msystem/core/core.php | 13+++++++++++--
2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md @@ -1,4 +1,4 @@ -Yellow 0.4.6 +Yellow 0.4.7 ============ Yellow is for people who make websites. [Visit website](http://datenstrom.se/yellow). diff --git a/system/core/core.php b/system/core/core.php @@ -5,7 +5,7 @@ // Yellow main class class Yellow { - const Version = "0.4.6"; + const Version = "0.4.7"; var $page; //current page var $pages; //pages from file system var $config; //configuration @@ -2180,7 +2180,8 @@ class YellowToolbox $type = "png"; } } else if(substru($fileName, -3) == "jpg") { - $dataBufferSize = min(filesize($fileName), 8192); + $dataBufferSizeMax = filesize($fileName); + $dataBufferSize = min($dataBufferSizeMax, 4096); $dataBuffer = fread($fileHandle, $dataBufferSize); $dataSignature = substrb($dataBuffer, 0, 11); if(!feof($fileHandle) && $dataSignature=="\xff\xd8\xff\xe0\x00\x10JFIF\0") @@ -2196,6 +2197,14 @@ class YellowToolbox break; } $length = (ord($dataBuffer[$pos+2])<<8) + ord($dataBuffer[$pos+3]) + 2; + while($pos+$length+8 >= $dataBufferSize) + { + if($dataBufferSize == $dataBufferSizeMax) break; + $dataBufferDiff = min($dataBufferSizeMax, $dataBufferSize*2) - $dataBufferSize; + $dataBufferSize += $dataBufferDiff; + $dataBuffer .= fread($fileHandle, $dataBufferDiff); + if(feof($fileHandle)) { $dataBufferSize = 0; break; } + } } } }