---
 lib/libalpm/alpm.h  | 5 ++++-
 lib/libalpm/sync.c  | 6 ++++++
 lib/libalpm/trans.c | 7 +++++++
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index b0adb95..af33181 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -358,7 +358,10 @@ typedef enum _alpm_event_type_t {
        ALPM_EVENT_PACSAVE_CREATED,
        /** A .pacorig file was created; See alpm_event_pacorig_created_t for
         * arguments */
-       ALPM_EVENT_PACORIG_CREATED
+       ALPM_EVENT_PACORIG_CREATED,
+
+       ALPM_EVENT_TRANS_COMMIT_START,
+       ALPM_EVENT_TRANS_COMMIT_END,
 } alpm_event_type_t;
 
 /** Events.
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index a025b68..99592df 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -1348,6 +1348,9 @@ int _alpm_sync_commit(alpm_handle_t *handle, alpm_list_t 
**data)
                EVENT(handle, &event);
        }
 
+       event.type = ALPM_EVENT_TRANS_COMMIT_START;
+       EVENT(handle, &event);
+
        /* remove conflicting and to-be-replaced packages */
        if(trans->remove) {
                _alpm_log(handle, ALPM_LOG_DEBUG, "removing conflicting and 
to-be-replaced packages\n");
@@ -1365,6 +1368,9 @@ int _alpm_sync_commit(alpm_handle_t *handle, alpm_list_t 
**data)
                return -1;
        }
 
+       event.type = ALPM_EVENT_TRANS_COMMIT_END;
+       EVENT(handle, &event);
+
        return 0;
 }
 
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
index e5328c5..a6bbfe7 100644
--- a/lib/libalpm/trans.c
+++ b/lib/libalpm/trans.c
@@ -178,10 +178,17 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, 
alpm_list_t **data)
        trans->state = STATE_COMMITING;
 
        if(trans->add == NULL) {
+               alpm_event_t event;
+               event.type = ALPM_EVENT_TRANS_COMMIT_START;
+               EVENT(handle, &event);
+
                if(_alpm_remove_packages(handle, 1) == -1) {
                        /* pm_errno is set by _alpm_remove_packages() */
                        return -1;
                }
+
+               event.type = ALPM_EVENT_TRANS_COMMIT_END;
+               EVENT(handle, &event);
        } else {
                if(_alpm_sync_commit(handle, data) == -1) {
                        /* pm_errno is set by _alpm_sync_commit() */
-- 
1.9.1


Reply via email to