Muitos detalhes
Ontem continuei estudando sobre o printf. Ele faz varias conversions que a gente vai ter que implementar, e para cada conversions ainda temos que considerar as flags (exemplo: %06.2f, %15.10s e %*d). Inicialmente vou estruturar meu codigo em duas partes:
Vou verificar que o numero de argumentos passados corresponde ao numero de
conversionsna string de formato, e retornar erro (-1) caso contrario.Perocrrer a string de formato, escrevendo cada caracter ate chegar numa
conversion. Para cadaconversionvou gerar um metodo que cria uma string alocada e devidamente formatada: dai eh so escrever a string, adicionar o length na contagem de characteres e liberar a memoria.
Escolhi fazer assim por que eh simples, vou allocar o minimo de memoria possivel (evitar memory leaks), e consigo reaproveitar varias funcoes do libft. Me basieie na secao 7.3 do The Ansi C Programming Language, onde eles dao um exemplo do printf com essa estrutura.
Minha ideia original era fazer com split e join na string de formato, que requeriria fazer umas verificacoes loucas entre strings, alem da questao da memoria.
Tambem aprendi sobre como fazer verificacao de tipagem em C. Estou em duvida se precisamos verificar se os tipos dos parametros correspondem ao da string de formato: Preciso retornar erro em ft_printf("%s", 42);?
Por fim, adicionei github actions no meu projeto, que automaticamente rodam os testers em ambiente macos sempre que eu dou push na master. Me basiei neste repositorio:
Hoje vou continuar o printf, comecando pelo makefile.
Meu maior obstacleo ainda eh o tempo de retry do netwhat.