Commit 36efcad7 authored by Tom Dwelly's avatar Tom Dwelly
Browse files

bring all speccy necessities into the git repo

parent d111716c
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
function sprintf()
{
if (!arguments || arguments.length < 1 || !RegExp)
{
return;
}
var str = arguments[0];
var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X|e|g)(.*)/;
var a = b = [], numSubstitutions = 0, numMatches = 0;
while (a = re.exec(str))
{
var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
var pPrecision = a[5], pType = a[6], rightPart = a[7];
//alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);
numMatches++;
if (pType == '%')
{
subst = '%';
}
else
{
numSubstitutions++;
if (numSubstitutions >= arguments.length)
{
alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
}
var param = arguments[numSubstitutions];
var pad = '';
if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
else if (pPad) pad = pPad;
var justifyRight = true;
if (pJustify && pJustify === "-") justifyRight = false;
var minLength = -1;
if (pMinLength) minLength = parseInt(pMinLength);
var precision = -1;
if (pPrecision && (pType == 'f' || pType == 'e' || pType == 'g')) precision = parseInt(pPrecision.substring(1));
var subst = param;
if (pType == 'b') subst = parseInt(param).toString(2);
else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
else if (pType == 'u') subst = Math.abs(param);
else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
else if (pType == 'o') subst = parseInt(param).toString(8);
else if (pType == 's') subst = param;
else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
else if (pType == 'e' || pType == 'g')
{
negStr = '';
mantissaStr = 0.0;
var exponent = 0;
if ((param > -100000 && param < -0.0001) || (param < 100000 && param > 0.0001))
{
subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
}
else
{
if (param != 0.0)
{
if ( param < 0.0 ) {param = Math.abs(param); negStr='-'; }
while ( param < 1.0) { param *= 10; exponent--;}
while ( param >= 10.0) { param *= 0.1; exponent++;}
mantissaStr = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
}
if ( exponent == 0 ) subst = negStr + mantissaStr;
else if (exponent < 0) subst = negStr + mantissaStr + "e" + parseInt(exponent);
else if (exponent > 0) subst = negStr + mantissaStr + "e" + "+" + parseInt(exponent);
}
}
}
str = leftpart + subst + rightPart;
}
return str;
}
......@@ -34,9 +34,9 @@
for the JavaScript code in this page.
*/
</script>
<script src="http://www.mpe.mpg.de/~tdwelly/js/jquery-latest.js" type="text/javascript"></script>
<script src="http://www.mpe.mpg.de/~tdwelly/js/sprintf.js" type="text/javascript"></script>
<script src="http://www.mpe.mpg.de/~tdwelly/js/fits.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery-latest.js" type="text/javascript"></script>
<script src="js/sprintf.js" type="text/javascript"></script>
<script src="js/fits.js" type="text/javascript" charset="utf-8"></script>
<style type='text/css'>
......@@ -387,7 +387,7 @@
<div style='text-align:left'>[<a href='/impressum'>Imprint</a> <a href='/data-protection'>Privacy Policy</a>]</div>
<script src="./speccy.js" type="text/javascript"></script>
<script src="./js/speccy.js" type="text/javascript"></script>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment