1 /* putnum.c -- put a hex number on the output device. 2 * 3 * Copyright (c) 2002 Red Hat, Inc 4 * 5 * The authors hereby grant permission to use, copy, modify, distribute, 6 * and license this software and its documentation for any purpose, provided 7 * that existing copyright notices are retained in all copies and that this 8 * notice is included verbatim in any distributions. No written agreement, 9 * license, or royalty fee is required for any of the authorized uses. 10 * Modifications to this software may be copyrighted by their authors 11 * and need not follow the licensing terms described here, provided that 12 * the new terms are clearly indicated on the first page of each file where 13 * they apply. 14 */ 15 #include "glue.h" 16 17 /* 18 * putnum -- print a 32 bit number in hex 19 */ 20 void 21 _DEFUN (_putnum, (num), 22 unsigned int num) 23 { 24 char buf[9]; 25 int cnt; 26 char *ptr; 27 int digit; 28 29 ptr = buf; 30 for (cnt = 7 ; cnt >= 0 ; cnt--) { 31 digit = (num >> (cnt * 4)) & 0xf; 32 33 if (digit <= 9) 34 *ptr++ = (char) ('0' + digit); 35 else 36 *ptr++ = (char) ('a' - 10 + digit); 37 } 38 39 *ptr = (char) 0; 40 print (buf); 41 } 42