Example #1
0
static int saveMap(const char *fileName)
{
	int status = 0;
	disk mapDisk;
	fileStream theStream;
	int count;

	memset(&mapDisk, 0, sizeof(disk));
	memset(&theStream, 0, sizeof(fileStream));

	// Find out whether the file is on a read-only filesystem
	if (!fileGetDisk(fileName, &mapDisk) && mapDisk.readOnly)
	{
		error(_("Can't write %s:\nFilesystem is read-only"), fileName);
		return (status = ERR_NOWRITE);
	}

	if (graphics && nameField)
		// Get the map name
		windowComponentGetData(nameField, selectedMap->name, 32);

	for (count = 0; count < KEYBOARD_SCAN_CODES; count ++)
	{
		selectedMap->regMap[count] = keyArray[count].regMap;
		selectedMap->shiftMap[count] = keyArray[count].shiftMap;
		selectedMap->controlMap[count] = keyArray[count].controlMap;
		selectedMap->altGrMap[count] = keyArray[count].altGrMap;
	}

	status = fileStreamOpen(fileName, (OPENMODE_CREATE | OPENMODE_WRITE |
		OPENMODE_TRUNCATE), &theStream);
	if (status < 0)
	{
		error(_("Couldn't open file %s"), fileName);
		return (status);
	}

	status = fileStreamWrite(&theStream, sizeof(keyMap), (char *) selectedMap);

	fileStreamClose(&theStream);

	if (status < 0)
		error(_("Couldn't write file %s"), fileName);

	return (status);
}
Example #2
0
static int ChibiOSBFSWrite(GFILE *f, const void *buf, int size) {
	return fileStreamWrite(((FileStream *)f->obj), (uint8_t *)buf, size);
}