win32ss / supermium

Chromium fork for Windows XP/2003 and up
https://win32subsystem.live/supermium/
BSD 3-Clause "New" or "Revised" License
1.83k stars 60 forks source link

Disabling transforming new lines into \n in console output #654

Open oleedd opened 3 weeks ago

oleedd commented 3 weeks ago

Old Chromium versions display new lines in console output, but new - not, they transform them into \n. So new versions are not usable to transform text with JS. Because it gives a mess with \n (all in 1 string) and other programs don't recognize \n as new line.

XakerTwo commented 3 weeks ago

can your provide example(minimum piece of code and location to apply will be better)? i checked it and piece of 25.2KB of text displayed with new lines, not with \n

probably you try to display escaped data?.. console output produced by ```js $.get(url, ..., (r) => console.log(r.comments), 'json'); ``` ![console-nl-ok](https://github.com/win32ss/supermium/assets/13261533/034ab465-0ab4-4ed6-b9b9-bb28b46f7248)
oleedd commented 3 weeks ago

I mean strings. Paste this:

`b
k
l
v
r`
XakerTwo commented 3 weeks ago

i understood what you meant - it's value preview and not value output, so any special characters will be displayed as escaped. simply output it instead of viewing

console.log() ![console-nl-oleedd](https://github.com/win32ss/supermium/assets/13261533/7ba915ee-6646-4029-97f9-9779f5c2da5d)

don't mind this as an option, but would prefer to see it somewhere under console settings rather than as flag

oleedd commented 3 weeks ago

Not only preview, after pressing "Enter", it is output. It wasn't so before (for example, Chrome 65). And it is not about console.log(), don't add it.

but would prefer to see it somewhere under console settings rather than as flag

Yeah, absolutely. Or to remove this completely how it was before because it is a very stupid thing as for me. So to replace "\n" with new line instead of replacing new lines with "\n".

oleedd commented 3 weeks ago

so any special characters will be displayed as escaped

Oh, yeah. The same for " " (Tab), " " ("\v", Github or Chromium changes it for some reason), " ". So there should be a function which replaces them.

XakerTwo commented 2 weeks ago

by saying preview i mean both: eager evaluation(preview of result in dimmed colors) and end value preview (after pressing Enter). console is not "an end output" it's a dev tool so human/pretty representation is not main target

this will result end value "preview" - displaying in such way so that you will be able to examine value details, for string it includes viewing special characters in escaped form

{
    let s = "line1\nline2\nline3";
    s;
}

since we talk about string, follow will result end value output - displaying it in the end form after evaluating(not to be confused with string representation) undefined after is the preview of console.log(), that has no return value

{
    let s = "line1\nline2\nline3";
    console.log(s);
}

i suggested console.log() for you to output your data and not as an implementation way.


Or to remove this completely

NO, damn NO! i'm personally happy with it especially when need to transfer strings from console to code

btw - probably it should be addressed to chromium rather than to supermium?..

oleedd commented 2 weeks ago

Console gives return values, it is not a preview, it is the result! You type input, and it gives output (result). For example, you give 5+7+6, and it gives 18, as output! But if it is an official terminology, you can show it and I will accept it.

i'm personally happy with it especially when need to transfer strings from console to code

But I need to transfer to other programs (what seems to be a more common case). It is even not readable when all is 1 string with a lot of "\n". It was better without it.

btw - probably it should be addressed to chromium rather than to supermium?..

They disabled issues. And I don't have development accounts and necessary things to be able to contact them. And they probably listen only about bugs. It is a standard thing for Supermium - returning what was before. The Chromium developers seem to have a very bad attitude towards this.

XakerTwo commented 2 weeks ago

But if it is an official terminology, you can show it and I will accept it.

if i could find something i would post it in the second message, but all i found is that about 11 years ago there was difference between Fox and Chrome, reported on their bugtracker plus few guides where such nuance is of course not described. So, yes it's my terminology, based on my understanding and tab name in the network category :grin: console show value in an unambiguous and reproducible manner, end value in "underhood" form. imagine string like part_1\0part_2 - you even will not notice NULL char in end form (actually all after \0 will be dropped)

But I need to transfer to other programs

i'm not against option to toggle on the fly between the "preview"/"underhood" form and the end form i'm against completely removing current behaviour. And tbh i really not understand what is your problem with outputting result using console.log()? at least until option will not be implemented

They disabled issues. ... probably listen only about bugs

as i know chromium have their own separate issue tracker. And as example

As for supermium and returning ... yes and no - it's not removed thing it's changed and this is not UI or extra feature to simply revert it. but such option may be usefull not only for supermium users but and for chromium(e.g. for you once you change the browser on something other chromium-based)

@win32ss what do you think about this suggestion? possible, useful, useless, 4chromium, get me out of this :rofl:

win32ss commented 2 weeks ago

If I can locate the change in behaviour, I'll add it as an option. But this is quite low-priority as the main priorities are some GDI changes and adding the tab/UA/UACH customizers.

teknixstuff commented 1 week ago

Console gives return values, it is not a preview, it is the result! You type input, and it gives output (result). For example, you give 5+7+6, and it gives 18, as output! But if it is an official terminology, you can show it and I will accept it.

i'm personally happy with it especially when need to transfer strings from console to code

But I need to transfer to other programs (what seems to be a more common case). It is even not readable when all is 1 string with a lot of "\n". It was better without it.

btw - probably it should be addressed to chromium rather than to supermium?..

They disabled issues. And I don't have development accounts and necessary things to be able to contact them. And they probably listen only about bugs. It is a standard thing for Supermium - returning what was before. The Chromium developers seem to have a very bad attitude towards this.

You can right-click > Copy string contents. That will get you the normal (not escaped) version on your clipboard.

oleedd commented 1 week ago

@teknixstuff Thanks. But still: it would be good if it could be shown without "\" in the console - if you want to see readable results or generally don't need escaped versions. So it is still actual.