Closed
Bug 237538
Opened 21 years ago
Closed 18 years ago
Text munger effects depends on nesting order
Categories
(Other Applications :: ChatZilla, defect)
Other Applications
ChatZilla
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: bugzilla-mozilla-20000923, Assigned: Gijs)
References
Details
(Whiteboard: [cz-0.9.78])
Attachments
(1 file, 5 obsolete files)
78.31 KB,
patch
|
samuel
:
review+
|
Details | Diff | Splinter Review |
In short, _foo |bar| baz_ works, but |foo _bar_ baz| misses the tele-type
effect. This is, I think, because the munger applies the rules in the order it
finds, and thus matches _/_ before |/|. Fixing will not be that pretty, but
could be done in the following way:
- apply each regex or lambdaMatch function in turn, and keep track of the one
with the lowest index within the text.
- run the lambdaReplace or "simple munger" code for the munger found with the
lowest start index.
Updated•20 years ago
|
Product: Core → Other Applications
Reporter | ||
Updated•19 years ago
|
Assignee: rginda → silver
Reporter | ||
Comment 1•18 years ago
|
||
Assignee | ||
Comment 2•18 years ago
|
||
This patch is ridiculously large and such. I'll spend a moment to try and move everything back so that at least the patch is smaller. I don't want that other version checked in, but it should be easier to see what the ... James and I did in that one.
Assignee: silver → gijskruitbosch+bugs
Attachment #244589 -
Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #244672 -
Flags: review?(samuel)
Assignee | ||
Comment 3•18 years ago
|
||
Assignee | ||
Comment 4•18 years ago
|
||
OK, this should do I hope.
Assignee | ||
Comment 5•18 years ago
|
||
self-nit-note-for-checkin: remove the semicolons after the helper functions at the end of munger.js
Comment 6•18 years ago
|
||
Comment on attachment 244672 [details] [diff] [review]
Full Patch, moving cz's mungers to new mungers.js file in xul/content/
>+function CMungerEntry(name, regex, className, enable, startPriority, tagName)
This doesn't match how it's called.
> CMunger.prototype.addRule =
>+function mng_addrule(name, regex, className, priority, startPriority, enable)
[...]
>+ var entry = new CMungerEntry(name, regex, className, priority,
>+ startPriority, enable);
This is how it's called.
>+ if (!(priority in this.entries))
>+ this.entries.length = Math.max(this.entries.length, priority);
Why is this necessary?
> CMunger.prototype.munge =
>+function mng_munge(text, containerTag, data)
[...]
>+ for (var i = this.entries.length; i >= 0; i--)
> {
>+ if (i in this.entries)
Why not just |for (var i in this.entries)| like you used elsewhere?
>+ // There is no need to munger the "before" text, as we should
munger -> munge
Attachment #244672 -
Flags: review?(samuel) → review-
Assignee | ||
Comment 7•18 years ago
|
||
Re: ssieb's review:
- Corrected the method signature mistake. Oops.
- Removed the array length extension, which was useless.
- Left the loop code as-is, because looping with for ... in would be in the wrong order (which is important there) and it would also take along other things done to the array variable (I'm not sure if it'd list "length" but I seem to remember it would. Which would break the code.
- Corrected the spelling/grammar oopsie.
Additional stuff:
- Added CSS and code to make all kinds of links retain mIRC colour/style markup.
- Added some checks so the munger wouldn't call insertText on empty strings (adding useless empty spans and <wbr/>s)
- Took along fixes for the .mailto and bugzilla mungers from the dep bugs. This patch applies to trunk again. :-)
Attachment #244672 -
Attachment is obsolete: true
Attachment #244674 -
Attachment is obsolete: true
Attachment #244675 -
Attachment is obsolete: true
Attachment #255576 -
Flags: review?(samuel)
Assignee | ||
Comment 8•18 years ago
|
||
Ugh. I was too happy copy-pasting stuff in that last patch. This one actually works. I also fixed some more classes in the CSS and removed the strike-through one because we don't use it at all.
Attachment #255576 -
Attachment is obsolete: true
Attachment #255578 -
Flags: review?(samuel)
Attachment #255576 -
Flags: review?(samuel)
Assignee | ||
Comment 9•18 years ago
|
||
Nit: delete data.isUnder in mircResetColor should be delete data.isUnderline (see http://lxr.mozilla.org/seamonkey/source/extensions/irc/xul/content/static.js#1229 for comparison).
Updated•18 years ago
|
Attachment #255578 -
Flags: review?(samuel) → review+
Assignee | ||
Comment 10•18 years ago
|
||
Checking in mozilla/extensions/irc/jar.mn;
new revision: 1.31; previous revision: 1.30
Checking in mozilla/extensions/irc/xul/content/commands.js;
new revision: 1.119; previous revision: 1.118
Checking in mozilla/extensions/irc/xul/content/handlers.js;
new revision: 1.146; previous revision: 1.145
RCS file: /cvsroot/mozilla/extensions/irc/xul/content/mungers.js,v
Checking in mozilla/extensions/irc/xul/content/mungers.js;
initial revision: 1.1
Checking in mozilla/extensions/irc/xul/content/output-base.css;
new revision: 1.14; previous revision: 1.13
Checking in mozilla/extensions/irc/xul/content/output-window.js;
new revision: 1.18; previous revision: 1.17
Checking in mozilla/extensions/irc/xul/content/scripts.xul;
new revision: 1.13; previous revision: 1.12
Checking in mozilla/extensions/irc/xul/content/static.js;
new revision: 1.230; previous revision: 1.229
Checking in mozilla/extensions/irc/xul/lib/munger.js;
new revision: 1.24; previous revision: 1.23
--> FIXED
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Assignee | ||
Updated•18 years ago
|
Whiteboard: [cz-0.9.78]
You need to log in
before you can comment on or make changes to this bug.
Description
•