User:Ilmari Karonen/sigdash.js

// SIGDASH FIX:

(function () {

var oldAddButton = window.addButton;

if (typeof(oldAddButton) == 'function') {

window.addButton = function () {

if (arguments.length > 3)

arguments[2] = arguments[2].replace(/^--(~+)$/, '—$1');

oldAddButton.apply(this, arguments);

};

}

// The fix above doesn't work with the new fancier edit form. Use this instead.

// The setTimeout() trickery is needed due to issues with asynchronous script loading:

// it seems to be the only way to ensure that the button has been created before this

// code runs. Otherwise this would be a two-liner. :-(

var fixSigDashSleep = 50;

var fixSigDash = function () {

if ( typeof $j === 'undefined' ) return;

var sigButton = $( 'span[rel=signature]' );

if ( !sigButton.length ) return setTimeout( fixSigDash, fixSigDashSleep *= 2 );

var opts = sigButton.data('action').options;

for (key in opts) opts[key] = opts[key].replace(/^--(~+)$/, '—$1')

};

if ( mw.config.get('wgAction') == "edit" || mw.config.get('wgAction') == "submit" ) $( fixSigDash );

})();

//