PHP 8.1.33
Preview: cursesm.h Size: 19.22 KB
/usr/include/cursesm.h

// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
 * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc.              *
 *                                                                          *
 * Permission is hereby granted, free of charge, to any person obtaining a  *
 * copy of this software and associated documentation files (the            *
 * "Software"), to deal in the Software without restriction, including      *
 * without limitation the rights to use, copy, modify, merge, publish,      *
 * distribute, distribute with modifications, sublicense, and/or sell       *
 * copies of the Software, and to permit persons to whom the Software is    *
 * furnished to do so, subject to the following conditions:                 *
 *                                                                          *
 * The above copyright notice and this permission notice shall be included  *
 * in all copies or substantial portions of the Software.                   *
 *                                                                          *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
 * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
 *                                                                          *
 * Except as contained in this notice, the name(s) of the above copyright   *
 * holders shall not be used in advertising or otherwise to promote the     *
 * sale, use or other dealings in this Software without prior written       *
 * authorization.                                                           *
 ****************************************************************************/

/****************************************************************************
 *   Author: Juergen Pfeifer, 1997                                          *
 ****************************************************************************/

// $Id: cursesm.h,v 1.30 2014/08/09 22:06:18 Adam.Jiang Exp $

#ifndef NCURSES_CURSESM_H_incl
#define NCURSES_CURSESM_H_incl 1

#include <cursesp.h>

extern "C" {
#  include <menu.h>
}
//
// -------------------------------------------------------------------------
// This wraps the ITEM type of <menu.h>
// -------------------------------------------------------------------------
//
class NCURSES_IMPEXP NCursesMenuItem
{
  friend class NCursesMenu;

protected:
  ITEM *item;

  inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
    if (err != E_OK)
      THROW(new NCursesMenuException (err));
  }

public:
  NCursesMenuItem (const char* p_name     = NULL,
		   const char* p_descript = NULL)
    : item(0)
  {
    item = p_name ? ::new_item (p_name, p_descript) : STATIC_CAST(ITEM*)(0);
    if (p_name && !item)
      OnError (E_SYSTEM_ERROR);
  }
  // Create an item. If you pass both parameters as NULL, a delimiting
  // item is constructed which can be used to terminate a list of
  // NCursesMenu objects.

  NCursesMenuItem& operator=(const NCursesMenuItem& rhs)
  {
    if (this != &rhs) {
      *this = rhs;
    }
    return *this;
  }

  NCursesMenuItem(const NCursesMenuItem& rhs)
    : item(0)
  {
    (void) rhs;
  }

  virtual ~NCursesMenuItem ();
  // Release the items memory

  inline const char* name () const {
    return ::item_name (item);
  }
  // Name of the item

  inline const char* description () const {
    return ::item_description (item);
  }
  // Description of the item

  inline int (index) (void) const {
    return ::item_index (item);
  }
  // Index of the item in an item array (or -1)

  inline void options_on (Item_Options opts) {
    OnError (::item_opts_on (item, opts));
  }
  // Switch on the items options

  inline void options_off (Item_Options opts) {
    OnError (::item_opts_off (item, opts));
  }
  // Switch off the item's option

  inline Item_Options options () const {
    return ::item_opts (item);
  }
  // Retrieve the items options

  inline void set_options (Item_Options opts) {
    OnError (::set_item_opts (item, opts));
  }
  // Set the items options

  inline void set_value (bool f) {
    OnError (::set_item_value (item,f));
  }
  // Set/Reset the items selection state

  inline bool value () const {
    return ::item_value (item);
  }
  // Retrieve the items selection state

  inline bool visible () const {
    return ::item_visible (item);
  }
  // Retrieve visibility of the item

  virtual bool action();
  // Perform an action associated with this item; you may use this in an
  // user supplied driver for a menu; you may derive from this class and
  // overload action() to supply items with different actions.
  // If an action returns true, the menu will be exited. The default action
  // is to do nothing.
};

// Prototype for an items callback function.
typedef bool ITEMCALLBACK(NCursesMenuItem&);

// If you don't like to create a child class for individual items to
// overload action(), you may use this class and provide a callback
// function pointer for items.
class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem
{
private:
  ITEMCALLBACK* p_fct;

public:
  NCursesMenuCallbackItem(ITEMCALLBACK* fct       = NULL,
			  const char* p_name      = NULL,
			  const char* p_descript  = NULL )
    : NCursesMenuItem (p_name, p_descript),
      p_fct (fct) {
  }

