Minishell 1.0
42 School Minishell Project - A simple shell implementation
Yüklüyor...
Arıyor...
Eşleşme Yok
input_completion.c Dosya Referansı

Çok satırlı girdi tamamlama. Ayrıntılar...

#include "../../include/minishell.h"
#include <readline/readline.h>
#include <stdlib.h>
input_completion.c için içerme bağımlılık grafiği:

Bu dosyanın kaynak koduna git.

Fonksiyonlar

int is_input_complete (char *line)
 Girdi satırının tamamlanıp tamamlanmadığını kontrol eder.
static char * join_lines (char *old, char *addition)
 İki satırı newline ile birleştirir.
char * complete_input (t_shell *shell, char *line)
 Eksik girdiyi tamamlamak için ek satırlar okur.

Ayrıntılı tanımlama

Çok satırlı girdi tamamlama.

Kullanıcı ( açıp ) kapatmadığında veya tırnak kapatmadığında ek satır okuyarak girdiyi tamamlar.

Örnek: minishell$ (echo hello

echo world) → "(echo hello\necho world)" olarak birleştirilir

input_completion.c dosyasında tanımlanmıştır.

Fonksiyon Dokümantasyonu

◆ is_input_complete()

int is_input_complete ( char * line)

Girdi satırının tamamlanıp tamamlanmadığını kontrol eder.

Parantez ve tırnak dengesine bakar. Tüm açılan parantezler kapatılmış ve tırnaklar kapalıysa girdi tamamlanmıştır.

Parametreler
lineKontrol edilecek satır
Döndürdüğü değer
int 1 = tamamlanmış, 0 = eksik girdi var

input_completion.c dosyasının 40 numaralı satırında tanımlanmıştır.

Referans veren complete_input() ve main().

Bu fonksiyon için çağırılma şeması:

◆ join_lines()

char * join_lines ( char * old,
char * addition )
static

İki satırı newline ile birleştirir.

old + "\n" + addition → yeni malloc'lanmış string old ve addition free edilmez (caller sorumlu)

Parametreler
oldMevcut satır
additionEklenecek yeni satır
Döndürdüğü değer
char* Birleştirilmiş yeni string (malloc)

input_completion.c dosyasının 70 numaralı satırında tanımlanmıştır.

Referans veren complete_input().

Bu fonksiyon için çağırılma şeması:

◆ complete_input()

char * complete_input ( t_shell * shell,
char * line )

Eksik girdiyi tamamlamak için ek satırlar okur.

> promptu ile readline çağırır, okunan satırı mevcut girdiye ekler. Ctrl-D (NULL) gelirse NULL döner ve mevcut girdiyi free eder.

Parametreler
shellShell yapısı (sinyal kontrolü için)
lineMevcut (eksik) girdi satırı
Döndürdüğü değer
char* Tamamlanmış girdi veya NULL (Ctrl-D)

input_completion.c dosyasının 94 numaralı satırında tanımlanmıştır.

Referanslar is_input_complete() ve join_lines().

Referans veren main().

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması: