On Mon,  5 Jan 2026 14:35:29 +0300
Kerem Aksu <[email protected]> wrote:

> Control+L should clear screen and redisplay prompt at the top
> line. DPDK rdline library will not change anything on the screen when
> fed with Control+L.  When prompt is lost after too many text written
> to the terminal, users will press Control+L to clear screen and put
> the prompt to the top line. This is expected behavior in bash(1) or
> applications that are using readline(3). Updated to behave as users
> expected.
> 
> Signed-off-by: Kerem Aksu <[email protected]>
> ---

Overall looks correct. AI review had some feedback.
I would add a release note just for clarity


### Summary
This patch modifies the Ctrl+L behavior in the cmdline library to clear the 
entire screen and redisplay the prompt at the top, matching standard 
bash/readline behavior. Currently, Ctrl+L only redisplays on the current line.

---

### Commit Message ✅

| Check | Status | Notes |
|-------|--------|-------|
| Subject ≤60 chars | ✅ | 40 characters |
| Correct prefix | ✅ | `cmdline:` is correct for lib/cmdline |
| Imperative mood | ✅ | "update" |
| No trailing period | ✅ | |
| Lowercase | ✅ | |
| Body wrapped ≤75 chars | ✅ | |
| Body doesn't start with "It" | ✅ | |
| Signed-off-by | ✅ | Present |
| Acked-by/Tested-by | ✅ | Both present |

---

### Code Review

**Overall Assessment**: The approach is sound. Refactoring `rdline_redisplay` 
into a parameterized `rdline_reprint` static function maintains API 
compatibility while adding the new clear-screen behavior.

#### Errors (must fix)

**1. Extra whitespace after comma** (style violation)

Lines 126-129 in the patch have double spaces:
```c
rdline_puts(rdl,  vt100_clear_screen);   /* two spaces after comma */
rdline_puts(rdl,  vt100_homecursor);     /* two spaces after comma */
rdline_puts(rdl,  vt100_home);           /* two spaces after comma */
```

Should be:
```c
rdline_puts(rdl, vt100_clear_screen);
rdline_puts(rdl, vt100_homecursor);
rdline_puts(rdl, vt100_home);
```

#### Warnings (should consider)

**2. Consider order of escape sequences**

The current implementation sends `vt100_clear_screen` then `vt100_homecursor`. 
Some terminals may already position cursor at home after clear screen (ESC 
[2J), but the explicit `ESC [H` is safer for portability. This is fine as-is.

**3. Potential documentation update**

Consider whether the programmer's guide (`doc/guides/prog_guide/cmdline.rst`) 
or API documentation needs updating to reflect the changed Ctrl+L behavior. 
Users familiar with the old behavior might notice the change.

#### Info (observations)

**4. Good API preservation**

The `RTE_EXPORT_SYMBOL(rdline_redisplay)` is correctly maintained, and the 
public function signature is unchanged. This preserves backward compatibility 
for any external callers.

**5. New VT100 constant placement**

The new `vt100_homecursor` is added in a reasonable location in 
`cmdline_vt100.h`, near related cursor movement sequences.

**6. Existing style quirks preserved**

The file already uses `for (i=0 ; i<...` style (spaces around semicolons but 
not around `=` and `<`). The patch follows this existing convention, which is 
correct.

---

### Verdict

**Needs revision** - Fix the double-space style issue, then this is ready.

The change itself is a sensible UX improvement that aligns DPDK's command line 
behavior with user expectations from bash and readline. The implementation is 
clean and maintains API compatibility.

Reply via email to