  NCursesMenuCallbackItem& operator=(const NCursesMenuCallbackItem& rhs)
  {
    if (this != &rhs) {
      *this = rhs;
    }
    return *this;
  }

  NCursesMenuCallbackItem(const NCursesMenuCallbackItem& rhs)
    : NCursesMenuItem(rhs),
      p_fct(0)
  {
  }

  virtual ~NCursesMenuCallbackItem();

  bool action();
};

  // This are the built-in hook functions in this C++ binding. In C++ we use
  // virtual member functions (see below On_..._Init and On_..._Termination)
  // to provide this functionality in an object oriented manner.
extern "C" {
  void _nc_xx_mnu_init(MENU *);
  void _nc_xx_mnu_term(MENU *);
  void _nc_xx_itm_init(MENU *);
  void _nc_xx_itm_term(MENU *);
}

//
// -------------------------------------------------------------------------
// This wraps the MENU type of <menu.h>
// -------------------------------------------------------------------------
//
class NCURSES_IMPEXP NCursesMenu : public NCursesPanel
{
protected:
  MENU *menu;

private:
  NCursesWindow* sub;   // the subwindow object
  bool b_sub_owner;     // is this our own subwindow?
  bool b_framed;        // has the menu a border?
  bool b_autoDelete;    // Delete items when deleting menu?

  NCursesMenuItem** my_items; // The array of items for this menu

  // This structure is used for the menu's user data field to link the
  // MENU* to the C++ object and to provide extra space for a user pointer.
  typedef struct {
    void*              m_user;      // the pointer for the user's data
    const NCursesMenu* m_back;      // backward pointer to C++ object
    const MENU*        m_owner;
  } UserHook;

  // Get the backward pointer to the C++ object from a MENU
  static inline NCursesMenu* getHook(const MENU *m) {
    UserHook* hook = STATIC_CAST(UserHook*)(::menu_userptr(m));
    assert(hook != 0 && hook->m_owner==m);
    return const_cast<NCursesMenu*>(hook->m_back);
  }

  friend void _nc_xx_mnu_init(MENU *);
  friend void _nc_xx_mnu_term(MENU *);
  friend void _nc_xx_itm_init(MENU *);
  friend void _nc_xx_itm_term(MENU *);

  // Calculate ITEM* array for the menu
  ITEM** mapItems(NCursesMenuItem* nitems[]);

protected:
  // internal routines
  inline void set_user(void *user) {
    UserHook* uptr = STATIC_CAST(UserHook*)(::menu_userptr (menu));
    assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
    uptr->m_user = user;
  }

  inline void *get_user() {
    UserHook* uptr = STATIC_CAST(UserHook*)(::menu_userptr (menu));
    assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
    return uptr->m_user;
  }

  void InitMenu (NCursesMenuItem* menu[],
		 bool with_frame,
		 bool autoDeleteItems);

  inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
    if (err != E_OK)
      THROW(new NCursesMenuException (this, err));
  }

  // this wraps the menu_driver call.
  virtual int driver (int c) ;

  // 'Internal' constructor to create a menu without association to
  // an array of items.
  NCursesMenu( int  nlines,
	       int  ncols,
	       int  begin_y = 0,
	       int  begin_x = 0)
    : NCursesPanel(nlines,ncols,begin_y,begin_x),
      menu (STATIC_CAST(MENU*)(0)),
      sub(0),
      b_sub_owner(0),
      b_framed(0),
      b_autoDelete(0),
      my_items(0)
  {
  }

