Тотальная неудачница и убийца жёстких дисков.
#post-id: 7067-19-46
#original-date: 1.12.2019 Sun
#original-time: 7:46 PM
#original-day:  7067
#original-host: WinXP Home SP3 (Build 2600)

Решила на FreeBasic написать простенькую программу. Уже в лёгком шоке.

Оказывается, в FreeBasic нельзя просто взять и получить командную строку в оригинальном виде. Есть функция Command(), которая должна возвращать её, но на деле рантайм делает так. Сначала он парсит командную строку, разбивает на элементы и даёт доступ к результату через ARGC/ARGV хреновины. Потом при вызове Command() он СОБИРАЕТ ПОЛУЧЕННОЕ В ОДНУ СТРОКУ и возвращает. Тоесть это:



Превращается в это:



Более того, он без спросу, типа для совместимости с линупсом делает развёртывание масок на уровне самой программы, а не оболочки. Это:



Превращается в это:



Сюрприз, сюрприз!

В доках сказано, как это непотребство выключить, но во-первых для каждой платформы это делается своим костылём, а во-вторых оно не работает.

Короче, действовать придётся, как водится, методом кишлака: GetCommandLine() и вычленением екзешника.

#upd(3.12.2019 - 1:00 AM):

Навелосипедила так:

https://gist.github.com/Linda-chan/b5d71f338852a5039053848bc62e833b