MSYS - OS verzio detektalas windowson

Mar a hocipom tele van azzal, hogy a MSYS telepites csak XP-n hajlando mukodni, ugyanis Vistan/Windows 7-en ket particio fel van cserelve az XP-hez kepest. A VisualC++ konzoljat jol at lehet verni, mivel az 2x van felteve, igy egyszeruen mas inicializalo cmd-t hivok meg a fokonzol cmd-jebol, de az msys eseteben ez nyilvan nem mukodik, hiszen az csak 1x van felrakva.

Ennekokan szuletett ez a megoldas:

1) keszitettem egy rovid kodot, ami semmi egyebet nem csinal, mint az aktualis os verziot visszaadja:


#include <stdio.h>
#include <windows.h>

int main() {
        int osver = GetVersion();
        int osmaj = (osver & 0xffff) & 0xff;
        int osmin = ((osver & 0xffff) & 0xff00) >> 8;
        printf("%d.%d\n", osmaj, osmin);
        return 0;
}

Ezt leforditottam, a vegeredmenyt bepakoltam a msys bin konyvtaraba.
2) Megszuntettem a /etc/fstab fajlt, es atirogattam minden hivatkozast a profilban abszolut utvonalra. Erre most biztos sokan felszisszennek, hiszen az fstab epp arra jo, hogy roviditeni lehet a windowsos irdatlan hosszu utvonalakat. Sajnos ez egy kenyszeru lepes, ugyanis az fstab nem szkriptkent van ertelmezve, es a mount parancs jelenleg "not implemented" uzenettel orvendeztet meg, ha kezzel szeretnenk mountolni.
A jelenlegi /etc/profile kabe ilyen:
[code]
# /etc/profile
# blablbla...

# Anything on E: drive goes here, because this is a workaround for XP/Win7
if [ "${OSVER:0:1}" -eq 5 ]; then
# XP paths
if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/d/mingw/bin:/bin:$PATH"
else
export PATH=".:/usr/local/bin:/bin:/d/mingw/bin:$PATH"
fi
export PATH="$PATH:/d/progs/vim:/d/cmake/bin:/d/Qt/mingw/qt"
else
# Vista/Win7 paths
if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/e/mingw/bin:/bin:$PATH"
else
export PATH=".:/usr/local/bin:/bin:/e/mingw/bin:$PATH"
fi

export PATH="$PATH:/e/progs/vim:/e/cmake/bin:/e/Qt/mingw/qt"
fi
[/code]

Hozzászólások

az include-oknál a kacsacsőrök bezavarnak -> &_lt; és &_gt;
__________________________________________________________
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 12.1 | 2.6.26.7-janos

Pont ezt nem akartam. Igy sokkal jobb, mert egyreszt kimarad a copypasta, masfelol nem kell a gmailbe belepnem miatta. Ha lenne xmlrpc az oldalhoz, akkor egyszerubb lenne az eletem, de sajna nincs. Majd akarok hekkelni valamit, de az nem most lesz.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.