public:
  // Make a full window size menu
  NCursesMenu (NCursesMenuItem* Items[],
	       bool with_frame=FALSE,        // Reserve space for a frame?
	       bool autoDelete_Items=FALSE)  // Autocleanup of Items?
    : NCursesPanel(),
      menu(0),
      sub(0),
      b_sub_owner(0),
      b_framed(0),
      b_autoDelete(0),
      my_items(0)
  {
      InitMenu(Items, with_frame, autoDelete_Items);
  }

  // Make a menu with a window of this size.
  NCursesMenu (NCursesMenuItem* Items[],
	       int  nlines,
	       int  ncols,
	       int  begin_y = 0,
	       int  begin_x = 0,
	       bool with_frame=FALSE,        // Reserve space for a frame?
	       bool autoDelete_Items=FALSE)  // Autocleanup of Items?
    : NCursesPanel(nlines, ncols, begin_y, begin_x),
      menu(0),
      sub(0),
      b_sub_owner(0),
      b_framed(0),
      b_autoDelete(0),
      my_items(0)
  {
      InitMenu(Items, with_frame, autoDelete_Items);
  }

  NCursesMenu& operator=(const NCursesMenu& rhs)
  {
    if (this != &rhs) {
      *this = rhs;
      NCursesPanel::operator=(rhs);
    }
    return *this;
  }

  NCursesMenu(const NCursesMenu& rhs)
    : NCursesPanel(rhs),
      menu(rhs.menu),
      sub(rhs.sub),
      b_sub_owner(rhs.b_sub_owner),
      b_framed(rhs.b_framed),
      b_autoDelete(rhs.b_autoDelete),
      my_items(rhs.my_items)
  {
  }

  virtual ~NCursesMenu ();

  // Retrieve the menus subwindow
  inline NCursesWindow& subWindow() const {
    assert(sub!=NULL);
    return *sub;
  }

  // Set the menus subwindow
  void setSubWindow(NCursesWindow& sub);

  // Set these items for the menu
  inline void setItems(NCursesMenuItem* Items[]) {
    OnError(::set_menu_items(menu,mapItems(Items)));
  }

  // Remove the menu from the screen
  inline void unpost (void) {
    OnError (::unpost_menu (menu));
  }

  // Post the menu to the screen if flag is true, unpost it otherwise
  inline void post(bool flag = TRUE) {
    flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu));
  }

  // Get the numer of rows and columns for this menu
  inline void scale (int& mrows, int& mcols) const  {
    OnError (::scale_menu (menu, &mrows, &mcols));
  }

  // Set the format of this menu
  inline void set_format(int mrows, int mcols) {
    OnError (::set_menu_format(menu, mrows, mcols));
  }

  // Get the format of this menu
  inline void menu_format(int& rows,int& ncols) {
    ::menu_format(menu,&rows,&ncols);
  }

  // Items of the menu
  inline NCursesMenuItem* items() const {
    return *my_items;
  }

  // Get the number of items in this menu
  inline int count() const {
    return ::item_count(menu);
  }

  // Get the current item (i.e. the one the cursor is located)
  inline NCursesMenuItem* current_item() const {
    return my_items[::item_index(::current_item(menu))];
  }

  // Get the marker string
  inline const char* mark() const {
    return ::menu_mark(menu);
  }

  // Set the marker string
  inline void set_mark(const char *marker) {
    OnError (::set_menu_mark (menu, marker));
  }

  // Get the name of the request code c
  inline static const char* request_name(int c) {
    return ::menu_request_name(c);
  }

  // Get the current pattern
  inline char* pattern() const {
    return ::menu_pattern(menu);
  }

  // true if there is a pattern match, false otherwise.
  bool set_pattern (const char *pat);

  // set the default attributes for the menu
  // i.e. set fore, back and grey attribute
  virtual void setDefaultAttributes();

  // Get the menus background attributes
  inline chtype back() const {
    return ::menu_back(menu);
  }

  // Get the menus foreground attributes
  inline chtype fore() const {
    return ::menu_fore(menu);
  }

  // Get the menus grey attributes (used for unselectable items)
  inline chtype grey() const {
    return ::menu_grey(menu);
  }

  // Set the menus background attributes
  inline chtype set_background(chtype a) {
    return ::set_menu_back(menu,a);
  }

  // Set the menus foreground attributes
  inline chtype set_foreground(chtype a) {
    return ::set_menu_fore(menu,a);
  }

  // Set the menus grey attributes (used for unselectable items)
  inline chtype set_grey(chtype a) {
    return ::set_menu_grey(menu,a);
  }

  inline void options_on (Menu_Options opts) {
    OnError (::menu_opts_on (menu,opts));
  }

  inline void options_off(Menu_Options opts) {
    OnError (::menu_opts_off(menu,opts));
  }

  inline Menu_Options options() const {
    return ::menu_opts(menu);
  }

  inline void set_options (Menu_Options opts) {
    OnError (::set_menu_opts (menu,opts));
  }

  inline int pad() const {
    return ::menu_pad(menu);
  }

  inline void set_pad (int padch) {
    OnError (::set_menu_pad (menu, padch));
  }

  // Position the cursor to the current item
  inline void position_cursor () const {
    OnError (::pos_menu_cursor (menu));
  }

  // Set the current item
  inline void set_current(NCursesMenuItem& I) {
    OnError (::set_current_item(menu, I.item));
  }

  // Get the current top row of the menu
  inline int top_row (void) const {
    return ::top_row (menu);
  }

  // Set the current top row of the menu
  inline void set_top_row (int row) {
    OnError (::set_top_row (menu, row));
  }

  // spacing control
  // Set the spacing for the menu
  inline void setSpacing(int spc_description,
			 int spc_rows,
			 int spc_columns) {
    OnError(::set_menu_spacing(menu,
			       spc_description,
			       spc_rows,
			       spc_columns));
  }

  // Get the spacing info for the menu
  inline void Spacing(int& spc_description,
		      int& spc_rows,
		      int& spc_columns) const {
    OnError(::menu_spacing(menu,
			   &spc_description,
			   &spc_rows,
			   &spc_columns));
  }

  // Decorations
  inline void frame(const char *title=NULL, const char* btitle=NULL) {
    if (b_framed)
      NCursesPanel::frame(title,btitle);
    else
      OnError(E_SYSTEM_ERROR);
  }

  inline void boldframe(const char *title=NULL, const char* btitle=NULL) {
    if (b_framed)
      NCursesPanel::boldframe(title,btitle);
    else
      OnError(E_SYSTEM_ERROR);
  }

  inline void label(const char *topLabel, const char *bottomLabel) {
    if (b_framed)
      NCursesPanel::label(topLabel,bottomLabel);
    else
      OnError(E_SYSTEM_ERROR);
  }

  // -----
  // Hooks
  // -----

  // Called after the menu gets repositioned in its window.
  // This is especially true if the menu is posted.
  virtual void On_Menu_Init();

  // Called before the menu gets repositioned in its window.
  // This is especially true if the menu is unposted.
  virtual void On_Menu_Termination();

  // Called after the item became the current item
  virtual void On_Item_Init(NCursesMenuItem& item);

  // Called before this item is left as current item.
  virtual void On_Item_Termination(NCursesMenuItem& item);

  // Provide a default key virtualization. Translate the keyboard
  // code c into a menu request code.
  // The default implementation provides a hopefully straightforward
  // mapping for the most common keystrokes and menu requests.
  virtual int virtualize(int c);


  // Operators
  inline NCursesMenuItem* operator[](int i) const {
    if ( (i < 0) || (i >= ::item_count (menu)) )
      OnError (E_BAD_ARGUMENT);
    return (my_items[i]);
  }

  // Perform the menu's operation
  // Return the item where you left the selection mark for a single
  // selection menu, or NULL for a multivalued menu.
  virtual NCursesMenuItem* operator()(void);

  // --------------------
  // Exception handlers
  // Called by operator()
  // --------------------

  // Called if the request is denied
  virtual void On_Request_Denied(int c) const;

  // Called if the item is not selectable
  virtual void On_Not_Selectable(int c) const;

  // Called if pattern doesn't match
  virtual void On_No_Match(int c) const;

  // Called if the command is unknown
  virtual void On_Unknown_Command(int c) const;

};
//
// -------------------------------------------------------------------------
// This is the typical C++ typesafe way to allow to attach
// user data to an item of a menu. Its assumed that the user
// data belongs to some class T. Use T as template argument
// to create a UserItem.
// -------------------------------------------------------------------------
//
template<class T> class NCURSES_IMPEXP NCursesUserItem : public NCursesMenuItem
{
public:
  NCursesUserItem (const char* p_name,
		   const char* p_descript = NULL,
		   const T* p_UserData    = STATIC_CAST(T*)(0))
    : NCursesMenuItem (p_name, p_descript) {
      if (item)
	OnError (::set_item_userptr (item, const_cast<void *>(reinterpret_cast<const void*>(p_UserData))));
  }

  virtual ~NCursesUserItem() {}

  inline const T* UserData (void) const {
    return reinterpret_cast<const T*>(::item_userptr (item));
  };

  inline virtual void setUserData(const T* p_UserData) {
    if (item)
      OnError (::set_item_userptr (item, const_cast<void *>(reinterpret_cast<const void *>(p_UserData))));
  }
};
//
// -------------------------------------------------------------------------
// The same mechanism is used to attach user data to a menu
// -------------------------------------------------------------------------
//
template<class T> class NCURSES_IMPEXP NCursesUserMenu : public NCursesMenu
{
protected:
  NCursesUserMenu( int  nlines,
		   int  ncols,
		   int  begin_y = 0,
		   int  begin_x = 0,
		   const T* p_UserData = STATIC_CAST(T*)(0))
    : NCursesMenu(nlines,ncols,begin_y,begin_x) {
      if (menu)
	set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
  }

public:
  NCursesUserMenu (NCursesMenuItem* Items[],
		   const T* p_UserData = STATIC_CAST(T*)(0),
		   bool with_frame=FALSE,
		   bool autoDelete_Items=FALSE)
    : NCursesMenu (Items, with_frame, autoDelete_Items) {
      if (menu)
	set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
  };

  NCursesUserMenu (NCursesMenuItem* Items[],
		   int nlines,
		   int ncols,
		   int begin_y = 0,
		   int begin_x = 0,
		   const T* p_UserData = STATIC_CAST(T*)(0),
		   bool with_frame=FALSE)
    : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
      if (menu)
	set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
  };

  virtual ~NCursesUserMenu() {
  };

  inline T* UserData (void) {
    return reinterpret_cast<T*>(get_user ());
  };

  inline virtual void setUserData (const T* p_UserData) {
    if (menu)
      set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
  }
};

