add .gz and .bz2 to .gitignore
[gregoa/bti.git] / bti.c
diff --git a/bti.c b/bti.c
index a1eb454df87a1c9647ed1bc0cf2337591334a9d9..1c5a85633a2e61c802ee15970fc9fed9cbc7d080 100644 (file)
--- a/bti.c
+++ b/bti.c
@@ -299,9 +299,13 @@ int main(int argc, char *argv[], char *envp[])
                { }
        };
        struct session *session;
+       pid_t child;
        char *tweet;
        int retval;
        int option;
+       char *home = getenv("HOME");
+       char *pwd = getenv("PWD");
+       char *dir;
 
        session = session_alloc();
        if (!session) {
@@ -355,11 +359,21 @@ int main(int argc, char *argv[], char *envp[])
                session->password = get_string_from_stdin();
        }
 
-       /* Add the "$ " to the start of the tweet to show it's coming from
-        * a shell */
+       if (strcmp(pwd, home) == 0)
+               dir = "~";
+       else {
+               dir = strrchr(pwd, '/');
+               if (dir)
+                       dir++;
+               else
+                       dir = "?";
+       }
+
+       /* Add the "PWD $ " to the start of the tweet to show it is
+        * coming from a shell */
        tweet = get_string_from_stdin();
-       session->tweet = zalloc(strlen(tweet) + 10);
-       sprintf(session->tweet, "$ %s", tweet);
+       session->tweet = zalloc(strlen(tweet) + strlen(dir) + 10);
+       sprintf(session->tweet, "%s $ %s", dir, tweet);
        free(tweet);
 
        if (strlen(session->tweet) == 0) {
@@ -371,12 +385,20 @@ int main(int argc, char *argv[], char *envp[])
        dbg("password = %s\n", session->password);
        dbg("tweet = %s\n", session->tweet);
 
+       /* fork ourself so that the main shell can get on
+        * with it's life as we try to connect and handle everything
+        */
+       child = fork();
+       if (child) {
+               dbg("child is %d\n", child);
+               exit(0);
+       }
+
        retval = send_tweet(session);
        if (retval) {
                fprintf(stderr, "tweet failed\n");
                return -1;
        }
-       //printf("tweet = %s\n", session->tweet);
 
        session_free(session);
 exit: