This is vms.c in view mode; [Download] [Up]
/* * Project : tin - a Usenet reader * Module : vms.c * Author : Andrew Greer * Created : 19-06-95 * Updated : 19-06-95 * Notes : * Copyright : (c) Copyright 1991-95 by Iain Lea & Andrew Greer * You may freely copy or redistribute this software, * so long as there is no profit made from its use, sale * trade or reproduction. You may not change this copy- * right notice, and it must be included in any copy made */ #include "config.h" #include "features.h" #ifdef VMS #include <stdio.h> #include <ctype.h> #include <descrip.h> #include <iodef.h> #include <ssdef.h> #include <uaidef.h> #include <string.h> #include <stdlib.h> #include <file.h> #ifdef __GNUC__ #include <sys$routines.h> #else #include <starlet.h> #endif char * getlogin (void) { char *p; if ((p = getenv ("USER")) == NULL) { return ( (char *) 0); } return (p); } struct dsc$descriptor *c$dsc(char *c$_str) { static struct dsc$descriptor c$_tmpdesc; c$_tmpdesc.dsc$w_length = strlen(c$_str); c$_tmpdesc.dsc$b_dtype = DSC$K_DTYPE_T; c$_tmpdesc.dsc$b_class = DSC$K_CLASS_S; c$_tmpdesc.dsc$a_pointer= c$_str; return(&c$_tmpdesc); } char *get_uaf_fullname() { static char uaf_owner[40]; char loc_username[13]; int i, pos; struct item_list { short bl, ic; char *ba; short *rl; } getuai_itmlist[] = { { sizeof(uaf_owner), UAI$_OWNER, &uaf_owner[0], 0 }, { 0, 0, 0, 0} }; strcpy(loc_username, getenv("USER")); for (i = strlen(loc_username); i < 12; ++i) loc_username[i] = ' '; loc_username[i] = '\0'; sys$getuai(0,0,c$dsc(loc_username),getuai_itmlist,0,0,0); pos=1; if (uaf_owner[pos]=='|') pos += 3; while (uaf_owner[pos] == ' ') pos++; uaf_owner[uaf_owner[0] + 1] = '\0'; return(uaf_owner + pos); } /* Converts "TOD_MCQUILLIN" to "Tod McQuillin" */ char *fix_fullname(char *p) { int cc = 0; char *q = p; while (*q) { if (cc > 0) { if (cc > 1 && *(q-1) == 'c' && *(q-2) == 'M') { if (islower(*q)) *q = toupper(*q); } else if (isupper(*q)) *q = tolower(*q); } else if (cc == 0) if (islower(*q)) *q = toupper(*q); if (*q == '_' || *q == ' ') { *q = ' '; cc = 0; } else cc++; q++; } return (p); } FILE * popen ( char *command, char *mode) { return ((FILE *) 0); } void pclose (FILE *pipe) { return; } void tzset(void) { return; } #endif /* VMS */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.