setup basic functions for adding --list functionality
diff --git a/programs/zstdcli.c b/programs/zstdcli.c
index 32fef99..be0a447 100644
--- a/programs/zstdcli.c
+++ b/programs/zstdcli.c
@@ -117,6 +117,7 @@
     DISPLAY( " -v     : verbose mode; specify multiple times to increase verbosity\n");
     DISPLAY( " -q     : suppress warnings; specify twice to suppress errors too\n");
     DISPLAY( " -c     : force write to standard output, even if it is the console\n");
+    DISPLAY( " -l     : print information about zstd compressed files.\n");
 #ifndef ZSTD_NOCOMPRESS
     DISPLAY( "--ultra : enable levels beyond %i, up to %i (requires more memory)\n", ZSTDCLI_CLEVEL_MAX, ZSTD_maxCLevel());
 #ifdef ZSTD_MULTITHREAD
@@ -310,7 +311,7 @@
 }
 
 
-typedef enum { zom_compress, zom_decompress, zom_test, zom_bench, zom_train } zstd_operation_mode;
+typedef enum { zom_compress, zom_decompress, zom_test, zom_bench, zom_train, zom_list } zstd_operation_mode;
 
 #define CLEAN_RETURN(i) { operationResult = (i); goto _end; }
 
@@ -531,7 +532,7 @@
                         argument++;
                         memLimit = readU32FromChar(&argument);
                         break;
-
+                    case 'l': operation=zom_list; argument++; break;
 #ifdef UTIL_HAS_CREATEFILELIST
                         /* recursive */
                     case 'r': recursive=1; argument++; break;
@@ -672,7 +673,17 @@
         }
     }
 #endif
-
+    if(operation==zom_list){
+        DISPLAY("===========================================\n"); 
+        DISPLAY("Printing information about compressed files\n");
+        DISPLAY("===========================================\n"); 
+        unsigned u;
+        DISPLAY("Number of files listed: %d\n", filenameIdx);
+        for(u=0; u<filenameIdx;u++){
+            FIO_listFile(filenameTable[u]);             
+        }
+        CLEAN_RETURN(0);
+    }
     /* Check if benchmark is selected */
     if (operation==zom_bench) {
 #ifndef ZSTD_NOBENCH