Gnome-commander-list-update patch

Kezdőlap Fórumok Programozás Gnome-commander-list-update patch

2 bejegyzés megtekintése - 1-2 / 2
  • Szerző
    Bejegyzés
  • #2041006
    gtk
    Felhasználó

      Na, nincs kedve senkinek jatszani?:-)

      #1881725
      csaba
      Felhasználó

        Sziasztok.
        Mivel nem talaltam egy patch- et a gnome-commander -hez,igy
        probaltam a  listafrissiteset (pl: mikor masolsz,vagy torolsz egy filet)
        megoldani,dnotify -vel.

        Akadt egy kis gond,amire ugyan szamitottam…:
        Masolas,vagy torles eseten folyamatosan
        frissiti a listat:(,amig a masolas ill. torles be nem
        fejezodik.

        Valakinek van otlete ezzel kapcs?
        Itt a kod:

        gnome-commander-1.1.6/src/gnome-cmd-dir.c modositva:

        Code:
        …………………………….
        /*static globals*/         
        static volatile int event_fd;
          static GnomeCmdDir *_dir;
          static gboolean _visprog;
         

        /* dnotify -handler*/
        static void handler(int sig, siginfo_t *si, void
        *data)
        {
        event_fd = si->si_fd;
        /*call gnome_cmd_dir_list_files()*/
        DEBUG(‘l’, „Refreshing list …n”);
                gnome_cmd_dir_list_files( _dir, _visprog);
                /*close filedes..*/
                close(event_fd);/*event_fd?*/
        }

        /*initialize d -notify: init_dnotify() */
        static void init_dnotify(const char *str_dir)
        {
          struct sigaction act;
                int fd;     
          act.sa_sigaction = handler;
          sigemptyset(&act.sa_mask);
          act.sa_flags = SA_SIGINFO;
          sigaction(SIGRTMIN + 1, &act, NULL);
         
        fd = open(str_dir, O_RDONLY);

          fcntl(fd, 10/*F_SETSIG*/, SIGRTMIN + 1);
          fcntl(fd, 1026/*F_NOTIFY*/,
        0x00000002|0x00000004|0x00000008
                                         
        |0x00000010|0x00000020|0x80000000
                              /*DN_MODIFY|DN_CREATE|DN_DELETE|
                           
        DN_RENAME|DN_ATTRIB|DN_MULTISHOT*/
                    );
        }

        void
        gnome_cmd_dir_list_files (GnomeCmdDir *dir, gboolean
        visprog)
        {
        g_return_if_fail (GNOME_CMD_IS_DIR (dir));
               
                char* _str_dir;

                if (!dir->priv->files
        || gnome_vfs_uri_is_local (gnome_cmd_file_get_uri
        (GNOME_CMD_FILE (dir))))
        {
        DEBUG (‘l’, „relisting files for 0x%x %s %dn”,
          dir,
          (_str_dir = gnome_cmd_file_get_path
        (GNOME_CMD_FILE (dir)) ),
          visprog);
        gnome_cmd_dir_relist_files (dir, visprog);
        /**/ 
                _dir = dir;
                _visprog = visprog;
                 
                init_dnotify(_str_dir);
                }
        else {
        gtk_signal_emit (GTK_OBJECT (dir),
        dir_signals[LIST_OK], dir->priv->files);
        }
        }
        ……………………………..

      2 bejegyzés megtekintése - 1-2 / 2
      • Be kell jelentkezni a hozzászóláshoz.