diff -urNad nedit-5.7~/source/menu.c nedit-5.7/source/menu.c --- nedit-5.7~/source/menu.c 2017-02-05 03:15:41.000000000 +1100 +++ nedit-5.7/source/menu.c 2022-10-05 12:28:02.904780552 +1100 @@ -226,6 +226,7 @@ Cardinal *nArgs); static void closeAP(Widget w, XEvent *event, String *args, Cardinal *nArgs); static void saveAP(Widget w, XEvent *event, String *args, Cardinal *nArgs); +static void saveAllAP(Widget w, XEvent *event, String *args, Cardinal *nArgs); static void saveAsDialogAP(Widget w, XEvent *event, String *args, Cardinal *nArgs); static void saveAsAP(Widget w, XEvent *event, String *args, Cardinal *nArgs); @@ -439,6 +440,8 @@ {"open_selected", openSelectedAP}, {"close", closeAP}, {"save", saveAP}, + {"save-all", saveAllAP }, + {"save_all", saveAllAP }, {"save-as", saveAsAP}, {"save_as", saveAsAP}, {"save-as-dialog", saveAsDialogAP}, @@ -678,6 +681,7 @@ window->closeItem = createMenuItem(menuPane, "close", "Close", 'C', doActionCB, "close", SHORT); createMenuItem(menuPane, "save", "Save", 'S', doActionCB, "save", SHORT); + createMenuItem(menuPane, "saveAll", "Save All", 'l', doActionCB, "save-all", SHORT); createMenuItem(menuPane, "saveAs", "Save As...", 'A', doActionCB, "save_as_dialog", SHORT); createMenuItem(menuPane, "revertToSaved", "Revert to Saved", 'R', @@ -2834,6 +2838,17 @@ SaveWindow(window); } +static void saveAllAP(Widget w, XEvent *event, String *args, Cardinal *nArgs) +{ + WindowInfo *window; + + for (window = WindowList; window != NULL; window = window->next) { + if (CheckReadOnly(window)) + continue; + SaveWindow(window); + } +} + static void saveAsDialogAP(Widget w, XEvent *event, String *args, Cardinal *nArgs) {