/*
Copyright 2012 Wolfgang Thaller.
This file is part of Retro68.
Retro68 is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Retro68 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Retro68. If not, see .
*/
#include
#include
class PortSetter
{
GrafPtr save;
public:
PortSetter(GrafPtr port)
{
::GetPort(&save);
::SetPort(port);
}
~PortSetter()
{
::SetPort(save);
}
};
inline const unsigned char* operator"" _pstr(const char*p, size_t n)
{
unsigned char *pp = reinterpret_cast(const_cast(p));
pp[0] = n-1;
return pp;
}
#define PSTR(s) ("*" s ## _pstr)