home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
451.lha
/
Free
/
output.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-12-08
|
2KB
|
82 lines
/***************************************************************************
* output.c: Functions for printing the output.
*
* Part of...
*
* FREE: Display free space on your disk volumes.
* Author: Daniel Jay Barrett, barrett@cs.jhu.edu.
*
* This program is Freely Distributable. Make all the copies you want
* and give them away. Use this code in any way you like.
***************************************************************************/
#include "free.h"
/* Show the amount of free space on the volume. */
void ShowFree(char *volume, long chipRam, long fastRam, char out[])
{
if (ValidDriveName(volume))
{
if (!StrCaseCmp(volume, "RAM:"))
ShowFreeRam(chipRam, fastRam, out);
else
DoNormalDrive(volume, out);
}
else
fprintf(stderr, "ERROR! \"%s\" MUST END WITH '%c'.\n",
volume, VOLUME_END_CHAR);
}
/* Copy "free RAM" information into the buffer "out[]". We use
* MakeFormatString() to make sure that the CHIP RAM amount is
* properly indented to match other output... and then just hack
* the FAST RAM and TOTAL RAM values onto the end. If you have no FAST
* RAM, you won't see these last two values. */
void ShowFreeRam(long chip, long fast, char out[])
{
char tmp[BUFSIZ]; /* This should hold 1 line of output... */
char formatString[FORMAT_LENGTH];
MakeFormatString("Chip", formatString, 'd', NO_CR);
sprintf(tmp, formatString, HI_ON, "Chip", HI_OFF, chip);
Concat(out, tmp);
if (fast)
{
sprintf(tmp, " %s%s%s%10ld %s%s%s%9ld",
HI_ON, "Fast", HI_OFF, fast,
HI_ON, "Total", HI_OFF, chip+fast);
Concat(out, tmp);
}
Concat(out, "\n");
}
/* Find the free space on a normal disk drive, and append it to the
* buffer "out[]". We use MakeFormatString() for matching indenting. */
void DoNormalDrive(char *volume, char out[])
{
long mem;
char tmp[BUFSIZ]; /* This should hold 1 line of output... */
char formatString[FORMAT_LENGTH];
mem = GetMem(volume);
if (mem != NO_DRIVE)
{
MakeFormatString(volume, formatString, 'd', CR);
sprintf(tmp, formatString, HI_ON, volume, HI_OFF, mem);
}
else
{
MakeFormatString(volume, formatString, 's', CR);
sprintf(tmp, formatString, HI_ON, volume, HI_OFF, NONE);
}
Concat(out, tmp);
}