summaryrefslogtreecommitdiffstats
path: root/src/syntax_essentials.c
diff options
context:
space:
mode:
authorFilip Wandzio <contact@philw.dev>2026-03-01 17:47:44 +0100
committerFilip Wandzio <contact@philw.dev>2026-03-01 17:47:44 +0100
commit5e9480f817e08dc0eddaee23321effb24012120d (patch)
tree196d13fbcd19786108a51d75d5f99078ceba574a /src/syntax_essentials.c
parentbf0d77d7d448e964e9716d5af67c48f3d014f090 (diff)
downloadembedded_guardian-master.tar.gz
embedded_guardian-master.zip
Disable static linking for macos cross-compilationHEADmaster
Reformat code like a sane person Signed-off-by: Filip Wandzio <contact@philw.dev>
Diffstat (limited to 'src/syntax_essentials.c')
-rw-r--r--src/syntax_essentials.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/syntax_essentials.c b/src/syntax_essentials.c
index 419996a..eefdab1 100644
--- a/src/syntax_essentials.c
+++ b/src/syntax_essentials.c
@@ -1,5 +1,6 @@
1#include "syntax_essentials.h" 1#include "syntax_essentials.h"
2#include <stdio.h> 2#include <stdio.h>
3#include <string.h>
3 4
4/** 5/**
5 * 6 *
@@ -18,6 +19,7 @@ int validate_first_name(const char* first_name)
18 return 0; 19 return 0;
19 20
20 int length = 0; 21 int length = 0;
22
21 for (const char* p = first_name; *p; p++) { 23 for (const char* p = first_name; *p; p++) {
22 if ((*p >= 'A' && *p <= 'Z') || (*p >= 'a' && *p <= 'z')) 24 if ((*p >= 'A' && *p <= 'Z') || (*p >= 'a' && *p <= 'z'))
23 length++; 25 length++;
@@ -69,6 +71,7 @@ int validate_full_name(const char* full_name)
69 return 0; 71 return 0;
70 72
71 char first_name[64], last_name[64]; 73 char first_name[64], last_name[64];
74
72 if (sscanf(full_name, "%63s %63s", first_name, last_name) != 2) 75 if (sscanf(full_name, "%63s %63s", first_name, last_name) != 2)
73 return 0; 76 return 0;
74 77
@@ -86,6 +89,7 @@ int validate_index(const char* index)
86 return 0; 89 return 0;
87 90
88 int length = 0; 91 int length = 0;
92
89 for (const char* p = index; *p; p++) { 93 for (const char* p = index; *p; p++) {
90 if (*p >= '0' && *p <= '9') 94 if (*p >= '0' && *p <= '9')
91 length++; 95 length++;
@@ -106,8 +110,10 @@ int register_student(const char* full_name, const char* index)
106{ 110{
107 if (!validate_full_name(full_name)) 111 if (!validate_full_name(full_name))
108 return 1; 112 return 1;
113
109 if (!validate_index(index)) 114 if (!validate_index(index))
110 return 2; 115 return 2;
116
111 return 0; 117 return 0;
112} 118}
113 119
@@ -118,41 +124,37 @@ int register_student(const char* full_name, const char* index)
118 */ 124 */
119int name_length(const char* name) 125int name_length(const char* name)
120{ 126{
121 if (!name) 127 return name ? (int)strlen(name) : 0;
122 return 0;
123
124 int length = 0;
125 while (*name++)
126 length++;
127 return length;
128} 128}
129 129
130/** 130/**
131 * 131 *
132 * @param array 132 * @param array
133 * @param max_size 133 * @param max_length
134 * @param name 134 * @param name
135 * @param index 135 * @param index
136 * @return 136 * @return
137 */ 137 */
138int add_student(Student* array, 138int add_student(Student* array,
139 const int max_size, 139 const int max_length,
140 const char* name, 140 const char* name,
141 const char* index) 141 const char* index)
142{ 142{
143 if (!name || !index || !array) 143 if (!name || !index || !array)
144 return 2; 144 return 2;
145 145
146 int len = 0; 146 int length = 0;
147 while (len < max_size && array[len].full_name[0] != '\0') 147 while (length < max_length && array[length].full_name[0] != '\0')
148 len++; 148 length++;
149 149
150 if (len >= max_size) 150 if (length >= max_length)
151 return 1; 151 return 1;
152 152
153 snprintf( 153 snprintf(array[length].full_name,
154 array[len].full_name, sizeof(array[len].full_name), "%s", name); 154 sizeof(array[length].full_name),
155 snprintf(array[len].index, sizeof(array[len].index), "%s", index); 155 "%s",
156 name);
157 snprintf(array[length].index, sizeof(array[length].index), "%s", index);
156 return 0; 158 return 0;
157} 159}
158 160