]> Dogcows Code - chaz/tint2/blobdiff - src/battery/battery.c
issue 87 : another try
[chaz/tint2] / src / battery / battery.c
index c07f072a8e11dd0ba7da2d4772d23f8043f6454e..f0bb1ff0a0749efa3cf24c583065d230c17e6b58 100644 (file)
@@ -140,10 +140,27 @@ void init_battery()
                }
        }
        if (battery_dir != 0) {
-               path_energy_now = g_build_filename(battery_dir, "energy_now", NULL);
-               path_energy_full = g_build_filename(battery_dir, "energy_full", NULL);
+               char *path1 = g_build_filename(battery_dir, "energy_now", NULL);
+               if (g_file_test (path1, G_FILE_TEST_EXISTS)) {
+                       path_energy_now = g_build_filename(battery_dir, "energy_now", NULL);
+                       path_energy_full = g_build_filename(battery_dir, "energy_full", NULL);
+               }
+               else {
+                       char *path2 = g_build_filename(battery_dir, "charge_now", NULL);
+                       if (g_file_test (path2, G_FILE_TEST_EXISTS)) {
+                               path_energy_now = g_build_filename(battery_dir, "charge_now", NULL);
+                               path_energy_full = g_build_filename(battery_dir, "charge_full", NULL);
+                       }
+                       else {
+                               g_free(battery_dir);
+                               battery_dir = 0;
+                               fprintf(stderr, "ERROR: can't found energy_* or charge_*\n");
+                       }
+                       g_free(path2);
+               }
                path_current_now = g_build_filename(battery_dir, "current_now", NULL);
                path_status = g_build_filename(battery_dir, "status", NULL);
+               g_free(path1);
        }
 
        FILE *fp;
This page took 0.021829 seconds and 4 git commands to generate.