rem: s["%b"] = Calendar._SMN[m]; 
add: s["%b"] = Calendar._SMN[m]; 
context: Date.prototype.print = function (str) {  var m = this.getMonth();  var d = this.getDate();  var y = this.getFullYear();  var wn = this.getWeekNumber();  var w = this.getDay();  var s = {};  var hr = this.getHours();  var pm = (hr >= 12);  var ir = (pm) ? (hr - 12) : hr;  var dy = this.getDayOfYear();  if (ir == 0)    ir = 12;  var min = this.getMinutes();  var sec = this.getSeconds();  s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]  s["%A"] = Calendar._DN[w]; // full weekday name  s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]  s["%B"] = Calendar._MN[m]; // full month name  // FIXME: %c : preferred date and time representation for the current locale  s["%C"] = 1 + Math.floor(y / 100); // the century number  s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)  s["%e"] = d; // the day of the month (range 1 to 31)  // FIXME: %D : american date style: %m/%d/%y  // FIXME: %E, %F, %G, %g, %h (man strftime)  s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)  s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)  s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)  s["%k"] = hr;    // hour, range 0 to 23 (24h format)  s["%l"] = ir;    // hour, range 1 to 12 (12h format)  s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12  s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59  s["%n"] = "\n";    // a newline character  s["%p"] = pm ? "PM" : "AM";  s["%P"] = pm ? "pm" : "am";  // FIXME: %r : the time in am/pm notation %I:%M:%S %p  // FIXME: %R : the time in 24-hour notation %H:%M  s["%s"] = Math.floor(this.getTime() / 1000);  s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59  s["%t"] = "\t";    // a tab character  // FIXME: %T : the time in 24-hour notation (%H:%M:%S)  s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;  s["%u"] = w + 1;  // the day of the week (range 1 to 7, 1 = MON)  s["%w"] = w;    // the day of the week (range 0 to 6, 0 = SUN)  // FIXME: %x : preferred date representation for the current locale without the time  // FIXME: %X : preferred time representation for the current locale without the date  s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99)  s["%Y"] = y;    // year with the century  s["%%"] = "%";    // a literal '%' character  var re = /%./g;  if (!Calendar.is_ie5 && !Calendar.is_khtml)    return str.replace(re, function (par) { return s[par] || par; });  var a = str.match(re);  for (var i = 0; i < a.length; i++) {    var tmp = s[a[i]];    if (tmp) {      re = new RegExp(a[i], 'g');      str = str.replace(re, tmp);    }  }  return str;};
meta: 6219	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6219/0355e0405a8bbed068a9f8ff6742213dfb2b21cc/calendar.js/buggy/public/calendar/calendar.js