/*********************************************************************** * * * This software is part of the ast package * * Copyright (c) 1985-2009 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * * * * A copy of the License is available at * * http://www.opensource.org/licenses/cpl1.0.txt * * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * * * * Information and Software Systems Research * * AT&T Research * * Florham Park NJ * * * * Glenn Fowler * * David Korn * * Phong Vo * * * ***********************************************************************/ #include "FEATURE/uwin" #if !_UWIN || _lib_a64l void _STUB_a64l(){} #else #define a64l ______a64l #define l64a ______l64a #include #include #undef a64l #undef l64a #if defined(__EXPORT__) #define extern __EXPORT__ #endif static char letter[65] = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; extern long a64l(const char *str) { register unsigned long ul = 0; register int n = 6; register int c; register char *cp; for(n=0; n <6; n++) { if((c= *str++)==0) break; if(!(cp=strchr(letter,c))) break; ul |= (cp-letter)<< (6*n); } return((long)ul); } extern char *l64a(long l) { static char buff[7]; unsigned ul = ((unsigned long)l & 0xffffffff); register char *cp = buff; while(ul>0) { *cp++ = letter[ul&077]; ul >>= 6; } *cp = 0; return(buff); } #endif