/* MUTILS.C * * Miscellaneous utility functions for MIDAS Sound System used * by various system components. * * $Id: mutils.c,v 1.3 1997/01/16 18:41:59 pekangas Exp $ * * Copyright 1996,1997 Housemarque Inc. * * This file is part of the MIDAS Sound System, and may only be * used, modified and distributed under the terms of the MIDAS * Sound System license, LICENSE.TXT. By continuing to use, * modify or distribute this file you indicate that you have * read the license and understand and accept it fully. */ #include "lang.h" #include "mutils.h" #include "string.h" #include #include /****************************************************************************\ * * Function: int mGetKey(void) * * Description: Waits for a keypress and returns the read key * * Returns: ASCII code for the key pressed. Extended keycodes are * returned with bit 8 set, eg. up arrow becomes \x148. * \****************************************************************************/ int CALLING mGetKey(void) { char c; #ifdef __LINUX__ #define getch getchar #endif c = getch(); if ( !c ) return 0x100+getch(); else return c; }; /****************************************************************************\ * * Function: int mStrLength(const char *str) * * Description: Calculates the length of a ASCIIZ string * * Input: char *str pointer to string * * Returns: String length excluding the terminating '\0'. * \****************************************************************************/ int CALLING mStrLength(const char *str) { return strlen(str); } /****************************************************************************\ * * Function: void mStrCopy(char *dest, const char *src); * * Description: Copies an ASCIIZ string from *src to *dest. * * Input: char *dest pointer to destination string * char *src pointer to source string * \****************************************************************************/ void CALLING mStrCopy(char *dest, const char *src) { strcpy(dest, src); } /****************************************************************************\ * * Function: void mStrAppend(char *dest, const char *src); * * Description: Appends an ASCIIZ string to the end of another. * * Input: char *dest pointer to destination string * char *src pointer to source string * \****************************************************************************/ void CALLING mStrAppend(char *dest, const char *src) { strcat(dest, src); } /****************************************************************************\ * * Function: void mMemCopy(void *dest, const void *src, unsigned numBytes); * * Description: Copies a memory block from *src to *dest. * * Input: void *dest pointer to destination * void *src pointer to source * unsigned numBytes number of bytes to copy * \****************************************************************************/ void CALLING mMemCopy(void *dest, const void *src, unsigned numBytes) { memcpy(dest, src, numBytes); } /****************************************************************************\ * * Function: int mMemEqual(const void *m1, const void *m2, * unsigned numBytes); * * Description: Compares two memory blocks. * * Input: void *m1 pointer to memory block #1 * void *m2 pointer to memory block #2 * unsigned numBytes number of bytes to compare * * Returns: 1 if the memory blocks are equal, 0 if not. * \****************************************************************************/ int CALLING mMemEqual(const void *m1, const void *m2, unsigned numBytes) { if ( memcmp(m1, m2, numBytes ) ) return 0; else return 1; } /****************************************************************************\ * * Function: long mHex2Long(const char *hex) * * Description: Converts a hexadecimal string to a long integer. * * Input: char *hex pointer to hex string, ASCIIZ * * Returns: Value of the string or -1 if conversion failure. * \****************************************************************************/ long CALLING mHex2Long(const char *hex) { static unsigned int l; if ((sscanf(hex, "%x", &l) ) > 0 ) return l; else return -1; } /****************************************************************************\ * * Function: long mDec2Long(const char *dec) * * Description: Converts an unsigned decimal string to a long integer * * Input: char *dec pointer to string, ASCIIZ * * Returns: Value of the string or -1 if conversion failure. * \****************************************************************************/ long CALLING mDec2Long(const char *dec) { static int l; if ( (sscanf(dec, "%d", &l)) > 0 ) return l; else return -1; } /***************************************************************************\ * * Function: char *mGetEnv(const char *envVar); * * Description: Searches a string from the environment * * Input: envVar environment variable name, ASCIIZ * * Returns: Pointer to environment string value (ASCIIZ), NULL if string * was not found. * \***************************************************************************/ char * CALLING mGetEnv(const char *envVar) { return getenv(envVar); } /* * $Log: mutils.c,v $ * Revision 1.3 1997/01/16 18:41:59 pekangas * Changed copyright messages to Housemarque * * Revision 1.2 1996/05/24 20:40:12 jpaana * Fixed mMemEqual * * Revision 1.1 1996/05/24 16:20:36 jpaana * Initial revision * * */