]> git.0d.be Git - recent.git/blob - recent.c
add a bonus to README file
[recent.git] / recent.c
1 /*
2  *  Copyright (c) 2012 Frederic Peters <fpeters@0d.be>
3  *                All Rights Reserved
4  *
5  *  This program is free software. It comes without any warranty, to
6  *  the extent permitted by applicable law. You can redistribute it
7  *  and/or modify it under the terms of the Do What The Fuck You Want
8  *  To Public License, Version 2, as published by Sam Hocevar. See
9  *  http://sam.zoy.org/wtfpl/COPYING for more details.
10  */
11
12 #include <gtk/gtk.h>
13
14 static GMainLoop *main_loop;
15
16 void
17 manager_changed(GtkRecentManager *manager)
18 {
19         g_main_loop_quit(main_loop);
20 }
21
22 int
23 main(int argc, char *argv[])
24 {
25         GFile *file;
26         char *file_uri;
27         GtkRecentManager *manager;
28         int i;
29
30         if (argc < 2) {
31                 fprintf(stderr, "Usage: %s FILENAME [FILENAME...]\n", argv[0]);
32                 return 1;
33         }
34
35         gtk_init_check(&argc, &argv);
36         main_loop = g_main_loop_new(NULL, FALSE);
37
38         manager = gtk_recent_manager_get_default();
39
40         for (i=1; i<argc; i++) {
41                 file = g_file_new_for_path(argv[i]);
42                 file_uri = g_file_get_uri(file);
43                 gtk_recent_manager_remove_item(manager, file_uri, NULL);
44                 gtk_recent_manager_add_item(manager, file_uri);
45                 g_free(file_uri);
46         }
47
48         g_signal_connect(manager, "changed", G_CALLBACK(manager_changed), NULL);
49
50         g_main_loop_run(main_loop);
51
52         return 0;
53 }