diff --git a/4chan_x.user.js b/4chan_x.user.js index 926ecb6ab..eee0f3da3 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -753,7 +753,7 @@ return 5; } })(); - table = $.x("following::br[@clear][1]/preceding::table[" + num + "]", a); + table = $.x("following::br[@clear]/preceding::table[" + num + "]", a); while ((prev = table.previousSibling) && (prev.nodeName === 'TABLE')) { $.rm(prev); } @@ -1604,7 +1604,7 @@ $('iframe[name=iframe]').src = 'about:blank'; fileCount = $('#files', qr.el).childElementCount; tc = data.textContent; - if (tc !== "Post successful!" && !/uploaded!$/.test(tc)) { + if (!/successful!|uploaded!$/.test(tc)) { if (tc === void 0) { data.textContent = "Connection error with sys.4chan.org."; } @@ -1682,7 +1682,7 @@ text = ">>" + id + "\n"; selection = window.getSelection(); if (s = selection.toString()) { - selectionID = (_ref = $.x('ancestor::blockquote/preceding-sibling::input', selection.anchorNode)) != null ? _ref.name : void 0; + selectionID = (_ref = $.x('ancestor-or-self::blockquote/preceding-sibling::input', selection.anchorNode)) != null ? _ref.name : void 0; if (selectionID === id) { s = s.replace(/\n/g, '\n>'); text += ">" + s + "\n"; @@ -2423,8 +2423,7 @@ _ref = $$('.quotelink', root); for (_i = 0, _len = _ref.length; _i < _len; _i++) { quote = _ref[_i]; - if (!(qid = quote.hash.slice(1))) continue; - quotes[qid] = quote; + if (qid = quote.hash.slice(1)) quotes[qid] = quote; } id = $('input', root).name; a = $.el('a', { @@ -3157,10 +3156,10 @@ if (conf['Quick Reply']) qr.init(); if (conf['Thread Watcher']) watcher.init(); if (conf['Keybinds']) keybinds.init(); + if (conf['Reply Navigation'] || conf['Index Navigation']) nav.init(); if (g.REPLY) { if (conf['Thread Updater']) updater.init(); if (conf['Thread Stats']) threadStats.init(); - if (conf['Reply Navigation']) nav.init(); if (conf['Post in Title']) titlePost.init(); if (conf['Unread Count']) unread.init(); if (conf['Quick Reply'] && conf['Persistent QR'] && canPost) { @@ -3171,7 +3170,6 @@ if (conf['Thread Hiding']) threadHiding.init(); if (conf['Thread Expansion']) expandThread.init(); if (conf['Comment Expansion']) expandComment.init(); - if (conf['Index Navigation']) nav.init(); } nodes = $$('.op, a + table'); _ref = g.callbacks; diff --git a/changelog b/changelog index ea7330a4a..3266202d4 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,6 @@ master +- mayhem + fix selection to quote when selecting started from the end of a line on Firefox 2.23.4 - mayhem diff --git a/script.coffee b/script.coffee index 9f268a90c..c35757fd6 100644 --- a/script.coffee +++ b/script.coffee @@ -538,7 +538,7 @@ expandThread = when 'b' then 3 when 't' then 1 else 5 - table = $.x "following::br[@clear][1]/preceding::table[#{num}]", a + table = $.x "following::br[@clear]/preceding::table[#{num}]", a while (prev = table.previousSibling) and (prev.nodeName is 'TABLE') $.rm prev for backlink in $$ '.op a.backlink' @@ -1246,7 +1246,7 @@ qr = fileCount = $('#files', qr.el).childElementCount tc = data.textContent - if tc isnt "Post successful!" and not /uploaded!$/.test tc # error message + unless /successful!|uploaded!$/.test tc # error message, not a successful post if tc is undefined data.textContent = "Connection error with sys.4chan.org." $.extend $('#error', qr.el), data @@ -1321,7 +1321,7 @@ qr = selection = window.getSelection() if s = selection.toString() - selectionID = $.x('ancestor::blockquote/preceding-sibling::input', selection.anchorNode)?.name + selectionID = $.x('ancestor-or-self::blockquote/preceding-sibling::input', selection.anchorNode)?.name if selectionID is id s = s.replace /\n/g, '\n>' text += ">#{s}\n" @@ -1927,9 +1927,9 @@ quoteBacklink = quotes = {} for quote in $$ '.quotelink', root #don't process >>>/b/ - continue unless qid = quote.hash[1..] - #duplicate quotes get overwritten - quotes[qid] = quote + if qid = quote.hash[1..] + #duplicate quotes get overwritten + quotes[qid] = quote # op or reply id = $('input', root).name a = $.el 'a', @@ -2009,7 +2009,7 @@ quoteInline = body = $.el 'body', innerHTML: req.responseText - if id == threadID #OP + if id is threadID #OP op = threading.op $('body > form', body).firstChild html = op.innerHTML else @@ -2074,7 +2074,7 @@ quotePreview = body = $.el 'body', innerHTML: req.responseText - if id == threadID #OP + if id is threadID #OP op = threading.op $('body > form', body).firstChild html = op.innerHTML else @@ -2509,6 +2509,9 @@ Main = if conf['Keybinds'] keybinds.init() + if conf['Reply Navigation'] or conf['Index Navigation'] + nav.init() + if g.REPLY if conf['Thread Updater'] updater.init() @@ -2516,9 +2519,6 @@ Main = if conf['Thread Stats'] threadStats.init() - if conf['Reply Navigation'] - nav.init() - if conf['Post in Title'] titlePost.init() @@ -2540,9 +2540,6 @@ Main = if conf['Comment Expansion'] expandComment.init() - if conf['Index Navigation'] - nav.init() - nodes = $$ '.op, a + table' for callback in g.callbacks