#endif /* NCURSES_CURSESM_H_incl */

Directory Contents

Dirs: 78 × Files: 219

Name Size Perms Modified Actions
apache2 DIR
- drwxr-xr-x 2025-08-21 08:30:30
Edit Download
arpa DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
asm DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
bind9 DIR
- drwxr-xr-x 2025-02-21 06:00:36
Edit Download
bits DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
bsock DIR
- drwxr-xr-x 2024-03-03 22:15:40
Edit Download
c++ DIR
- drwxr-xr-x 2025-08-26 09:44:51
Edit Download
criu DIR
- drwxr-xr-x 2024-03-06 00:08:55
Edit Download
curl DIR
- drwxr-xr-x 2025-10-10 08:33:22
Edit Download
drm DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
e2p DIR
- drwxr-xr-x 2025-10-10 08:32:46
Edit Download
et DIR
- drwxr-xr-x 2025-10-10 08:32:29
Edit Download
event2 DIR
- drwxr-xr-x 2024-11-08 03:21:49
Edit Download
ext2fs DIR
- drwxr-xr-x 2025-10-10 08:32:46
Edit Download
finclude DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
- drwxr-xr-x 2024-03-03 23:04:30
Edit Download
freetype2 DIR
- drwxr-xr-x 2025-04-01 17:00:46
Edit Download
fstrm DIR
- drwxr-xr-x 2024-03-03 23:04:41
Edit Download
gdb DIR
- drwxr-xr-x 2025-02-11 10:16:32
Edit Download
gdbm DIR
- drwxr-xr-x 2024-03-03 23:04:54
Edit Download
GL DIR
- drwxr-xr-x 2024-03-03 23:04:21
Edit Download
gnu DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
google DIR
- drwxr-xr-x 2024-03-03 23:04:23
Edit Download
gssapi DIR
- drwxr-xr-x 2025-06-03 20:01:07
Edit Download
gssrpc DIR
- drwxr-xr-x 2025-06-03 20:01:07
Edit Download
jemalloc DIR
- drwxr-xr-x 2025-08-04 08:32:24
Edit Download
json-c DIR
- drwxr-xr-x 2024-03-03 23:04:41
Edit Download
kadm5 DIR
- drwxr-xr-x 2025-06-03 20:01:07
Edit Download
krb5 DIR
- drwxr-xr-x 2025-06-03 20:01:07
Edit Download
libdb DIR
- drwxr-xr-x 2024-03-03 20:40:29
Edit Download
libexslt DIR
- drwxr-xr-x 2025-08-29 08:32:15
Edit Download
libltdl DIR
- drwxr-xr-x 2024-03-03 23:04:55
Edit Download
libpng16 DIR
- drwxr-xr-x 2024-03-03 23:04:19
Edit Download
libxml2 DIR
- drwxr-xr-x 2025-08-06 13:59:33
Edit Download
libxslt DIR
- drwxr-xr-x 2025-08-29 08:32:15
Edit Download
linux DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
lua-5.1 DIR
- drwxr-xr-x 2024-07-23 08:39:20
Edit Download
lzma DIR
- drwxr-xr-x 2024-03-03 22:40:07
Edit Download
misc DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
mtd DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
mysql DIR
- drwxr-xr-x 2025-09-17 08:15:01
Edit Download
ncurses DIR
- drwxr-xr-x 2024-03-03 23:04:48
Edit Download
ncursesw DIR
- drwxr-xr-x 2024-03-03 23:04:48
Edit Download
net DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netash DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netatalk DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netax25 DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
neteconet DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netinet DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netipx DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netiucv DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netpacket DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netrom DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
netrose DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
nfs DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
openssl DIR
- drwxr-xr-x 2024-10-11 08:33:07
Edit Download
perf DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
- drwxr-xr-x 2024-03-03 23:04:23
Edit Download
protocols DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
python2.7 DIR
- drwxr-xr-x 2024-06-15 08:34:38
Edit Download
- drwxr-xr-x 2025-08-29 08:32:23
Edit Download
python3.8 DIR
- drwxr-xr-x 2024-03-05 23:45:24
Edit Download
rdma DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
rpc DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
sasl DIR
- drwxr-xr-x 2024-03-03 20:40:18
Edit Download
scsi DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
security DIR
- drwxr-xr-x 2025-08-29 08:32:23
Edit Download
selinux DIR
- drwxr-xr-x 2025-03-13 08:40:54
Edit Download
sepol DIR
- drwxr-xr-x 2024-03-03 20:40:13
Edit Download
sound DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
sys DIR
- drwxr-xr-x 2025-08-07 02:00:33
Edit Download
uuid DIR
- drwxr-xr-x 2024-06-15 08:34:54
Edit Download
video DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
webp DIR
- drwxr-xr-x 2025-06-04 08:40:03
Edit Download
X11 DIR
- drwxr-xr-x 2024-09-26 08:31:53
Edit Download
xcb DIR
- drwxr-xr-x 2024-03-03 23:04:24
Edit Download
xen DIR
- drwxr-xr-x 2025-10-31 08:30:40
Edit Download
4.25 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
7.28 KB lrw-r--r-- 2025-08-05 14:01:26
Edit Download
1.98 KB lrw-r--r-- 2025-08-05 14:01:27
Edit Download
1.17 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
1.69 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
24.82 KB lrw-r--r-- 2025-08-05 14:01:26
Edit Download
5.91 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
4.45 KB lrw-r--r-- 2025-08-05 14:01:02
Edit Download
2.33 KB lrw-r--r-- 2019-11-18 17:16:51
Edit Download
1.37 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
6.10 KB lrw-r--r-- 2010-09-10 23:08:42
Edit Download
7.00 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
2.07 KB lrw-r--r-- 2020-03-21 04:24:04
Edit Download
2.21 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
844 B lrw-r--r-- 2025-10-15 18:25:52
Edit Download
8.90 KB lrw-r--r-- 2021-10-09 04:04:04
Edit Download
10.71 KB lrw-r--r-- 2025-08-05 14:01:02
Edit Download
97.29 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
6.62 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
27.20 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
19.22 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
8.40 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
48.55 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
7.13 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
120.22 KB lr--r--r-- 2021-09-21 16:29:14
Edit Download
1.38 KB lrw-r--r-- 2022-10-08 13:22:08
Edit Download
5.84 KB lr--r--r-- 2021-09-21 16:29:14
Edit Download
12.19 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
7.07 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
170.73 KB lrw-r--r-- 2025-08-05 14:01:29
Edit Download
3.11 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
4.81 KB lrw-r--r-- 2017-08-30 11:05:54
Edit Download
2.80 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
2.16 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
1.64 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
1.99 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
2.82 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
9.47 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
1.97 KB lrw-r--r-- 2019-10-12 00:29:31
Edit Download
2.68 KB lrw-r--r-- 2019-10-12 00:29:31
Edit Download
1.99 KB lrw-r--r-- 2019-10-12 00:29:31
Edit Download
1.97 KB lrw-r--r-- 2019-10-12 00:29:31
Edit Download
1.74 KB lrw-r--r-- 2019-10-12 00:29:31
Edit Download
1.49 KB lrw-r--r-- 2025-08-05 14:01:26
Edit Download
42.66 KB lrw-r--r-- 2025-04-15 19:58:56
Edit Download
3.43 KB lrw-r--r-- 2025-04-15 19:58:56
Edit Download
5.40 KB lrw-r--r-- 2025-04-15 19:58:56
Edit Download
10.70 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
15.69 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
5.72 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
6.73 KB lrw-r--r-- 2019-10-12 12:33:17
Edit Download
3.16 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
2.24 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
18.17 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
3.50 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
3.04 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
12.71 KB lrw-r--r-- 2019-03-11 20:58:34
Edit Download
8.18 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
5.13 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
4.31 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
68.71 KB lrw-r--r-- 2022-06-28 11:54:07
Edit Download
56.42 KB lrw-r--r-- 2017-08-30 11:05:54
Edit Download
10.10 KB lrw-r--r-- 2022-10-08 13:22:07
Edit Download
2.83 KB lrw-r--r-- 2017-08-30 11:05:54
Edit Download
553 B lrw-r--r-- 2017-08-30 11:05:54
Edit Download
551 B lrw-r--r-- 2017-08-30 11:05:54
Edit Download
519 B lrw-r--r-- 2017-08-30 11:05:54
Edit Download
515 B lrw-r--r-- 2017-08-30 11:05:54
Edit Download
546 B lrw-r--r-- 2017-08-30 11:05:54
Edit Download
497 B lrw-r--r-- 2017-08-30 11:05:54
Edit Download
50.94 KB lrw-r--r-- 2017-08-30 11:05:54
Edit Download
478 B lrw-r--r-- 2017-08-30 11:05:54
Edit Download
1.47 KB lrw-r--r-- 2017-08-30 11:05:54
Edit Download
3.05 KB lrw-r--r-- 2017-08-30 11:05:54
Edit Download
1.43 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
15.17 KB lrw-r--r-- 2019-11-18 17:17:03
Edit Download
6.46 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
2.29 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
2.84 KB lrw-r--r-- 2022-04-18 16:38:33
Edit Download
66.29 KB lrw-r--r-- 2019-10-12 12:20:46
Edit Download
66.29 KB lrw-r--r-- 2019-10-12 12:20:46
Edit Download
6.53 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
4.42 KB lrw-r--r-- 2025-08-05 14:01:25
Edit Download
181 B lrw-r--r-- 2025-06-03 02:06:27
Edit Download
1.81 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
2.41 KB lrw-r--r-- 2019-10-13 16:55:34
Edit Download
20 B lrw-r--r-- 2019-10-13 16:55:34
Edit Download
3.48 KB lrw-r--r-- 2019-10-13 16:55:34
Edit Download
4.79 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
2.77 KB lrw-r--r-- 2025-08-05 14:01:27
Edit Download
11.61 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
2.17 KB lrw-r--r-- 2025-05-14 12:43:01
Edit Download
246 B lrw-r--r-- 2025-05-14 12:43:01
Edit Download
14.73 KB lrw-r--r-- 2025-05-14 12:43:01
Edit Download
14.70 KB lrw-r--r-- 2025-05-14 12:43:01
Edit Download
15.22 KB lrw-r--r-- 2025-05-14 12:43:01
Edit Download
48.71 KB lrw-r--r-- 2025-05-14 12:43:01
Edit Download
67.66 KB lrw-r--r-- 2025-06-03 02:06:27
Edit Download
7.52 KB lrw-r--r-- 2021-10-08 13:50:54
Edit Download
8.72 KB lrw-r--r-- 2025-06-03 02:06:27
Edit Download
402 B lrw-r--r-- 2025-06-03 02:06:27
Edit Download
17.43 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
126 B lrw-r--r-- 2025-08-05 14:01:28
Edit Download
14.95 KB lrw-r--r-- 2025-03-11 09:44:02
Edit Download
1.43 KB lrw-r--r-- 2025-03-11 09:44:02
Edit Download
63.57 KB lrw-r--r-- 2025-03-11 09:44:02
Edit Download
9.24 KB lrw-r--r-- 2025-03-11 09:44:02
Edit Download
1.77 KB lrw-r--r-- 2025-03-11 09:44:03
Edit Download
9.23 KB lrw-r--r-- 2025-03-11 09:44:02
Edit Download
3.39 KB lrw-r--r-- 2025-03-11 09:44:02
Edit Download
4.58 KB lrw-r--r-- 2025-03-11 09:44:03
Edit Download
8.73 KB lrw-r--r-- 2019-11-13 13:59:49
Edit Download
1.35 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
4.47 KB lrw-r--r-- 2025-08-05 14:01:02
Edit Download
5.29 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
7.05 KB lrw-r--r-- 2025-08-05 14:01:29
Edit Download
7.49 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
5.58 KB lrw-r--r-- 2019-10-11 14:55:29
Edit Download
9.59 KB lrw-r--r-- 2018-04-29 15:10:38
Edit Download
5.46 KB lrw-r--r-- 2025-10-07 06:30:48
Edit Download
5.96 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
52.07 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
2.38 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
955 B lrw-r--r-- 2025-08-05 14:01:06
Edit Download
11.91 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
3.28 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
1.76 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
3.67 KB lrw-r--r-- 2025-08-05 14:01:26
Edit Download
97.29 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
4.18 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
4.10 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
2.40 KB lrw-r--r-- 2022-10-08 13:22:08
Edit Download
27.44 KB lrw-r--r-- 2025-08-05 14:01:27
Edit Download
1.71 KB lrw-r--r-- 2025-08-05 14:01:02
Edit Download
1.83 KB lrw-r--r-- 2025-08-05 14:01:28
Edit Download
20.81 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
4.03 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
2.91 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
30.97 KB lrw-r--r-- 2021-10-08 19:17:42
Edit Download
43.75 KB lrw-r--r-- 2022-08-02 16:07:28
Edit Download
5.67 KB lrw-r--r-- 2022-08-02 16:07:28
Edit Download
25.91 KB lrw-r--r-- 2021-10-08 19:17:42
Edit Download
6.62 KB lrw-r--r-- 2021-10-08 19:17:42
Edit Download
5.32 KB lrw-r--r-- 2021-10-08 19:17:42
Edit Download
6.45 KB lrw-r--r-- 2021-10-08 19:17:42
Edit Download
6.16 KB lrw-r--r-- 2021-10-08 19:17:42
Edit Download
140.77 KB lrw-r--r-- 2019-10-12 00:44:13
Edit Download
22.31 KB lrw-r--r-- 2019-10-12 00:44:13
Edit Download
7.39 KB lrw-r--r-- 2019-10-12 00:44:13
Edit Download
22 B lrw-r--r-- 2025-08-05 14:01:07
Edit Download
2.07 KB lrw-r--r-- 2019-10-13 16:55:34
Edit Download
6.64 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
3.39 KB lrw-r--r-- 2025-08-05 14:01:27
Edit Download
11.87 KB lrw-r--r-- 2025-06-03 02:06:27
Edit Download
40.30 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
1.53 KB lrw-r--r-- 2025-08-05 14:01:28
Edit Download
9.16 KB lrw-r--r-- 2019-10-13 16:55:34
Edit Download
6.01 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
24.14 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
1.41 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
11.87 KB lrw-r--r-- 2025-08-05 14:01:27
Edit Download
962 B lrw-r--r-- 2025-08-05 14:01:07
Edit Download
4.62 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
5.10 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
2.34 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
3.58 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
1.31 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
5.34 KB lrw-r--r-- 2025-08-05 14:01:25
Edit Download
11.96 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
37.45 KB lrw-r--r-- 2025-03-11 09:44:03
Edit Download
6.53 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
264 B lrw-r--r-- 2025-08-05 14:01:07
Edit Download
2.24 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
8.27 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
29.46 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
2.73 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
34.82 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
17.17 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
8.03 KB lrw-r--r-- 2019-10-13 16:55:34
Edit Download
4.64 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
25 B lrw-r--r-- 2025-08-05 14:01:07
Edit Download
5.11 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
24 B lrw-r--r-- 2025-08-05 14:01:07
Edit Download
3.70 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
40.22 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
3.39 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
214 B lrw-r--r-- 2025-08-05 14:01:07
Edit Download
3.51 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
8.55 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
30.75 KB lrw-r--r-- 2025-08-05 14:01:04
Edit Download
6.50 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
15.65 KB lrw-r--r-- 2025-08-05 14:01:27
Edit Download
13.32 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
35.14 KB lrw-r--r-- 2025-10-30 14:27:37
Edit Download
3.35 KB lrw-r--r-- 2025-10-30 14:27:37
Edit Download
250 B lrw-r--r-- 2025-10-30 14:27:37
Edit Download
22.68 KB lrw-r--r-- 2025-10-30 14:27:37
Edit Download
1.66 KB lrw-r--r-- 2025-10-30 14:27:37
Edit Download
410 B lrw-r--r-- 2025-10-30 14:27:37
Edit Download
10.12 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
4.54 KB lrw-r--r-- 2019-10-13 16:55:34
Edit Download
2.44 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
1.95 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
1.99 KB lrw-r--r-- 2025-08-05 14:01:05
Edit Download
1.55 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
3.03 KB lrw-r--r-- 2023-10-14 18:54:42
Edit Download
41.74 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
1.47 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
3.15 KB lrw-r--r-- 2025-08-05 14:01:28
Edit Download
4.00 KB lrw-r--r-- 2025-08-05 14:01:28
Edit Download
1.91 KB lrw-r--r-- 2025-08-05 14:00:57
Edit Download
6.48 KB lrw-r--r-- 2022-10-08 07:49:42
Edit Download
18.98 KB lrw-r--r-- 2022-10-08 07:49:42
Edit Download
22 B lrw-r--r-- 2025-08-05 14:01:07
Edit Download
30.38 KB lrw-r--r-- 2025-08-05 14:01:06
Edit Download
5.42 KB lrw-r--r-- 2025-08-05 14:01:08
Edit Download
2.44 KB lrw-r--r-- 2025-08-05 14:01:07
Edit Download
15.88 KB lrw-r--r-- 2023-10-11 22:02:25
Edit Download
94.00 KB lrw-r--r-- 2023-10-11 22:02:25
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).