@@ -555,6 +555,33 @@ static uint32 idaapi res_flagged(void *obj,uint32 n)
555
555
}
556
556
557
557
558
+ static void transfer_sym (psig_t *sig)
559
+ {
560
+ psig_t *rhs = sig->msig ;
561
+ sig_set_name (sig, rhs->name );
562
+ set_name (sig->startEA , rhs->name , SN_NOCHECK | SN_NON_AUTO);
563
+ }
564
+
565
+
566
+ static uint32 idaapi transfer_sym_match (void *obj, uint32 n)
567
+ {
568
+ psig_t *sig = ui_access_sig (((deng_t *)obj)->mlist , n);
569
+
570
+ transfer_sym (sig);
571
+
572
+ return 1 ;
573
+ }
574
+
575
+
576
+ static uint32 idaapi transfer_sym_identical (void *obj, uint32 n)
577
+ {
578
+ psig_t *sig = ui_access_sig (((deng_t *)obj)->ilist , n);
579
+
580
+ transfer_sym (sig);
581
+
582
+ return 1 ;
583
+ }
584
+
558
585
/* ------------------------------------------------*/
559
586
/* function : display_matched */
560
587
/* description: Displays matched list */
@@ -586,6 +613,7 @@ static void display_matched(deng_t * eng)
586
613
add_chooser_command (title_match, " Unmatch" , res_munmatch, 0 , -1 , CHOOSER_POPUP_MENU | CHOOSER_MENU_EDIT);
587
614
add_chooser_command (title_match, " Set as identical" , res_mtoi, 0 , -1 , CHOOSER_POPUP_MENU | CHOOSER_MENU_EDIT);
588
615
add_chooser_command (title_match, " Flag/unflag" , res_flagged, 0 , -1 , CHOOSER_POPUP_MENU | CHOOSER_MENU_EDIT);
616
+ add_chooser_command (title_match, " Import Symbol" , transfer_sym_match, 0 , -1 , CHOOSER_POPUP_MENU | CHOOSER_MENU_EDIT);
589
617
}
590
618
591
619
@@ -619,6 +647,7 @@ static void display_identical(deng_t * eng)
619
647
620
648
add_chooser_command (title_identical, " Unmatch" , res_iunmatch, 0 , -1 , CHOOSER_POPUP_MENU | CHOOSER_MENU_EDIT);
621
649
add_chooser_command (title_identical, " Set as matched" , res_itom, 0 , -1 , CHOOSER_POPUP_MENU | CHOOSER_MENU_EDIT);
650
+ add_chooser_command (title_identical, " Import Symbol" , transfer_sym_identical, 0 , -1 , CHOOSER_POPUP_MENU | CHOOSER_MENU_EDIT);
622
651
}
623
652
624
653
0 commit comments