{"id":28308111,"url":"https://github.com/djimenezweb/libft","last_synced_at":"2025-10-04T22:12:24.568Z","repository":{"id":288233851,"uuid":"962038035","full_name":"djimenezweb/libft","owner":"djimenezweb","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-25T21:59:32.000Z","size":2380,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-25T23:44:00.623Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djimenezweb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-07T14:53:21.000Z","updated_at":"2025-09-25T21:59:36.000Z","dependencies_parsed_at":"2025-06-21T02:33:44.787Z","dependency_job_id":"d0d558f4-2d73-4ee9-be72-586a68479cee","html_url":"https://github.com/djimenezweb/libft","commit_stats":null,"previous_names":["djimenezweb/libft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/djimenezweb/libft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djimenezweb%2Flibft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djimenezweb%2Flibft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djimenezweb%2Flibft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djimenezweb%2Flibft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djimenezweb","download_url":"https://codeload.github.com/djimenezweb/libft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djimenezweb%2Flibft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278381685,"owners_count":25977419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-24T07:08:58.770Z","updated_at":"2025-10-04T22:12:24.563Z","avatar_url":"https://github.com/djimenezweb.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Libft\n\n## Funciones de `libc`\n\n```c\nint      ft_isalpha(int c);\nint      ft_isdigit(int c);\nint      ft_isalnum(int c);\nint      ft_isascii(int c);\nint      ft_isprint(int c);\nint      ft_isspace(int c);\nsize_t   ft_strlen(const char *str);\nvoid    *ft_memset(void *s, int c, size_t n);\nvoid     ft_bzero(void *s, size_t n);\nvoid    *ft_memcpy(void *dest, const void *src, size_t n);\nvoid    *ft_memmove(void *dest, const void *src, size_t n);\nsize_t   ft_strlcpy(char *dst, const char *src, size_t size);\nsize_t   ft_strlcat(char *dst, const char *src, size_t size);\nint      ft_toupper(int c);\nint      ft_tolower(int c);\nchar    *ft_strchr(char *str, int c);\nchar    *ft_strrchr(char *str, int c);\nint      ft_strncmp(const char *s1, const char *s2, size_t n);\nvoid    *ft_memchr(const void *s, int c, size_t n);\nint      ft_memcmp(const void *s1, const void *s2, size_t n);\nchar    *ft_strnstr(const char *big, const char *little, size_t len);\nint      ft_atoi(const char *str);\nvoid    *ft_calloc(size_t nelem, size_t size);\nchar    *ft_strdup(const char *str);\n```\n\n## Funciones adicionales\n\n```c\nchar    *ft_substr(char const *s, unsigned int start, size_t len);\nchar    *ft_strjoin(char const *s1, char const *s2);\nchar    *ft_strtrim(char const *s1, char const *set);\nchar   **ft_split(char const *s, char c);\nchar    *ft_itoa(int n);\nchar    *ft_strmapi(char const *s, char (*f)(unsigned int, char));\nvoid     ft_striteri(char *s, void (*f)(unsigned int, char*));\nvoid     ft_putchar_fd(char c, int fd);\nvoid     ft_putstr_fd(char *s, int fd);\nvoid     ft_putendl_fd(char *s, int fd);\nvoid     ft_putnbr_fd(int n, int fd);\n```\n\n## Libft Bonus\n\nLas funciones bonus están aprobadas por los tests de Francinette, pero no se enviaron al proyecto final.\n\n```c\nt_list  *ft_lstnew(void *content);\nvoid     ft_lstadd_front(t_list **lst, t_list *new);\nint      ft_lstsize(t_list *lst);\nt_list  *ft_lstlast(t_list *lst);\nvoid     ft_lstadd_back(t_list **lst, t_list *new);\nvoid     ft_lstdelone(t_list *lst, void (*del)(void *));\nvoid     ft_lstclear(t_list **lst, void (*del)(void *));\nvoid     ft_lstiter(t_list *lst, void (*f)(void *));\nt_list  *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *));\n```\n\n## Get Next Line\n```c\nchar    *get_next_line(int fd);\n```\n\n## ft_printf\n```c\nint      ft_printf(char const *str, ...);\nssize_t  ft_putchar_r(char c);\nssize_t  ft_putstr_r(char *s);\nssize_t  ft_putnbr_r(int n);\nssize_t  ft_putnbr_u_r(unsigned int n);\nssize_t  ft_puthex_int_r(unsigned int num, char *base);\nssize_t  ft_putptr_r(void *ptr);\n```\n\n## Bugs\n\n### ft_split.c\n\nEl test `francinette --strict` avisa de un fallo de doble free en `ft_split.c`:\n\n```\nYou are trying to free a pointer that was already freed\n```\n\n### get_next_line.c\nEl test `francinette --strict` avisa del fallo `4_NULL_CHECK.KO` al hacer el test sobre `empty.txt` con distintos tamaños de buffer.\n\n```\nempty.txt           : 1.OK 2.OK 3_LEAKS.OK 4_NULL_CHECK.KO \nSegmentation fault (core dumped)\n```\n\n## Repositorios originales\n\u003cdetails\u003e\n\u003csummary\u003eLibft\u003c/summary\u003e\n\n```\ngit@vogsphere-v2.42madrid.com:vogsphere/intra-uuid-a3b8dc3e-b88f-4c41-a80e-0b88c37fa243-6489439-danielji\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGet Next Line\u003c/summary\u003e\n\n```\ngit@vogsphere-v2.42madrid.com:vogsphere/intra-uuid-f0678712-de9b-492e-baef-03b406eb120e-6523107-danielji\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eft_printf\u003c/summary\u003e\n\n```\ngit@vogsphere-v2.42madrid.com:vogsphere/intra-uuid-b4a275c9-93f9-43a0-9ecd-8bf8c9d1621f-6569925-danielji\n```\n\u003c/details\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjimenezweb%2Flibft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjimenezweb%2Flibft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjimenezweb%2Flibft/lists"}