home *** CD-ROM | disk | FTP | other *** search
- /*
- * Kleine Utilities, die das Leben leichter machen (ganz ohne Zucker.)
- *
- * 22.03.1992 Andre geschrieben.
- */
-
- #include <exec/types.h>
- #include <libraries/asl.h>
- #include <dos/var.h>
-
- #include "list.h"
- #include "utils.h"
-
- /* Wandelt einen PASCAL-String in einen C-String um. */
- char *pstr2cstr(void *p)
- {
- int index;
- char *pa=(char *)p;
- static char buffer[256]; /* Maximale LΣnge eines PASCAL-Strings */
-
- for(index=0; index<*((char *)p); index++)
- buffer[index]=pa[index+1];
- buffer[index]='\0';
- return buffer;
- }
-
- // Wandelt einen gepackten Typ in einen C-String um.
- char *pack2cstr(unsigned long p)
- {
- static unsigned long pa[2];
-
- pa[1]=0;
- pa[0]=p;
- return (char *)pa;
- }
-
- // Wandelt einen C-String in einen Type um.
- unsigned long cstr2pack(char *s)
- {
- unsigned long p;
- char *pp;
-
- pp=(char *)&p;
- pp[0]=s[0];
- pp[1]=s[1];
- pp[2]=s[2];
- pp[3]=s[3];
- return p;
- }
-
- // Holt einen File-Namen vom ASL-Requester
-
- char *ASLGetName(void)
- {
- BOOL ret;
- char buffer[1024];
- int len;
-
- buffer[0]='\0';
- if( AslRequestTags(fr, ASL_Hail, "ResGrep", TAG_DONE) )
- {
- // Den FileNamen zusammenpuzzlen.
- strcpy(buffer,(char *)(fr->rf_Dir));
- len=strlen(buffer);
- if( len!=0 && *(buffer+len)!='/' && *(buffer+len)!=':' )
- *(buffer+len++)='/';
- strcpy(buffer+len,(char *)(fr->rf_File));
- }
- return strdup(buffer);
- }
-
- // Fensterkoordinatenberechnung
- static int XPos=30;
- static int YPos=30;
-
- int NewXPos(void)
- {
- return XPos;
- }
-
- int NewYPos(void)
- {
- return YPos;
- }
-
- void CoordsUsed(void)
- {
- XPos= (XPos+5)%550;
- YPos= (YPos+14)%200;
- }
-
- // Berechnet eine neue Filenummer
- unsigned long GetNewFileNum(void)
- {
- extern list FileList;
-
- if( FileList.getfirst()->getsucc()!=NULL )
- return FileList.getlast()->getpri()+1;
- else
- return 1;
- }
-