def rl_on_new_line_with_prompt()
prompt_size = @rl_prompt.length + 1
init_line_structures(prompt_size)
lprompt = @local_prompt ? @local_prompt : @rl_prompt
@visible_line[0,lprompt.length] = lprompt
@invisible_line[0,lprompt.length] = lprompt
prompt_last_line = rl_prompt.rindex("\n")
if prompt_last_line.nil?
prompt_last_line = @rl_prompt
else
prompt_last_line = @rl_prompt[prompt_last_line..-1]
end
l = prompt_last_line.length
if !@rl_byte_oriented
@_rl_last_c_pos = _rl_col_width(prompt_last_line, 0, l)
else
@_rl_last_c_pos = l
end
real_screenwidth = @_rl_screenwidth + (@_rl_term_autowrap ? 0 : 1)
@_rl_last_v_pos = l / real_screenwidth
if (l > 0 && (l % real_screenwidth) == 0)
_rl_output_some_chars("\n",0,1)
end
@last_lmargin = 0
newlines = 0
i = 0
while (i <= l)
@_rl_vis_botlin = newlines
@vis_lbreaks[newlines] = i
newlines += 1
i += real_screenwidth
end
@vis_lbreaks[newlines] = l
@visible_wrap_offset = 0
@rl_display_prompt = @rl_prompt
return 0
end