[Solved] Phi_prompt library: select_list printing gibberish?

Sorry it’s the first time I post here I’m hoping my post is formatted correctly

I am trying to understand the functions of phi_prompt library but I have some trouble with the select_list function. Here is my code:

#include <LiquidCrystal.h>
#include <phi_prompt.h>
#include <phi_interfaces.h>
#include <avr/pgmspace.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);    // My LCD is wired slightly differently
#define lcd_rows 2
#define lcd_columns 16

// Phi_interface initialization
#define buttons_per_column 5   // Each Analog pin has 5 buttons with resistors
#define buttons_per_row 1     // 1 analog pin in use
byte keypad_type=Analog_keypad;
char mapping[]={'R','U','D','L','S'}; // This is an analog keypad.
byte pins[]={0}; // The pin numbers are analog pin numbers.
int values[]={0, 98, 255, 408, 638}; //analogRead values returned for each button pressed in the order of Right, Up, Down, Left, Select
phi_analog_keypads keypad(mapping, pins, values, buttons_per_row, buttons_per_column);    // keypad created to be fed into Phi_prompt

// Phi_prompt initialization
multiple_button_input *keypads[]={&keypad,0};  // feed keypad from Phi_interface into Phi_prompt
char up_keys[]={"U"}; ///< All keys that act as up. Must use double quotations.
char down_keys[]={"D"}; ///< All keys that act as down. Must use double quotations.
char left_keys[]={"L"}; ///<All keys that act as left. Must use double quotations.
char right_keys[]={"R"}; ///< All keys that act as right. Must use double quotations.
char select_keys[]={"S"}; ///< All keys that act as enter. Must use double quotations.
char * function_keys[]={up_keys,down_keys,left_keys,right_keys,select_keys};

void setup() {
  analogWrite(backLightPin,backLightLevel);    // Set backlight level to 100
  lcd.begin(lcd_columns,lcd_rows);
  Serial.begin(9600);
  init_phi_prompt(&lcd, keypads, function_keys, lcd_columns, lcd_rows, '~');    // ~ means highlighted items will be designated with a "->"
}

void loop() {
 // select_list
  PROGMEM const char pasta_00[]="Spaghetti";
  PROGMEM const char pasta_01[]="Rotelle"; 
  PROGMEM const char pasta_02[]="Rotini"; 
  PROGMEM const char pasta_03[]="Fettuccine"; 
  PROGMEM const char pasta_04[]="Lasagne"; 
  PROGMEM const char pasta_05[]="Penne"; 
  PROGMEM const char pasta_06[]="Rigatoni"; 
  PROGMEM const char *pasta_items[]= {pasta_00,pasta_01,pasta_02,pasta_03,pasta_04,pasta_05,pasta_06};

  //for (int i = 0; i <= 6; i++)
  //{
  //  Serial.println(pasta_items[i]);  // <- These all printed correctly
  //}
  lcd.clear();
  lcd.print(pasta_items[1]);     // <- This printed correctly too
  int user_choice=0;                // This will store the item number (0-6) the user chooses. 
  phi_prompt_struct myListInput;    // This struct stores information for library functions.
  myListInput.ptr.list=(char**)&pasta_items;    // Please follow closely the syntax..
  myListInput.low.i=0;              // Selection returns here. Default item highlighted on the list is #0, the first item on the list. 
  myListInput.high.i=6;             // Last item on the list is size of the list - 1. 
  myListInput.width=10;              // Width of each list item. Longer items are truncated or scrolled.
  myListInput.col=0;                // Display the list at column 0 
  myListInput.row=0;                // Display the list at row 0 
  myListInput.step.c_arr[0]=2;      // Display the list as two rows 
  myListInput.step.c_arr[1]=1;      // Display the list as two columns 
  myListInput.option=1;             // See render_list() for details of how to set this option.
  lcd.clear();
  select_list(&myListInput);

  lcd.clear();
  lcd.print(pasta_items[myListInput.low.i]);  // <- this printed correctly too
  delay(3000);
}

Attached is the output I got:

Selection returns the correct value. It is just not printing the list correctly. Am I just not passing the struct to the library correctly? Or are there changes to the IDE recently that broke the library? Thanks!