Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "dz5.h"
- /*Brisanje na osnovu e-mail adrese*/
- User *Delete(User *head, char *EmailCMP) {
- char c;
- User *CurrUser, *DelUser;
- Field *HeadField, *MailField;
- int k;
- k = strlen(EmailCMP);
- CurrUser = head;
- HeadField = CurrUser->values;
- while (CurrUser) {
- MailField = Search(HeadField, 5);
- if (!(strncmp(MailField->FieldValue, EmailCMP, k))) {
- /*Ako je element na kraju*/
- if ((CurrUser->previous) && (CurrUser->next == NULL)) {
- CurrUser->previous->next = CurrUser->next;
- free(CurrUser);
- CurrUser = NULL;
- continue;
- }
- /*Ako je element na pocetku*/
- if ((CurrUser->previous == NULL) && (CurrUser->next)) {
- head = head->next;
- head->previous = NULL;
- DelUser = CurrUser;
- CurrUser = head;
- if (CurrUser) HeadField = CurrUser->values;
- free(DelUser);
- continue;
- }
- /*Ako je jedini element*/
- if ((CurrUser->next == CurrUser->previous)) {
- head = NULL;
- free(CurrUser);
- CurrUser = NULL;
- continue;
- }
- /*Ako je element u sredini*/
- if ((CurrUser->next) && (CurrUser->previous)) {
- CurrUser->previous->next = CurrUser->next;
- CurrUser->next->previous = CurrUser->previous;
- DelUser = CurrUser;
- CurrUser = CurrUser->next;
- if (CurrUser) HeadField = CurrUser->values;
- free(DelUser);
- continue;
- }
- }
- CurrUser = CurrUser->next;
- if (CurrUser) HeadField = CurrUser->values;
- }
- return(head);
- }
- /*Potraga za odgovarajucim poljem*/
- Field *Search(Field *CurrField, int i) {
- Field *target;
- int j = 1;
- target = CurrField;
- while (target)
- if (j == i) return (target);
- else {
- target = target->next;
- j++;
- }
- }
- void Brisi(char *InputName, char *OutputName, User *head, Ldif_f *LDIFFields) {
- User *CurrUser;
- Field *CurrField, *HeadField;
- Ldif_f *CurrLDIF;
- if (InputName) free(InputName);
- if (OutputName) free(OutputName);
- if (head)
- while (head) {
- CurrUser = head;
- head = head->next;
- HeadField = CurrUser->values;
- while (HeadField) {
- CurrField = HeadField;
- HeadField = HeadField->next;
- free(CurrField->FieldValue);
- free(CurrField);
- }
- free(CurrUser);
- }
- if (LDIFFields)
- while (LDIFFields) {
- CurrLDIF = LDIFFields;
- LDIFFields = LDIFFields->next;
- free(CurrLDIF->FieldName);
- free(CurrLDIF);
- }
- }
Add Comment
Please, Sign In to add comment