#include #include #include #include #include "fdmproto.h" #include "slectric.h" int GetCookie (long cookie, void *value) { long old_stack, *jar; old_stack = Super (NULL); jar = *((long **) 0x5a0l); Super ((void *) old_stack); if (jar) { while (*jar) { if (*jar == cookie) { if (value) *(long *)value = *++jar; return 1; } jar += 2; } } return 0; } void GetCurrPath (char *p, char *ext) { int drv; drv = Dgetdrv (); *p++ = drv + 'A'; *p++ = ':'; Dgetpath (p, 0); p += strlen (p); if (-1[p] != '\\') *p++ = '\\'; strcpy (p,ext); } int main (void) { int ok; char buf[sizeof (Fdm_Str) + 256], file[128] = "", alert[512]; Fdm_Str *fdm = (Fdm_Str *)buf; char *path = buf + sizeof (Fdm_Str); SLCT_STR *slct_str; if (appl_init () < 0) return -1; if (!GetCookie ('FSEL',&slct_str) || slct_str->version < 0x200) { form_alert (1, "[1][Kein Freedom da.][Ok]"); goto tschuessi; } GetCurrPath (path, "*.*"); strcpy (strchr (path,0)+1, "?Fdm"); memset (fdm,0,sizeof (Fdm_Str)); fdm->magic = '?Fdm'; fdm->maxsel = 5; wind_update (BEG_UPDATE); fsel_exinput (path,file,&ok,"*Der* Fileselektor"); wind_update (END_UPDATE); if (fdm->magic != '!Fdm') { if (ok) sprintf (alert, "[0][Freedom-Unterst》zung fehlgeschlagen!|" "Pfad und ausgewhltes File:|" "%s|%s|][Ok]",path,file); else sprintf (alert, "[0][Freedom-Unterst》zung fehlgeschlagen!|" "Abbruch gedr…kt!|][Ok]"); } else { int msg[8]; char *files; do evnt_mesag (msg); while (msg[0] != FILE_SELECTED); strcpy (path, *(char **)&msg[4]); files = *(char **)&msg[6]; ok = files != NULL; if (ok) sprintf (alert, "[0][Freedom-Unterst》zung erfolgreich!|" "Pfad und ausgewhlte Files:|" "%s|%s|][Ok]",path,files); else sprintf (alert, "[0][Freedom-Unterst》zung erfolgreich!|" "Abbruch gedr…kt!|][Ok]"); } form_alert (1,alert); tschuessi: appl_exit (); return 0; }