|
Minishell 1.0
42 School Minishell Project - A simple shell implementation
|
Çok satırlı girdi tamamlama. Ayrıntılar...
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. | |
Ç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.
| 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.
| line | Kontrol edilecek satır |
input_completion.c dosyasının 40 numaralı satırında tanımlanmıştır.
Referans veren complete_input() ve main().
|
static |
İki satırı newline ile birleştirir.
old + "\n" + addition → yeni malloc'lanmış string old ve addition free edilmez (caller sorumlu)
| old | Mevcut satır |
| addition | Eklenecek yeni satır |
input_completion.c dosyasının 70 numaralı satırında tanımlanmıştır.
Referans veren 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.
| shell | Shell yapısı (sinyal kontrolü için) |
| line | Mevcut (eksik) girdi satırı |
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().