mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
Minimal shell of PuTTYgen for Mac. No actual PuTTYgen-specific code there
yet, but an absence of PuTTY-specific code. [originally from svn r2842]
This commit is contained in:
119
mac/mac.c
119
mac/mac.c
@ -1,4 +1,4 @@
|
||||
/* $Id: mac.c,v 1.47 2003/02/07 01:38:12 ben Exp $ */
|
||||
/* $Id: mac.c,v 1.48 2003/02/12 23:53:15 ben Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1999 Ben Harris
|
||||
* All rights reserved.
|
||||
@ -63,18 +63,6 @@
|
||||
#include "ssh.h"
|
||||
#include "mac.h"
|
||||
|
||||
#if TARGET_API_MAC_CARBON
|
||||
/*
|
||||
* This is used by (I think) CarbonStdCLib, but only exists in
|
||||
* CarbonLib 1.1 and later. Muppets. Happily, it's documented to be
|
||||
* a synonym for NULL.
|
||||
*/
|
||||
#include <CFBase.h>
|
||||
const CFAllocatorRef kCFAllocatorDefault = NULL;
|
||||
#else
|
||||
QDGlobals qd;
|
||||
#endif
|
||||
|
||||
Session *sesslist;
|
||||
|
||||
static int cold = 1;
|
||||
@ -773,32 +761,6 @@ void cleanup_exit(int status)
|
||||
exit(status);
|
||||
}
|
||||
|
||||
void fatalbox(char *fmt, ...) {
|
||||
va_list ap;
|
||||
Str255 stuff;
|
||||
|
||||
va_start(ap, fmt);
|
||||
/* We'd like stuff to be a Pascal string */
|
||||
stuff[0] = vsprintf((char *)(&stuff[1]), fmt, ap);
|
||||
va_end(ap);
|
||||
ParamText(stuff, NULL, NULL, NULL);
|
||||
StopAlert(128, NULL);
|
||||
cleanup_exit(1);
|
||||
}
|
||||
|
||||
void modalfatalbox(char *fmt, ...) {
|
||||
va_list ap;
|
||||
Str255 stuff;
|
||||
|
||||
va_start(ap, fmt);
|
||||
/* We'd like stuff to be a Pascal string */
|
||||
stuff[0] = vsprintf((char *)(&stuff[1]), fmt, ap);
|
||||
va_end(ap);
|
||||
ParamText(stuff, NULL, NULL, NULL);
|
||||
StopAlert(128, NULL);
|
||||
cleanup_exit(1);
|
||||
}
|
||||
|
||||
/* This should only kill the current session, not the whole application. */
|
||||
void connection_fatal(void *fontend, char *fmt, ...) {
|
||||
va_list ap;
|
||||
@ -906,85 +868,6 @@ void platform_get_x11_auth(char *display, int *proto,
|
||||
/* SGT: I have no idea whether Mac X servers need anything here. */
|
||||
}
|
||||
|
||||
Filename filename_from_str(const char *str)
|
||||
{
|
||||
Filename ret;
|
||||
Str255 tmp;
|
||||
|
||||
/* XXX This fails for filenames over 255 characters long. */
|
||||
c2pstrcpy(tmp, str);
|
||||
FSMakeFSSpec(0, 0, tmp, &ret.fss);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert a filename to a string for display purposes.
|
||||
* See pp 2-44--2-46 of IM:Files
|
||||
*
|
||||
* XXX static storage considered harmful
|
||||
*/
|
||||
const char *filename_to_str(const Filename *fn)
|
||||
{
|
||||
CInfoPBRec pb;
|
||||
Str255 dirname;
|
||||
OSErr err;
|
||||
static char *path = NULL;
|
||||
char *newpath;
|
||||
|
||||
if (path != NULL) sfree(path);
|
||||
path = smalloc(fn->fss.name[0]);
|
||||
p2cstrcpy(path, fn->fss.name);
|
||||
pb.dirInfo.ioNamePtr = dirname;
|
||||
pb.dirInfo.ioVRefNum = fn->fss.vRefNum;
|
||||
pb.dirInfo.ioDrParID = fn->fss.parID;
|
||||
pb.dirInfo.ioFDirIndex = -1;
|
||||
do {
|
||||
pb.dirInfo.ioDrDirID = pb.dirInfo.ioDrParID;
|
||||
err = PBGetCatInfoSync(&pb);
|
||||
|
||||
/* XXX Assume not A/UX */
|
||||
newpath = smalloc(strlen(path) + dirname[0] + 2);
|
||||
p2cstrcpy(newpath, dirname);
|
||||
strcat(newpath, ":");
|
||||
strcat(newpath, path);
|
||||
sfree(path);
|
||||
path = newpath;
|
||||
} while (pb.dirInfo.ioDrDirID != fsRtDirID);
|
||||
return path;
|
||||
}
|
||||
|
||||
int filename_equal(Filename f1, Filename f2)
|
||||
{
|
||||
|
||||
return f1.fss.vRefNum == f2.fss.vRefNum &&
|
||||
f1.fss.parID == f2.fss.parID &&
|
||||
f1.fss.name[0] == f2.fss.name[0] &&
|
||||
memcmp(f1.fss.name + 1, f2.fss.name + 1, f1.fss.name[0]) == 0;
|
||||
}
|
||||
|
||||
int filename_is_null(Filename fn)
|
||||
{
|
||||
|
||||
return fn.fss.vRefNum == 0 && fn.fss.parID == 0 && fn.fss.name[0] == 0;
|
||||
}
|
||||
|
||||
FILE *f_open(Filename fn, char const *mode)
|
||||
{
|
||||
short savevol;
|
||||
long savedir;
|
||||
char tmp[256];
|
||||
FILE *ret;
|
||||
|
||||
HGetVol(NULL, &savevol, &savedir);
|
||||
if (HSetVol(NULL, fn.fss.vRefNum, fn.fss.parID) == noErr) {
|
||||
p2cstrcpy(tmp, fn.fss.name);
|
||||
ret = fopen(tmp, mode);
|
||||
} else
|
||||
ret = NULL;
|
||||
HSetVol(NULL, savevol, savedir);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* c-file-style: "simon"
|
||||
|
Reference in New Issue
Block a user