gwenhywfar 5.10.1
buildsubcmd.c
Go to the documentation of this file.
1/***************************************************************************
2 begin : Mon Feb 08 2021
3 copyright : (C) 2021 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10#ifdef HAVE_CONFIG_H
11# include <config.h>
12#endif
13
14#include "gwenbuild/buildctx/buildsubcmd_p.h"
15
16#include <gwenhywfar/debug.h>
17#include <gwenhywfar/misc.h>
18
19
21
22
23
24
26{
28
31
32 return cmd;
33}
34
35
36
38{
39 if (origCmd==NULL)
40 return NULL;
41 else {
43
45 cmd->flags=origCmd->flags;
46 cmd->command=(origCmd->command)?strdup(origCmd->command):NULL;
47 cmd->arguments=(origCmd->arguments)?strdup(origCmd->arguments):NULL;
48 cmd->buildMessage=(origCmd->buildMessage)?strdup(origCmd->buildMessage):NULL;
49 cmd->depFilePath=(origCmd->depFilePath)?strdup(origCmd->depFilePath):NULL;
50
51 return cmd;
52 }
53
54}
55
56
57
59{
60 if (cmd) {
62 free(cmd->command);
63 free(cmd->arguments);
64 free(cmd->buildMessage);
65
67 }
68}
69
70
71
73{
74 return cmd->flags;
75}
76
77
78
80{
81 cmd->flags=f;
82}
83
84
85
87{
88 cmd->flags|=f;
89}
90
91
92
94{
95 cmd->flags&=~f;
96}
97
98
99
101{
102 return cmd->command;
103}
104
105
106
108{
109 free(cmd->command);
110 cmd->command=s?strdup(s):NULL;
111}
112
113
114
116{
117 return cmd->arguments;
118}
119
120
121
123{
124 free(cmd->arguments);
125 cmd->arguments=s?strdup(s):NULL;
126}
127
128
129
131{
132 return cmd->buildMessage;
133}
134
135
136
138{
139 free(cmd->buildMessage);
140 cmd->buildMessage=s?strdup(s):NULL;
141}
142
143
144
146{
147 return cmd->depFilePath;
148}
149
150
151
153{
154 free(cmd->depFilePath);
155 cmd->depFilePath=s?strdup(s):NULL;
156}
157
158
159
160
162{
163 GWEN_XMLNode_SetIntValue(xmlNode, "flags", cmd->flags);
164
165 if (cmd->command)
166 GWEN_XMLNode_SetCharValue(xmlNode, "command", cmd->command);
167
168 if (cmd->arguments)
169 GWEN_XMLNode_SetCharValue(xmlNode, "arguments", cmd->arguments);
170
171 if (cmd->buildMessage)
172 GWEN_XMLNode_SetCharValue(xmlNode, "buildMessage", cmd->buildMessage);
173
174 if (cmd->depFilePath)
175 GWEN_XMLNode_SetCharValue(xmlNode, "depFilePath", cmd->depFilePath);
176}
177
178
179
181{
182 GWB_BUILD_SUBCMD *cmd;
183 const char *s;
184
186
187 cmd->flags=GWEN_XMLNode_GetIntValue(xmlNode, "flags", 0);
188
189 s=GWEN_XMLNode_GetCharValue(xmlNode, "command", NULL);
191
192 s=GWEN_XMLNode_GetCharValue(xmlNode, "arguments", NULL);
194
195 s=GWEN_XMLNode_GetCharValue(xmlNode, "buildMessage", NULL);
197
198 s=GWEN_XMLNode_GetCharValue(xmlNode, "depFilePath", NULL);
200
201 return cmd;
202}
203
204
205
206GWB_BUILD_SUBCMD_LIST *GWB_BuildSubCmd_List_dup(const GWB_BUILD_SUBCMD_LIST *cmdList)
207{
208 GWB_BUILD_SUBCMD_LIST *newList;
209 GWB_BUILD_SUBCMD *cmd;
210
211 newList=GWB_BuildSubCmd_List_new();
212 cmd=GWB_BuildSubCmd_List_First(cmdList);
213 while(cmd) {
214 GWB_BuildSubCmd_List_Add(GWB_BuildSubCmd_dup(cmd), newList);
215 cmd=GWB_BuildSubCmd_List_Next(cmd);
216 }
217
218 return newList;
219}
220
221
222
#define NULL
Definition: binreloc.c:300
void GWB_BuildSubCmd_SetFlags(GWB_BUILD_SUBCMD *cmd, uint32_t f)
Definition: buildsubcmd.c:79
GWB_BUILD_SUBCMD_LIST * GWB_BuildSubCmd_List_dup(const GWB_BUILD_SUBCMD_LIST *cmdList)
Definition: buildsubcmd.c:206
uint32_t GWB_BuildSubCmd_GetFlags(const GWB_BUILD_SUBCMD *cmd)
Definition: buildsubcmd.c:72
void GWB_BuildSubCmd_SetBuildMessage(GWB_BUILD_SUBCMD *cmd, const char *s)
Definition: buildsubcmd.c:137
void GWB_BuildSubCmd_SetCommand(GWB_BUILD_SUBCMD *cmd, const char *s)
Definition: buildsubcmd.c:107
void GWB_BuildSubCmd_SetArguments(GWB_BUILD_SUBCMD *cmd, const char *s)
Definition: buildsubcmd.c:122
const char * GWB_BuildSubCmd_GetArguments(const GWB_BUILD_SUBCMD *cmd)
Definition: buildsubcmd.c:115
GWB_BUILD_SUBCMD * GWB_BuildSubCmd_new(void)
Definition: buildsubcmd.c:25
const char * GWB_BuildSubCmd_GetDepFilePath(const GWB_BUILD_SUBCMD *cmd)
Definition: buildsubcmd.c:145
void GWB_BuildSubCmd_DelFlags(GWB_BUILD_SUBCMD *cmd, uint32_t f)
Definition: buildsubcmd.c:93
void GWB_BuildSubCmd_free(GWB_BUILD_SUBCMD *cmd)
Definition: buildsubcmd.c:58
GWB_BUILD_SUBCMD * GWB_BuildSubCmd_fromXml(GWEN_XMLNODE *xmlNode)
Definition: buildsubcmd.c:180
void GWB_BuildSubCmd_AddFlags(GWB_BUILD_SUBCMD *cmd, uint32_t f)
Definition: buildsubcmd.c:86
void GWB_BuildSubCmd_toXml(const GWB_BUILD_SUBCMD *cmd, GWEN_XMLNODE *xmlNode)
Definition: buildsubcmd.c:161
GWB_BUILD_SUBCMD * GWB_BuildSubCmd_dup(const GWB_BUILD_SUBCMD *origCmd)
Definition: buildsubcmd.c:37
const char * GWB_BuildSubCmd_GetCommand(const GWB_BUILD_SUBCMD *cmd)
Definition: buildsubcmd.c:100
void GWB_BuildSubCmd_SetDepFilePath(GWB_BUILD_SUBCMD *cmd, const char *s)
Definition: buildsubcmd.c:152
const char * GWB_BuildSubCmd_GetBuildMessage(const GWB_BUILD_SUBCMD *cmd)
Definition: buildsubcmd.c:130
struct GWB_BUILD_SUBCMD GWB_BUILD_SUBCMD
Definition: buildsubcmd.h:16
#define GWEN_LIST_FINI(t, element)
Definition: list1.h:474
#define GWEN_LIST_FUNCTIONS(t, pr)
Definition: list1.h:366
#define GWEN_LIST_INIT(t, element)
Definition: list1.h:465
#define GWEN_FREE_OBJECT(varname)
Definition: memory.h:61
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:55
void GWEN_XMLNode_SetIntValue(GWEN_XMLNODE *n, const char *name, int value)
Definition: xml.c:940
int GWEN_XMLNode_GetIntValue(const GWEN_XMLNODE *n, const char *name, int defValue)
Definition: xml.c:923
const char * GWEN_XMLNode_GetCharValue(const GWEN_XMLNODE *n, const char *name, const char *defValue)
Definition: xml.c:812
void GWEN_XMLNode_SetCharValue(GWEN_XMLNODE *n, const char *name, const char *value)
Definition: xml.c:897
struct GWEN__XMLNODE GWEN_XMLNODE
Definition: xml.h:156