⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xlat.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lint#ifdef SunB1static	char		mls_sccsid[] = "@(#)xlat.c 1.1 92/07/30 SMI; SunOS MLS";#elsestatic	char		sccsid[] = "@(#)xlat.c 1.1 92/07/30 SMI";#endif /* SunB1 */#endif lint/* *	Copyright (c) 1989 Sun Microsystems, Inc. *//* *	Name:		xlat.c * *	Description:	This file contains the data file translation *		routines for suninstall. */#include <stdio.h>#include <string.h>#include "install.h"/* *	Name:		xlat_code() * *	Description:	Translate the data in the n'th element in 'list' *		into a string.  If the data does not have a translation *		routine, then assume it is a string and copy it. */char *xlat_code(list, n)	key_xlat	list[];	int		n;{	static	char		buf[BUFSIZ];	/* output buffer */	/* 	 *	If no translation is needed, then just copy 	 *	the code value to a safe place. 	 */	if (list[n].code_func == NULL) {		(void) strcpy(buf, list[n].data_p);		return(buf);	}	/*	 *	Need to translate the code value:	 */	return((list[n].code_func)(list[n].data_p));} /* end xlat_code() *//* *	Name:		xlat_key() * *	Description:	Translate data buffer 'key' using the n'th element *		in 'list'.  Return 0 if the key does not match or the *		value does not translate.  Return 1 if the key matches *		and the value translates or if the key matches and the *		value is just a string with no translation needed. */intxlat_key(buf, list, n)	char *		buf;	key_xlat	list[];	int		n;{	char		key_name[SMALL_STR];	/* key name */	char		key_value[MAXPATHLEN];	/* key value */	char *		ptr;			/* scratch char pointer */	delete_blanks(buf);						/* break out key name */	bzero(key_name, sizeof(key_name));	for (ptr = key_name; *buf != '='; ptr++, buf++)		*ptr = *buf;						/* break out key value */	bzero(key_value, sizeof(key_value));	for (ptr = key_value, buf++; *buf != '\0'; ptr++, buf++)		*ptr = *buf;	/*	 *	Not the right key	 */	if (strcmp(key_name, list[n].key_name) != 0)		return(0);	/* 	 *	If no translation is needed, then just copy 	 *	the key value to a safe place. 	 */	if (list[n].key_func == NULL) {		(void) strcpy(list[n].data_p, key_value);		return(1);	}	/*	 *	Need to translate the key value:	 */	return((list[n].key_func)(key_value, list[n].data_p));} /* end xlat_key() */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -