- char *bp = strrchr(path, '/');
- if( !bp ) bp = path; else ++bp;
- char *sp = strrchr(bp,'.');
- if( !sp ) sp = bp + strlen(bp);
- char *cp = png_path, *dp = bp;
- cp += sprintf(cp,"%s/%s/", mwindow->preferences->plugin_dir, theme_dir);
- while( dp < sp ) *cp++ = *dp++;
- strcpy(cp, ".png");
+ char *pp = png_path, *ep = pp + BCTEXTLEN-1;
+ pp += snprintf(pp, ep-pp, "%s/picon", File::get_plugin_path());
+ if( strcmp(DEFAULT_PICON, plugin_icons) )
+ pp += snprintf(pp, ep-pp, "_%s", plugin_icons);
+ if( pp < ep ) *pp++ = '/';
+ char *cp = strrchr(path, '/');
+ cp = !cp ? path : cp+1;
+ char *sp = strrchr(cp, '.');
+ if( !sp ) sp = cp+strlen(cp);
+ while( pp < ep && cp < sp ) *pp++ = *cp++;
+ pp += snprintf(pp, ep-pp, ".png");
+ *pp = 0;