Grand Theft Auto V - what's Unicode again?



  • Steam has issued the following announcement to all users who bought GTA5:

    13 April
    Dear Steam Customer,

    We recently learned of an issue that can impact players attempting to install Grand Theft Auto V on Windows PCs. For those experiencing this issue, you have three options available to you at this time.

    First, Rockstar Games intends to have a fix for this issue soon.

    Second, customers can try the manual work around detailed below.

    Third, if neither of the above works for you, the self-refund tool will continue to be available until the official fix is released.

    We apologize for the inconvenience, and thank you for your patience.

    Please see below for more information from Rockstar Games, including details on the manual workaround.

    The Steam Team

    We have identified an issue where players with Windows usernames that include characters not found in the table at the bottom of this page will likely run into difficulties when attempting to download, install, or play GTAV. We are currently working on a fix for this issue.

    If you do not want to wait for a fix, you need to create a new Administrator User Account for your Windows system that only includes letters A to Z, a to z or numbers 0-9 from the basic roman alphabet. For a full list of supported characters, see the table at the bottom of this page. Please note that simply renaming your current User Account will not correct this issue. To create the account, follow these instructions from the Microsoft website:

    Windows 8/8.1:

    Windows 7:
    Windows Vista:

    We will update this support article with any new information as soon as we have it, including expected timing of a fix and whether you will be able to transfer progress on the newly-created Windows username over to your original Windows user account.

    If you would like to receive an automatic update via email when there is more information about a fix, please log into the Support Site and click Subscribe at the top of this page.

    Supported Characters At Launch for Windows Usernames for GTAV PC

    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    a b c d e f g h i j k l m n o p q r s t u v w x y z
    0 1 2 3 4 5 6 7 8 9

    Please select one of the following excuses:

    • Who needs QA or localization testers anyway? 36 characters ought to be enough for everybody.
    • Blakeyrant about Windows directory path naming restrictions.
    • Add your own below...


  • Pssh, even I know what Unicode is...

    Psst, that's the horse with the horn on it, right?


  • sockdevs

    @powerlord said:

    Psst, that's the horse with the horn on it, right?

    no. it's a type of human powered wheeled conveyance that only has one wheel.


  • sockdevs

    Decided this is Sidebar-worthy. Because it just is.

    And remember boys and girls, this game was delayed several times before release...



  • You're both wrong. It's this guy:


  • sockdevs

    isn't that guy one of these?



  • @LoremIpsum said:

    the self-refund tool will continue to be available until the official fix is released.

    TRWTF


  • mod

    No, he's a


  • Winner of the 2016 Presidential Election



  • @LoremIpsum said:

    36 characters ought to be enough for everybody.

    QFT



  • Both Xbox Live and PSN allow Unicode, so its pretty amazing they somehow fucked this up



  • Can't have a Rockstar PC port without a bunch of technical problems.



  • They must have compiled it on Linux hardware.



  • Never gets old



  • Welcome to Mount Thatjoke, the premier mining facility for lulz!
    We're sorry, Mount Thatjoke has permanently closed. All the lulz have been completely mined out, and to continue digging will only toodeep this facility. No more lulz are available. Please do not trespass on Mount Thatjoke.

    <!-- Filed under: [Rated D for Dorf](), [we need a new tag cloud to attack]() -->


  • Let's continue with a slightly lesser WTF... Please Rockstar, make me to math.

    Also nice to see that people haven't wasted any time in documenting the Social Club JSON endpoints for future hacking fun.



  • So I'm not really familiar with the game...is this like 3 minutes of play or what?



  • @LoremIpsum said:

    the self-refund tool will continue to be available until the official fix is released.

    That is really a "You *@#$ing idiots", two finger and one finger gesture right up Rockstar's nose from Valve.
    They probably couldn't be more insulting without breach of contract.

    "If you don't Unicode, no money for you!"



  • @LoremIpsum said:

    Also nice to see people haven't wasted any time in documenting the Social Club JSON endpoints

    Meanwhile, we're still too much of a bunch of lazy bastards to finally make those docs for Discourse.



  • @Maciejasjmj said:

    Meanwhile, we're still too much of a bunch of lazy bastards to finally make those docs for Discourse.

    Eh, the way that bot development goes, you just check the Network tab when you need to be reminded of the query usage. That's really the easiest way to do it.

    Plus, some of the Discourse code has way too much action-at-a-distance to be comfortable, like likes & flags.


  • Winner of the 2016 Presidential Election

    Some of us are trying to provide an actual well-encompassing API, you know?

    We're also terribly lazy.

    (Ok, in my case it's because there's so much boring boilerplate I have to write first (more than in something like C#) that I just give up 20 minutes in due to crushing boredom)



  • @LoremIpsum said:

    Also nice to see that people haven't wasted any time in documenting the Social Club JSON endpoints for future hacking fun.

    the real API is some obfuscated-with-a-RC4-like-thing hacked-to-death ASP.NET web service set, though...



  • So even spaces are not allowed? So many people have set their user name to their full name. Workmate even had troubles with Cygwin because of that, but you don't expect troubles with something that isn't supposed to be a hack!



  • Yes, I believe that's probably the most common cause of failure for Western users. Space isn't on the allowed character list.



  • Spaces? Using spaces in important file system paths is already a WTF. I'm more concerned about the lack of underscores in that list.



  • @Zemm said:

    you don't expect troubles with something that isn't supposed to be a hack!

    All DRM software are hacks.

    @gamefreak said:

    Spaces? Using spaces in important file system paths is already a WTF. I'm more concerned about the lack of underscores in that list.

    The nineties called. They can't believe you still have problems with parsing spaces correctly.



  • @LoremIpsum said:

    Space isn't on the allowed character list.

    That, right there, is the Linux hardware smoking gun.



  • So the issue is with the user directory path for storing savegames and stuff? That's fucking hilarious, Jesus.



  • I've never had trouble putting spaces in filenames on Ubuntu. Is this an issue with older or other more generic distros? Does the same issue apply with Unicode characters in paths?



  • The issue on Linux is if you use find or ls with xargs without passing a magical flag for each, or a shell that redistributes arguments after globbing, you're gonna get totally screwed as now your carefully crafted filenames-with-spaces are now broken up into multiple argument slots, definitely breaking what you wanted to do with them and potentially causing vulns.

    The issue on Windows is similar, but (since the callee gets one "command line argument string" rather than a whole array of "arguments", various runtime libraries all follow one convention for escaping and so forth, and the shell attempts to do the right thing even when handed gibberish) except for some very narrow cases, almost all applications are unaffected. Unless you're Rockstar.



  • Ah yes... I forgot about the nightmares of command line arguments.



  • I see a pattern here

    /[A-z0-9]/
    


  • @Monarch said:

    ```
    /[A-z0-9]/

    
    [&#x5c;] ^_`
    
    <!-- Let's see who gets the joke! -->


  • Good, looks like Henke37 is on the list.


  • Grade A Premium Asshole

    @LoremIpsum said:

    36 62 characters ought to be enough for everybody.

    FTFY



  • @TwelveBaud said:

    The issue on Linux is if you use find or ls with xargs without passing a magical flag for each, or a shell that redistributes arguments after globbing, you're gonna get totally screwed as now your carefully crafted filenames-with-spaces are now broken up into multiple argument slots, definitely breaking what you wanted to do with them and potentially causing vulns.

    Someone needs to learn what ' and " are for.



  • Doesn't guard against newlines, among others. Besides, the Unixism of choice is backslash escapes, not surrounding quotes.



  • @TwelveBaud said:

    Doesn't guard against newlines, among others.

    Yes it does.

    @TwelveBaud said:

    Besides, the Unixism of choice is backslash escapes, not surrounding quotes.

    And then the end users of your scripts need to remember they need to backslash-escape pipes in regexes exactly five times, or else the whole thing is going to burn... [true story]

    Seriously, quote your args. It saves everyone the hell of work.


  • Discourse touched me in a no-no place

    @Gaska said:

    Yes it does.

    But doesn't guard against ' characters (or " characters, depending on what you quoted with). While I like the shell, it's a truly miserable language to do reliable programming in.

    @Gaska said:

    And then the end users of your scripts need to remember they need to backslash-escape pipes in regexes exactly five times, or else the whole thing is going to burn...

    You can use printf %q to add the right number of quotes, and so avoid requiring the user to figure out what to do; that the user has to add lots of quotes is a mark that the intervening programmers are crappy. Try this piece of code that quotes some awfulness (the correct quoting sequence for ' in a single-quoted context is '\''…) correctly:

    printf %q ' abc"'\'' "'\''def '
    

    About the only restriction is on binary data; NULs can't go in values.



  • @dkf said:

    that the user has to add lots of quotes is a mark that the intervening programmers are crappy

    Probably. But shell script are awfully hard to get right in this regard - especially when you have scripts calling scripts.

    @dkf said:

    About the only restriction is on binary data; NULs can't go in values.

    If you have binary data in your command line, you're doing it wrong anyway.


  • Discourse touched me in a no-no place

    @Gaska said:

    If you have binary data in your command line, you're doing it wrong anyway.

    Technically, you can't pass binary literals into commands; the execve() system call simply can't do that. Binary data needs to be kept in a file or a pipe or a socket or … and is in any case usually pretty large — so much so that you tend to want to avoid piling it all up in memory unnecessarily — so it's not really a huge problem.



  • @dkf said:

    (the correct quoting sequence for ' in a single-quoted context is '''…)

    Isn't it '"'"' as in 'Jack O'"'"'Neill' - the first ' ends the quote, the first " starts a quote containing a single ', then " ends that, finally the ' starts the proper quote again. Or would you use 'Jack O'\''Neill'? I haven't tried that one.

    I have never used printf in the shell. I may have to investigate. It would be nice if \Qfoo'bar"baz\E worked everywhere. :smile:

    @Gaska said:

    And then the end users of your scripts need to remember they need to backslash-escape pipes in regexes exactly five times, or else the whole thing is going to burn

    I fixed some "quoting code" (perl) that was included s/\\/\\/g but it needed to be s/\\/\\\\/g because of the way that quoting works. The first one left backslashes alone, the second one doubles them. That had been in the system for years and I was surprised no-one picked it up or even ran into it by accident.



  • @Zemm said:

    That had been in the system for years and I was surprised no-one picked it up or even ran into it by accident.

    Maybe they did, just didn't tell anyone and learned to cope without it. Which is pretty reasonable stance if your company hires @codinghorror​s.



  • @dkf said:

    doesn't guard against ' characters (or " characters, depending on what you quoted with)

    Once a value has been stuffed inside a shell variable, or passed as a shell script argument, expanding that variable or arg inside double-quotes always expands it exactly as-is, then strips off the outer double-quotes you supplied to expand it in. Doesn't matter what it contains. There is no second pass to look for interior quotes.

    Glob results are handled properly as well by default. There is no word splitting applied to glob results:

    stephen@jellyshot:~$ cd /tmp
    stephen@jellyshot:/tmp$ mkdir foo
    stephen@jellyshot:/tmp$ cd foo
    stephen@jellyshot:/tmp/foo$ touch 'cupcakes for everyone'
    stephen@jellyshot:/tmp/foo$ touch 'with icing and sprinkles'
    stephen@jellyshot:/tmp/foo$ for f in *; do echo "$f"; done
    cupcakes for everyone
    with icing and sprinkles
    stephen@jellyshot:/tmp/foo$ 
    

    @Gaska said:

    But shell script are awfully hard to get right in this regard - especially when you have scripts calling scripts.

    Scripts calling scripts that quote their args is unproblematic.

    When writing scripts, if you follow the not-at-all hard rule of wrapping double quotes around everything you don't want word-split or globbed, they're awfully easy to get right.

    The only real gotcha is the xargs one, and that's completely satisfactorily dealt with (in Gnu xargs, at least) with the -0 option, which is what I imagine TwelveBaud was describing as a "magical flag". It's not magical at all - it just makes \0 the delimiter between argument values on xargs's input stream.

    Anything capable of being passed as a command line argument is safe to pipe into xargs's input this way, because command line arguments are themselves \0-terminated strings. Most tools capable of providing a list of filenames or pathnames have some option for doing so with \0 instead of \n as the delimiter.

    Shell programming is really only unreliable when it's done by people trained badly by the stupid, broken quote handling in cmd.


  • Discourse touched me in a no-no place

    @flabdablet said:

    Shell programming is really only unreliable when it's done by people trained badly by the stupid, broken quote handling in cmd.

    Or when you've got code that you still want to work in older shells on commercial unix, some of which have the darnedest bugs! (The code in question is the configure script for a package which is used to bootstrap having a better programming environment, so it has to be very conservative in what it assumes is actually present.) For example, you can't just use "$@" because there was a shell that Belgium­ed that up; you need ${1+"$@"}

    I'd much rather work with Maven than this crap. I only dislike Maven a lot…



  • @flabdablet said:

    Most tools capable of providing a list of filenames or pathnames have some option for doing so with \0 instead of \n as the delimiter.
    Yes, but remembering what they are (hint: for find it's not -0!) isn't trivial, which is why I called those flags "magical". It goes from something obvious like "just add -0 and you'll be good" to something nonobvious like "consult the magic spellbookman page for the incantationcommand line argument to reciteinclude when invoking the eldritch godsthese tools." If you remember to do so.


  • Discourse touched me in a no-no place

    @TwelveBaud said:

    Yes, but remembering what they are (hint: for find it's not -0!) isn't trivial, which is why I called those flags "magical".

    There are only two important ones to learn. find has -print0, and xargs has -0. Everything else is gravy by comparison.



  • I usually use find -exec.


  • Discourse touched me in a no-no place

    @PleegWat said:

    I usually use find -exec.

    That's brutally slow if you've got enough that xargs is being seriously considered. (Assuming that you're not stuck with some evil edge case that needs the program to run once for each found filename.) xargs does “smart” batching so that as many filenames go at once as possible.



  • Not on gnu find, if you invoke it correctly. Making up an example on the spot:

    find -name CVS -prune -o -exec cvs add {} +
    

    The + instead of ';' causes it to append extra arguments until the argument length limit is reached, just like xargs does. Though I do believe xargs has some other features that still make it worth using, I'm usually in another language by the time that becomes relevant.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.