📄 envz_merge.c
字号:
/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. * * Permission to use, copy, modify, and distribute this software * is freely granted, provided that this notice is preserved. */#include <errno.h>#include <sys/types.h>#include <string.h>#include <stdlib.h>#include <argz.h>#include <envz.h>error_t_DEFUN (envz_merge, (envz, envz_len, envz2, envz2_len, override), char **envz _AND size_t *envz_len _AND const char *envz2 _AND size_t envz2_len _AND int override){ char *entry = NULL; char *name_str = NULL; char *val_str = NULL; char *name_iter = NULL; int retval = 0; while((entry = argz_next((char *)envz2, envz2_len, entry)) && !retval) { if (!override) { name_str = strdup (entry); name_iter = strchr(name_str, '='); if(name_iter) *name_iter = '\0'; if(!envz_entry(*envz, *envz_len, name_str)) { retval = argz_add(envz, envz_len, entry); } free(name_str); } else { name_str = strdup (entry); name_iter = strchr(name_str, '='); if(name_iter) { *name_iter = '\0'; val_str = name_iter + 1; } else { val_str = NULL; } retval = envz_add(envz, envz_len, name_str, val_str); } } return retval;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -