summaryrefslogtreecommitdiffstats
path: root/src/c_input.c
blob: abe63148cf2d43ec8ebdd42452f41bfe6c8ac8e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   c_input.c                                          :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2020/02/14 17:19:27 by rbousset          #+#    #+#             */
/*   Updated: 2020/02/14 17:19:29 by rbousset         ###   ########lyon.fr   */
/*                                                                            */
/* ************************************************************************** */

#include <libft.h>
#include <stdio.h>
#include <stdlib.h>
#include <term.h>
#include <unistd.h>
#include <sys/ioctl.h>

#include "c_init.h"
#include "m_prompt.h"
#include "m_loop.h"
#include "s_struct.h"

uint16_t
    c_get_win_size(struct winsize *ws)
{

    if (!(ioctl(STDOUT_FILENO, TIOCGWINSZ, ws)))
        return (-1);
    if (!ws->ws_col)
        ws->ws_col = 80;
    if (!ws->ws_row)
        ws->ws_row = 80;
    return (1);
}


char *c_delchar(char *str, uint16_t cpos)
{
    char *dst;
    uint16_t i;
    uint16_t j;

    j = 0;
    i = 0;
    if (!(dst = malloc((ft_strlen(str)) * sizeof(char))))
        return (NULL);
    ft_printf("%d\n", cpos);
    while (j < (ft_strlen(str) - 1))
    {
        if (i == cpos)
            i++;
        dst[j] = str[i];
        i++;
        j++;
    }
    dst[j] = '\0';
    ft_printf("dst : [%s]\n", dst);
    return (dst);
}

/*  TODO: pos += 1 lettre / -1 si kl / +1 kr del*/

int16_t
    c_redraw_line(char *line, uint16_t cpos, t_msh *msh)
{
    uint32_t i;
    int16_t ret;

    i = 0;
    (void)cpos;
    tputs(tgetstr("cr", NULL), 1, ft_putchar);
    while (i < ft_strlen(msh->ps[0]))
    {
        tputs(tgetstr("nd", NULL), 1, ft_putchar);
        i++;
    }
    ret = ft_printf("%s, %hu", line, cpos) + ft_strlen(msh->ps[0]);
    return (ret);
}